簡體   English   中英

購買WooCommerce后自動升級Wordpress用戶角色1年

[英]Auto upgrade Wordpress user role for 1 year after WooCommerce purchase

我正在尋找一種方法,在用戶在我的Wordpress網站上的WooCommerce商店中購買特定項目后,將其用戶角色升級一年。

購買后,我已經有適當的代碼來升級用戶角色,該代碼位於我正在使用的主題的functions.php文件中:

add_action('woocommerce_thankyou', 'change_user_role_on_order_success');
function change_user_role_on_order_success($order_id ) {
$order = new WC_Order( $order_id );
$user_id = $order->user_id;
$wp_user_object = new WP_User($user_id);
$items = $order->get_items();
foreach ( $items as $item ) {
$product_name = $item['name'];
$product_id = $item['product_id'];
$product_variation_id = $item['variation_id'];
}
if ( $product_id == '686' && $wp_user_object->roles[0] != "administrator"){ // Do not change admin role
wp_update_user( array( 'ID' => $wp_user_object->ID, 'role' => "55a015e6994e2" ) );
} else
if ( $product_id == '690' && $wp_user_object->roles[0] != "administrator"){ // Do not change admin role
wp_update_user( array( 'ID' => $wp_user_object->ID, 'role' => "55a011d082d75" ) );
}
}

正如您在代碼中看到的那樣,如果用戶購買產品ID 686,則將獲得用戶角色55a015e6994e2,而在購買產品ID 690時,用戶將獲得用戶角色55a011d082d75。

一切正常。 但是,我希望用戶角色在1年后恢復為角色X,並且我不知道如何完成此任務。

我希望任何具有更多Wordpress知識的人都能幫助我解決這個問題? 或指出正確的方向? 任何幫助將不勝感激。

我已經看過Expire Users插件,實際上該插件可以在x個時間段內將用戶的用戶角色恢復為用戶角色x。 但是我不知道如何使用functions.php文件中的函數或動作來應用它。

我一直在擺弄這件事,並且能夠使用user_registered函數設置新的用戶注冊日期。 現在的代碼如下所示:

add_action('woocommerce_thankyou', 'change_user_role_on_order_success');
function change_user_role_on_order_success($order_id ) {
$today = current_time('timestamp');
$order = new WC_Order( $order_id );
$user_id = $order->user_id;
$wp_user_object = new WP_User($user_id);
$items = $order->get_items();
foreach ( $items as $item ) {
$product_name = $item['name'];
$product_id = $item['product_id'];
$product_variation_id = $item['variation_id'];
}
if ( $product_id == '686' && $wp_user_object->roles[0] != "administrator"){ // Do not change admin role
wp_update_user( array( 'ID' => $wp_user_object->ID, 'role' => "55a015e6994e2", 'user_registered' => $today ) );
} else
if ( $product_id == '690' && $wp_user_object->roles[0] != "administrator"){ // Do not change admin role
wp_update_user( array( 'ID' => $wp_user_object->ID, 'role' => "55a011d082d75", 'user_registered' => $today ) );
}
}

所以我想,如果我將Expire Users插件設置為在一年后自動使用戶過期,它可能會成功,但沒有這種運氣。 過期用戶插件仍將過期日期顯示為用戶首次注冊后的一年,而不是自注冊日期起的一年。 壞消息!

還有其他人有什么想法嗎?

暫無
暫無

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

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