Php Woocommerce产品插件按值筛选插件

Php Woocommerce产品插件按值筛选插件,php,wordpress,filter,woocommerce,hook,Php,Wordpress,Filter,Woocommerce,Hook,我在我的网站上有一个产品,它允许用户从产品插件列表中选择他们想要包含在订单中的项目。默认值为0,用户可以输入任何数字,以便在其顺序中包含该插件 我正在使用以下代码从购物车和订单确认页面中成功筛选出所有值为0的加载项。但我不知道如何从管理区域的订单详细信息中或从管理和客户电子邮件中过滤它们。希望这里的人能给我一些答案/方向 add_filter( 'woocommerce_order_get_items', 'custom_order_items', 10, 2 ); function cus

我在我的网站上有一个产品,它允许用户从产品插件列表中选择他们想要包含在订单中的项目。默认值为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;

}

在尝试了几十个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;
}