代码之家  ›  专栏  ›  技术社区  ›  Chris Brosnan

用购买产品的术语id更新ACF字段-woomerce

  •  -1
  • Chris Brosnan  · 技术社区  · 6 年前

    我正在尝试更新woomerce/WP中的a“product_themes”用户字段,使用一个函数来收集订单中项目的术语id,并在下订单时将它们添加到“product_themes”字段下的用户配置文件中。当我在代码中指定了一个id数组,但似乎没有为自定义的“主题”taonomy从每个项中收集术语id时,这是可行的。

      add_action('woocommerce_thankyou', 'add_theme_to_user');
      add_action('woocommerce_new_order', 'add_theme_to_user');
      function add_theme_to_user($order_id){
          $current_user = wp_get_current_user();
          $userID = $current_user->ID;
          $user = 'user_' . $userID; 
          $prodCats = array();
          $order = new WC_Order( $order_id );
          $items = $order->get_items();
          $push = array();
          foreach ( $items as $item ) {
              $item_id = $item['order_item_id']; 
              $product_name = $item['name'];
              $terms = wp_get_post_terms( $itemID, 'theme' );
              foreach ( $terms as $term){
                  array_push($push, $term->term_id);
              }
          }
         update_field('product_themes', $push, 'user_' . $userID);
      }
    

    我已经查阅了Woocomerce的文档,并寻找了任何类似问题的解决方案,但我似乎无法让这个工作。我遗漏了什么吗?

    非常感谢。

    1 回复  |  直到 6 年前
        1
  •  0
  •   Chris Brosnan    6 年前

    我自己找到了解决方案,将$item id=$item['order_item_id'];更改为$itemID=$item['product_id'];

    add_action('woocommerce_thankyou', 'add_theme_to_user');
    add_action('woocommerce_new_order', 'add_theme_to_user');
    function add_theme_to_user($order_id){
        $current_user = wp_get_current_user();
        $userID = $current_user->ID;
        $user = 'user_' . $userID; 
        $prodCats = array();
        $order = new WC_Order( $order_id );
        $items = $order->get_items();
        $push = array();
            foreach ( $items as $item ) {
                $itemID = $item['product_id']; 
                $terms = wp_get_post_terms( $itemID, 'theme' );
                    foreach ( $terms as $term){
                        array_push($push, $term->term_id);
                        update_field('product_themes', $push, 'user_' . $userID);
                    }
            }
        update_field('product_themes', $push, 'user_' . $userID);
      }