簡體   English   中英

在WooCommerce購買特定產品后,是否更改角色和用戶元價值?

[英]Change role and user meta value after purchase of specific product on WooCommerce?

在我們的WooCommerce商店中,我們有一種特定的產品,該產品在購買並確認訂單后會將用戶角色更改為“俱樂部”會員(高級會員)。

現在,我們還需要通過復制訂單ID中的號碼為我試圖分配的用戶分配一個唯一的會員ID。 通過高級自定義字段插件,已將元鍵'club_member_id'添加為當前默認值為1的用戶的自定義字段。

下面的源代碼將用戶角色更改為“ club”,但未更改“ club_member_id”的元值。 有人能對此有所啟示嗎?

//Change role and add Club ID if club membership is bought

function lgbk_add_member( $order_id ) {

$order = new WC_Order( $order_id );
$items = $order->get_items();

foreach ( $items as $item ) {

    $product_name = $item['name'];
    $product_id = $item['product_id'];
    $product_variation_id = $item['variation_id'];
    $original_cid = get_user_meta('club_member_id');
    $meta_key = 'club_member_id';
    $meta_value = $order_id;

if ( $order->user_id > 0 && $product_id == '7968' ) {

    update_user_meta( $order->user_id, 'paying_customer', 1 );
    $user = new WP_User( $order->user_id );
    // Remove role
    $user->remove_role( 'customer' );
    // Add role
    $user->add_role( 'club' );
    // Remove club member ID
    $user->delete_user_meta($user, $meta_key);
    // Add club member ID
    $user->add_user_meta($user, $meta_key, $meta_value);

    } 

  }

} add_action( 'woocommerce_order_status_completed', 'lgbk_add_member' );

該代碼已放置在我們主題的functions.php文件中。 提前致謝。

代替這個:

 // Remove club member ID
 $user->delete_user_meta($user, $meta_key);
 // Add club member ID
 $user->add_user_meta($user, $meta_key, $meta_value);

我會那樣做:

// Remove club member ID
delete_user_meta($order->user_id, $meta_key);
// Add club member ID
add_user_meta( $order->user_id, $meta_key, $meta_value);

add_user_metadelete_user_meta是簡單的WordPress函數,如果失敗,將返回false,如果成功,將返回主鍵ID,但未在WP_User類的公共方法中列出。

暫無
暫無

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

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