1) 第一个有一个钩子:
您可以使用apply_filters
其代码:
apply_filters( \'woocommerce_get_discounted_price\', $price, $values, $this );
您的代码:
add_filter( \'woocommerce_get_discounted_price\', function($price, $values, $this)
{
//return whatever you want
},10,3
);
//*PHP 5.3 and up
您可以将任何想要的函数传递到add\\u filter函数的第二个参数中。详细信息请查看法典。
https://codex.wordpress.org/Function_Reference/add_filter
2) 第二个将非常粗糙,可能不推荐:
虽然上面没有钩子validate_cart_excluded_sale_items()
函数,则结果取决于您可以覆盖的瞬时值(如果您在完成时小心地将其放回)。
您可以调整此函数的结果:wc_get_product_ids_on_sale()
其代码:
// Load from cache
$product_ids_on_sale = get_transient( \'wc_products_onsale\' );
...
set_transient( \'wc_products_onsale\', $product_ids_on_sale, DAY_IN_SECONDS * 30 );
您可以做什么:
存储当前$product_ids_on_sale
从get_transient
作用
然后将其设置为空数组
set_transient( \'wc_products_onsale\', [], DAY_IN_SECONDS * 30 );
然后在验证通过后将其设置回原位
set_transient( \'wc_products_onsale\', $your_stored_product_ids_on_sale, DAY_IN_SECONDS * 30 );
同样,我不建议这样做,但我想表明这是可能的
听起来你应该得到更好的促销