我已经敲了大约一个星期的脑袋。任何帮助将不胜感激。

我有一个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中使用的函数,并且在可预见的将来不会消失。

08-28 19:24