簡體   English   中英

在Woocommerce中在訂閱到期時切換用戶角色

[英]Switch user role on subscription expiration in Woocommerce

在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
}

現在我有兩個基本角色, agenciatalento ,如何在訂閱到期時這樣做,它將用戶角色從agencia_proagencia_pro_plusagenciatalento_protalento_pro_plustalento

我該如何創建一個功能來檢查用戶角色,並根據其當前用戶角色將其更改為talentoagencia身份?

謝謝。

YITH Woocommerce免費訂閱插件似乎已關閉,不允許自定義

對於官方的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文件中。 經過測試,應該可行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM