Woocommerce 在购买时更改用户角色

谷歌莓果

我正在尝试使用这段代码将我的用户从“订阅者”的默认角色更新为从我的商店购买产品时的“高级”角色。

add_action( 'woocommerce_order_status_completed','change_role_on_purchase' );
function change_role_on_purchase( $order_id ) {
$order = wc_get_order( $order_id );
$items = $order->get_items();

$products_to_check = array( '416' );

foreach ( $items as $item ) {
    if ( $order->user_id > 0 && in_array( $item['product_id'], $products_to_check ) ) {
        $user = new WP_User( $order->user_id );

        // Change role
        $user->remove_role( 'Subscriber' );
        $user->add_role( 'Premium' );

        // Exit the loop
        break;
    }
}
}

我的商店中只有 1 个产品,它的产品 ID 为 416(我已将其插入代码中)。

我已将其放入functions.php,但我没有任何运气。任何成功购买后,角色都不会更新。有任何想法吗?

吉吉

试试这个:

function change_role_on_purchase( $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'];

        if ( $order->user_id > 0 && $product_id == '416' ) {
            update_user_meta( $order->user_id, 'paying_customer', 1 );
            $user = new WP_User( $order->user_id );

            // Remove role
            $user->remove_role( 'subscriber' ); 

            // Add role
            $user->add_role( 'premium' );
        }
    }
}

add_action( 'woocommerce_order_status_processing', 'change_role_on_purchase' );

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我可以暂时更改用户在Wordpress中的角色吗?

来自分类Dev

更改用户角色后如何更改Context.User

来自分类Dev

Woocommerce商店经理角色,隐藏woocommerce菜单

来自分类Dev

WooCommerce只显示购买的商品

来自分类Dev

使用Woocommerce根据帐户注册参数创建不同的用户角色

来自分类Dev

Asp.net身份:登录时更改用户角色

来自分类Dev

检查用户是否在WooCommerce中购买了特定产品

来自分类Dev

在WooCommerce中隐藏特定类别的价格,并且仅隐藏要从该类别购买的特定用户角色的价格

来自分类Dev

允许的用户角色限制WooCommerce优惠券的使用

来自分类Dev

禁用访客和特定用户角色的WooCommerce付款网关

来自分类Dev

在结帐时根据WooCommerce中的用户角色和购物车总数更改订单按钮文本

来自分类Dev

基于用户角色的Woocommerce最低订单总数

来自分类Dev

WooCommerce商店货币按用户角色

来自分类Dev

给在Woocommerce购买产品的用户的通知消息

来自分类Dev

Woocommerce:完成订单后更改用户角色

来自分类Dev

Ajax.form下拉列表更改用户角色

来自分类Dev

Woocommerce:用户只能购买一次产品

来自分类Dev

使用Woocommerce根据帐户注册参数创建不同的用户角色

来自分类Dev

Woocommerce隐藏用户角色的支付网关

来自分类Dev

根据用户角色为WooCommerce / Wordpress创建多个定价层

来自分类Dev

更改用户角色

来自分类Dev

当角色在Rails中枚举时,使用表单和控制程序操作来更改用户角色

来自分类Dev

向WooCommerce客户用户角色显示WordPress后端

来自分类Dev

Laravel 5.4 更改用户角色

来自分类Dev

Woocommerce 按用户订单总数更改角色

来自分类Dev

根据 Woocommerce 中用户相关的购买动态更改产品价格

来自分类Dev

限制用户在woocommerce中再次购买特定产品

来自分类Dev

在管理面板中更改用户角色

来自分类Dev

限制用户角色仅更改 Woocommerce 中的某些订单状态

Related 相关文章

  1. 1

    我可以暂时更改用户在Wordpress中的角色吗?

  2. 2

    更改用户角色后如何更改Context.User

  3. 3

    Woocommerce商店经理角色,隐藏woocommerce菜单

  4. 4

    WooCommerce只显示购买的商品

  5. 5

    使用Woocommerce根据帐户注册参数创建不同的用户角色

  6. 6

    Asp.net身份:登录时更改用户角色

  7. 7

    检查用户是否在WooCommerce中购买了特定产品

  8. 8

    在WooCommerce中隐藏特定类别的价格,并且仅隐藏要从该类别购买的特定用户角色的价格

  9. 9

    允许的用户角色限制WooCommerce优惠券的使用

  10. 10

    禁用访客和特定用户角色的WooCommerce付款网关

  11. 11

    在结帐时根据WooCommerce中的用户角色和购物车总数更改订单按钮文本

  12. 12

    基于用户角色的Woocommerce最低订单总数

  13. 13

    WooCommerce商店货币按用户角色

  14. 14

    给在Woocommerce购买产品的用户的通知消息

  15. 15

    Woocommerce:完成订单后更改用户角色

  16. 16

    Ajax.form下拉列表更改用户角色

  17. 17

    Woocommerce:用户只能购买一次产品

  18. 18

    使用Woocommerce根据帐户注册参数创建不同的用户角色

  19. 19

    Woocommerce隐藏用户角色的支付网关

  20. 20

    根据用户角色为WooCommerce / Wordpress创建多个定价层

  21. 21

    更改用户角色

  22. 22

    当角色在Rails中枚举时,使用表单和控制程序操作来更改用户角色

  23. 23

    向WooCommerce客户用户角色显示WordPress后端

  24. 24

    Laravel 5.4 更改用户角色

  25. 25

    Woocommerce 按用户订单总数更改角色

  26. 26

    根据 Woocommerce 中用户相关的购买动态更改产品价格

  27. 27

    限制用户在woocommerce中再次购买特定产品

  28. 28

    在管理面板中更改用户角色

  29. 29

    限制用户角色仅更改 Woocommerce 中的某些订单状态

热门标签

归档