【问题标题】:Woocommerce Product Addons Filter Addon's by valueWoocommerce 产品插件 按值过滤插件
【发布时间】:2015-05-27 05:26:51
【问题描述】:

我的网站上有一个产品,允许用户从产品插件列表中选择他们希望在订单中包含哪些商品。默认值为 0,用户可以输入任何数字以在其顺序中包含该插件。

我正在使用以下代码从购物车和订单确认页面中成功过滤掉所有值为 0 的插件。但我无法弄清楚如何从管理区域的订单详细信息或管理员和客户的电子邮件中过滤它们。希望这里的人能给我一些答案/方向。

add_filter( 'woocommerce_order_get_items', 'custom_order_items', 10, 2 );


function custom_order_items( $order_meta ) {
    reset($order_meta);
    $first_key = key($order_meta);

    $search_term = 'Basket Items - ';
    $order = reset($order_meta);

    if( is_array($order['item_meta']) ) {

        foreach ( $order['item_meta'] as $key => $value ) {
            if (strpos($key, $search_term) !== false && $value[0] == 0) {
                unset($order['item_meta'][$key]);
            }
        }


        $order_meta[$first_key] = $order;

    }

    return $order_meta;

}

【问题讨论】:

    标签: php wordpress filter woocommerce hook


    【解决方案1】:

    在尝试了几十个 Woocommerce 过滤器后,我终于找到了解决这个问题的方法。通过在将产品添加到购物车时过滤产品数组,我能够成功过滤掉值为 0 的插件。

    add_filter( 'woocommerce_add_cart_item', 'custom_function', 10, 2 );
    
    function custom_function( $item ) {
        $addons = $item['addons'];
    
        foreach( $addons as $key => $value) {
            if( $value['value'] === 0 ) {
                unset($addons[$key]);
            }
        }
    
        $item['addons'] = $addons;
    
        return $item;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-24
      • 2016-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-16
      • 1970-01-01
      相关资源
      最近更新 更多