更改woocommerce中的会员资格状态
我一直在敲我的头大约一周。任何帮助将不胜感激。更改woocommerce中的会员资格状态
我有一个woocommerce商店,我需要能够通过Php更新用户的成员身份(取消,活跃等)等。
我知道我可以抓住他们目前的状态用:
wc_memberships_get_user_membership($user_id, $membership_id);
,并创造新的成员:
wc_memberships_create_user_membership($args);
,但我还没有找到一个办法只有改变状态。
谢谢!
好了,所以搜索周围一个多月,并与Woocommerce的支持团队来回后(他们没有帮助:/),我想出了这个解决方案:
在数据库中游弋我注意到所有成员资格都只是帖子,而且他们有一个ID和一个帖子作者。所以我想我可以写一点SQL来使它工作。
使用WordPres的内置$wpdb I类是能够只是直接在数据库中更新字段:
首先你要包括在您的函数$ WPDB:
global $wpdb;
然后你把查询在一起,下面是它看起来像普通的SQL
UPDATE ie_posts
SET post_status ='wcm-active'
WHERE post_parent = 49 AND post_author = 49870
而这里的是什么样子使用类:
$wpdb->update('ie_posts',
array('post_status' => $_status),
array('post_parent' => $_membership_id,
'post_author' => $_user_id)
);
我会建议尝试使用数据库的开发副本,这样你就不会破坏任何东西。
deff不是最漂亮的做法,但它的作用就像一个魅力。如果有人有更好的方式来照顾它,请让我知道。
我会尝试这种方式,例如用“待定”状态得到任何成员:
$user_id = get_current_user_id();
$args = array(
'status' => 'pending'
);
$pending_memberships = wc_memberships_get_user_memberships($user_id, $args);
然后,用条件检查,你应该能够这样挂起状态更改为另一个。
好的,很酷。你怎么去改变它呢?这就是我坚持的部分。 假设用户有2个成员资格,我需要修改其中一个的状态。 – GeneralCan
我有同样的问题,无法找到修改状态的命令...任何更新? – Stephen
@Stephen是的,看到我的答案。它很脏,但它工作 – GeneralCan
你想改变所有用户的状态?立即? – jjj
不,我需要更改一个会员的一个用户状态 – GeneralCan