使用 WooCommerce 订单转换状态挂钩添加用户角色

工艺

我需要为我最近注册的用户添加一个新角色(购买我的四个特定订阅产品中的任何一个)。到目前为止,每个最近注册的用户(购买订阅产品的用户)都会获得一个订阅者角色。如果他们购买我的 4 个目标订阅产品中的任何一个,我希望他们成为订阅者 + 广告商。

我曾尝试使用woocommerce_order_status_completed,woocommerce_order_status_processingwoocommerce_order_status_changedhooks,但它们都没有使用我的代码。

我已经多次修改了这些钩子中的函数和代码,但没有什么特别之处。

到目前为止,我一直在使用此代码。

add_action( 'woocommerce_order_status_completed', 'so_29647785_convert_customer_role' );   
function so_29647785_convert_customer_role( $order_id ) {

    $order = new WC_Order( $order_id );
    if ( $order->user_id > 0 ) {
        foreach ( $order->get_items() as $order_item ) {
            if( 4008 == $order_item[ 'product_id' ] ) {
                $user = new WP_User( $order->user_id );

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

我将不胜感激任何帮助或跟踪。


我也尝试过此代码,它有助于创建具有订阅者 + 广告商角色的用户,但在我的情况下我不能这样做。因为只有当用户购买我的四个目标订阅产品时,我才需要用户同时注册订阅者 + 广告商角色。虽然此代码将订阅者 + 广告商添加到每个新用户,而不管他们选择什么产品。

add_filter('woocommerce_new_customer_data', 'bbloomer_assign_custom_role', 10, 1);

function bbloomer_assign_custom_role($args) {
  $args['role'] = 'advertiser';
  return $args;
}

任何帮助将不胜感激!

LoicTheAztec

从 Woocommerce 3 开始,您的代码已过时,并且您的代码中存在一些错误和错误,例如$order_item['product_id']无法正常工作……请尝试以下操作:

add_action( 'woocommerce_order_status_processing', 'order_status_change_add_user_role', 10, 2 );
add_action( 'woocommerce_order_status_completed', 'order_status_change_add_user_role', 10, 2 );
function order_status_change_add_user_role( $order_id, $order ) {
    if ( $order->get_user_id() > 0 ) {
        $user = $order->get_user(); // Get an instance of the WP_User object

        foreach ( $order->get_items() as $item ) {
            // Check that user role is not set yet and that is matching with a product ID
            if( 4008 == $item->get_product_id() && ! in_array('advertiser', $user->roles) ) {
                $user->add_role( 'advertiser' ); // Add new role
                break; // Stop the loop
            }
        }
    }
}

代码位于活动子主题(或活动主题)的 function.php 文件中。现在应该可以使用了。

自 Woocommerce 3 以来的订单和订单相关项目:

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

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

来自分类Dev

WooCommerce:使用自定义电子邮件通知添加自定义订单状态

来自分类Dev

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

来自分类Dev

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

来自分类Dev

如何使用WooCommerce会员挂钩

来自分类Dev

Woocommerce挂钩以更新订单

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

使用JSON FORMAT从Woocommerce导出订单

来自分类Dev

如何根据woocommerce订单中使用的优惠券更改订单状态

来自分类Dev

WooCommerce订单页面添加客户角色自定义列

来自分类Dev

重命名WooCommerce订单状态

来自分类Dev

如何删除WooCommerce订单状态?

来自分类Dev

WooCommerce ajax 获取订单状态

来自分类Dev

如何添加woocommerce自定义订单状态?

来自分类Dev

如何使用挂钩将“删除商品”添加到WooCommerce结帐?

来自分类Dev

使用挂钩在产品页面上添加额外费用[Woocommerce]

来自分类Dev

在 WooCommerce 中更新订单元之前挂钩?

来自分类Dev

通过操作挂钩完成woocommerce订单状态后,如何触发mailster自动响应器?

来自分类Dev

WooCommerce:将自定义元添加为隐藏订单项元以供内部使用

来自分类Dev

如何使用WooCommerce挂钩wp_set_password WordPress功能?

来自分类Dev

使用 Woocommerce 中的挂钩更新产品价格

来自分类Dev

Woocommerce 在非主题 php 文件中使用挂钩

来自分类Dev

获取所有WooCommerce订单项以在变量中使用

来自分类Dev

如何使用python从woocommerce订单中删除line_items

来自分类Dev

根据WooCommerce订单中的用户角色显示自定义税收总计行

来自分类Dev

我只想为访客用户在woocommerce模板订单详细信息中添加取消订单按钮?

Related 相关文章

  1. 1

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

  2. 2

    WooCommerce:使用自定义电子邮件通知添加自定义订单状态

  3. 3

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

  4. 4

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

  5. 5

    如何使用WooCommerce会员挂钩

  6. 6

    Woocommerce挂钩以更新订单

  7. 7

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

  8. 8

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

  9. 9

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

  10. 10

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

  11. 11

    使用JSON FORMAT从Woocommerce导出订单

  12. 12

    如何根据woocommerce订单中使用的优惠券更改订单状态

  13. 13

    WooCommerce订单页面添加客户角色自定义列

  14. 14

    重命名WooCommerce订单状态

  15. 15

    如何删除WooCommerce订单状态?

  16. 16

    WooCommerce ajax 获取订单状态

  17. 17

    如何添加woocommerce自定义订单状态?

  18. 18

    如何使用挂钩将“删除商品”添加到WooCommerce结帐?

  19. 19

    使用挂钩在产品页面上添加额外费用[Woocommerce]

  20. 20

    在 WooCommerce 中更新订单元之前挂钩?

  21. 21

    通过操作挂钩完成woocommerce订单状态后,如何触发mailster自动响应器?

  22. 22

    WooCommerce:将自定义元添加为隐藏订单项元以供内部使用

  23. 23

    如何使用WooCommerce挂钩wp_set_password WordPress功能?

  24. 24

    使用 Woocommerce 中的挂钩更新产品价格

  25. 25

    Woocommerce 在非主题 php 文件中使用挂钩

  26. 26

    获取所有WooCommerce订单项以在变量中使用

  27. 27

    如何使用python从woocommerce订单中删除line_items

  28. 28

    根据WooCommerce订单中的用户角色显示自定义税收总计行

  29. 29

    我只想为访客用户在woocommerce模板订单详细信息中添加取消订单按钮?

热门标签

归档