私たちのWooCommerceストアでは、特定の製品が購入され、確認された注文によりユーザー役割が「クラブ」メンバー(プレミアムメンバーシップ)に変更されます。WooCommerceで特定の製品を購入した後に役割とユーザーのメタ値を変更しますか?
注文IDから番号をコピーして割り当てようとしているユーザーに一意のメンバーIDを割り当てる必要があります。メタキー 'club_member_id'は、Advanced Custom Fieldsプラグインを使用して、現在のデフォルト値が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ファイルに配置されています。前もって感謝します。
多くのお客様に感謝します。これは私の問題を解決しました。 –