我已经敲了大约一个星期的脑袋。任何帮助将不胜感激。
我有一个WooCommerce商店,我需要在该商店中通过Php更新用户的会员身份(已取消,有效等)。
我知道我可以通过以下方式获取他们的当前状态:
wc_memberships_get_user_membership( $user_id, $membership_id );
并通过以下方式创建新的成员资格:
wc_memberships_create_user_membership( $args );
但我还没有找到改变状态的方法。
谢谢!
最佳答案
对于任何其他来这里的人。这是我的首选解决方案。
WooCommerce会员资格只是数据库中的另一条WordPress帖子,其会员状态存储为帖子状态。
WooCommerce会员资格默认带有以下状态:
活性
取消
免费的
延迟
已过期
已暂停
待取消
在数据库中,上面的状态如下所示:
主动
WCM取消
wcm-免费
wcm延迟
WCM过期
wcm暂停
待定
例如,您现在需要做的就是:
$status = 'wcm-paused';
$update_args = array( 'ID' => $membership_id, 'post_status' => $status );
wp_update_post($update_args);
我希望这对其他人有帮助。
附注:我总是喜欢使用核心功能,而不是直接访问数据库。与可能的数据库更改不同,wp_update_post是从根本上在WordPress中使用的函数,并且在可预见的将来不会消失。