Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php WooCommerce:基于一次性优惠券向组中添加用户_Php_Wordpress_Woocommerce_Hook Woocommerce - Fatal编程技术网

Php WooCommerce:基于一次性优惠券向组中添加用户

Php WooCommerce:基于一次性优惠券向组中添加用户,php,wordpress,woocommerce,hook-woocommerce,Php,Wordpress,Woocommerce,Hook Woocommerce,我有一个销售消费品的网站。我们有一个转诊计划,美国各地的医生可以从使用医生转诊/折扣代码的人那里获得基于报酬的利润 这一切都是好的,但代码是每个客户使用1,因为我们只希望客户的第一个订单收到折扣 这就是问题所在,医生们仍然需要从首次购买时使用他们的代码的人那里获得的所有利润中得到补偿 我的想法是使用()。然后每月在医嘱中使用组过滤器来下拉每个医生的医嘱 所以我想做的是创建一个小脚本,根据客户使用的优惠券代码将客户添加到。我同时手动创建组和优惠券代码(它们总是相同的)。我还从groups插件部分抓

我有一个销售消费品的网站。我们有一个转诊计划,美国各地的医生可以从使用医生转诊/折扣代码的人那里获得基于报酬的利润

这一切都是好的,但代码是每个客户使用1,因为我们只希望客户的第一个订单收到折扣

这就是问题所在,医生们仍然需要从首次购买时使用他们的代码的人那里获得的所有利润中得到补偿

我的想法是使用()。然后每月在医嘱中使用组过滤器来下拉每个医生的医嘱

所以我想做的是创建一个小脚本,根据客户使用的优惠券代码将客户添加到。我同时手动创建组和优惠券代码(它们总是相同的)。我还从groups插件部分抓取了组id。不知道我们是否也可以从名称中提取组id

这是我目前没有用的东西。感谢您的帮助

add_action('woocommerce_thankyou', 'coupon_group', 10, 1);
function coupon_group( $order_id ){
    $order = wc_get_order( $order_id );
    $coupon_codes = $order->get_coupon_codes();
    $coupon_name = 'dr_x';
    $group_id = 2;

    foreach($coupon_codes as $coupon_code ){
        if ($coupon_code->get_name() == $coupon_name) {
            $user_id = $order->get_user_id(); 

            if ($user_id) { 
                $group = Groups_Group::read_by_name($coupon_name);
                $is_a_member = Groups_User_Group::read( $user_id , $group_id ->group_id );

                if (!$is_a_member) {
                   Groups_User_Group::create( array( 'user_id' => $user_id, 'group_id' => $group ) );
                }
            }
        }
    }
}

我最终选择了角色而不是小组,因为我无法正确更新角色

我使用用户角色编辑器创建新角色

add_action('woocommerce_thankyou', 'coupon_group', 10, 1);

function coupon_group( $order_id ){
    $order = wc_get_order( $order_id );
    $coupon_codes = $order->get_coupon_codes();
    $coupon_name = 'CouponCode'; //manually created coupon code

    foreach($coupon_codes as $coupon_code ){
        $user_id = $order->get_user_id(); 

        if ($coupon_code == $coupon_name) {
            if ($user_id) {
                $user = new WP_User( $user_id );
                $user->remove_role('customer'); 
                $user->add_role($coupon_name);
            }
        } 
    }
}