我很感激以前有人问过类似的问题,但我尝试过的答案并没有满足我的需求。
基本上
我在woocommerce插件文件夹结构中有此文件:
wp-content\plugins\woocommerce\include\wc-coupon-functions.php
文件内部是以下函数:
function wc_get_cart_coupon_types() {
return (array) apply_filters( 'woocommerce_cart_coupon_types', array( 'fixed_cart') );
}
我需要覆盖它,以便它返回数组中的附加项目,但我尝试过的任何方法都没有奏效。我试过:
- 在我的自定义主题文件中创建相同的文件
使用以下代码在我的函数文件中挂钩函数:
函数 woocommerce_coupon_get_cart_coupon_types(( { return (array( apply_filters( 'woocommerce_cart_coupon_types', array( 'fixed_cart', 'custom_discount' ( (; }
add_filter("wc_get_cart_coupon_types", "woocommerce_coupon_get_cart_coupon_types",10, 1(;
任何其他建议也将不胜感激.....我直接在文件中进行了更改,它绝对有效。谢谢
你的#2方法就是如何做到这一点,但你基本上陷入了循环情况。
您需要这样做:
function wpso59974749_woocommerce_coupon_get_cart_coupon_types( $data ) {
$data[ 'your_new_key_here' ] = 'your new value here';
return $data;
}
add_filter('woocommerce_cart_coupon_types','wpso59974749_woocommerce_coupon_get_cart_coupon_types',10, 1);
您不应该将apply_filter
重新添加到函数中,因为它会卡在循环中 - 本质上是一遍又一遍地重新过滤自己。
我为您的函数添加前缀,因此如果有另一个woocommerce_coupon_get_cart_coupon_types
函数,它不会冲突。