在Woocommerce中,我正在使用YITH Woocommerce订阅插件,我想在订阅过期时更改用户角色。
为此,我知道我必须使用这个钩子:
add_action( 'subscription_expired', 'my_function', 10, 2 );
function my_function( $user_id, $subscription_key ) {
$sub= wcs_get_subscription_from_key( $subscription_key );
// do something
}
现在我有两个基本角色,agencia
和talento
,我如何使它当订阅到期时,它将用户角色从agencia_pro
或agencia_pro_plus
更改回agencia
和talento_pro
或talento_pro_plus
到talento
?
如何创建一个函数来检查用户角色,并根据当前用户角色将其更改为talento
或agencia
?
谢谢
YITH WooCommerce订阅免费插件似乎已关闭,不允许自定义...
对于官方电子商务订阅插件,请使用以下内容:
add_action( 'woocommerce_subscription_status_expired', 'change_user_role_on_subscription_expired', 10, 1 );
function change_user_role_on_subscription_expired( $subscription ) {
// Get WP_User Object from subscription
$user = new WP_User($subscription->get_user_id());
if ( in_array('agencia_pro', $user->roles) ) {
$user->remove_role( 'agencia_pro' );
$user->add_role( 'agencia' );
}
elseif ( in_array('agencia_pro_plus', $user->roles) ) {
$user->remove_role( 'agencia_pro_plus' );
$user->add_role( 'agencia' );
}
elseif ( in_array('talento_pro', $user->roles) ) {
$user->remove_role( 'talento_pro' );
$user->add_role( 'talento' );
}
elseif ( in_array('talento_pro_plus', $user->roles) ) {
$user->remove_role( 'talento_pro_plus' );
$user->add_role( 'talento' );
}
}
代码function.php活动子主题(或活动主题)的文件中。经过测试,应该可以。