2017-03-22 10 views
0

私は、ユーザーの自動的に変化する役割のPHP実現に問題があります。 私はカスタムロールdovclientを持っています。最初のユーザー注文はロールCustomerを取得します。ユーザの注文総数によるWoocommerceの変更の役割

購入する製品の合計が500ドルの場合は、ユーザーの役割を変更する必要があります。

だから私は$customer_ordersがカウントされ、そして私が注文の数によって作業機能を作ることを、私は知っている機能

function wpa_120656_convert_paying_customer($order_id) { 

    $order = new WC_Order($order_id); 

    $user_id = $order->user_id; 

    $customer_orders = get_posts(array(
     'numberposts' => -1, 
     'meta_key' => '_customer_user', 
     'meta_value' => $user_id, 
     'post_type' => 'shop_order', 
    )); 

    $total = 0; 
    foreach ($customer_orders as $customer_order) { 
     $order = wc_get_order($customer_order); 
     $total += $order->get_total(); 
    } 

    return $total; 

    if ($total > 500) { 
     update_user_meta($order->user_id, 'paying_customer', 1); 
     $user = new WP_User($order->user_id); 


     $user->remove_role('customer'); 


     $user->add_role('dovclient10'); 
    } 
} 
add_action('woocommerce_order_status_completed', 'wpa_120656_convert_paying_customer'); 

を持っています例えば、$customer_orders > 2の場合は、ロールを変更します。

しかし、注文価格の合計で私は問題があります。役割は変化しません。どうしてか分かりません。おそらく問題がありますforeach ...

私を手伝ってください!

答えて

0

すばらしいヘルプ! 0 ... ok。私はそれをやった。

function wpa_120656_convert_paying_customer($order_id) { 

    $order = new WC_Order($order_id); 

    $user_id = $order->user_id; 

    $customer_orders = get_posts(array(
     'numberposts' => -1, 
     'meta_key' => '_customer_user', 
     'meta_value' => $user_id, 
     'post_type' => 'shop_order', 
    )); 

    $totall = 0; 
    foreach ($customer_orders as $customer_order) { 
    $order  = wc_get_order($customer_order); 
    $totall += $order->get_total(); 
    } 

    if ($totall > 500) { 
     update_user_meta($order->user_id, 'paying_customer', 1); 
     $user = new WP_User($order->user_id); 

     if(get_role('customer')){ 
      $user->remove_role('customer'); 
      $user->add_role('dovclient'); 
     } 
    } 
} 
add_action('woocommerce_order_status_completed', 'wpa_120656_convert_paying_customer'); 
関連する問題