在WooCommerce中,如果订单行项目名称具有这些括号,我试图找出如何删除()
。
以下是一些代码:
$order = wc_get_order($order_id)
foreach ( $order->get_items() as $order_item ){
//...enter code here
}
但是我想使用过滤器挂钩,因为我无法访问上面的foreach
循环。我尝试添加到functions.php
,所以当get_items()调用时,过滤器将准备数据数组。
以下是代码:
add_filter( 'woocommerce_order_get_items', 'filter_woocommerce_order_get_items', 10, 2 );
function filter_woocommerce_order_get_items($items, $instance){
foreach ($items as $item){
$search = array('å','ä','ö','(', ')');
$replace = array('a','a','o', '', '');
$item['name'] = str_replace($search, $replace, $item['name']);
}
return $items;
}
所以,TL; DR:
我可以在$order->get_items()
来电时准备数据吗?
由于
答案 0 :(得分:1)
使用正确的过滤器钩子你是正确的方向,但实际上你的自定义钩子功能不起作用。
要使其正常工作,您需要在返回之前用 lazy var emailUnderline: UIView = {
let view = UIView()
view.backgroundColor = self.darkColor
view.translatesAutoresizingMaskIntoConstraints = false
return view
}()
数组中的新值替换旧值。因此,代码中缺少的元素是 $items
键。
我在代码中做了一些小改动:
$item_id
代码放在活动子主题(或主题)的function.php文件中,或者放在任何插件文件中。
代码经过测试并有效。