我有一个度假屋租赁的商业网站,其中WordPress主题有自己的预订系统,仅用于房屋预订,非常棒!
我还可以预订旅游/服务(不是房屋),但我使用WooCommerce/WooCommerce预订插件,而不是房屋预订系统。
一切都很好!
但最近,主题更新为家庭预订系统引入了WooCommerce结账选项,这在更新之前从未存在过。虽然我关闭了themes WooCommerce签出选项,但代码仍在themes的核心插件中执行。几周来,我一直拿着主题提供商的开放式支持票来回奔波,让他们在用户关闭选项时提出不运行新代码的条件声明,但我不知道何时或是否会这样做。现在的情况是,主题的核心插件正在操纵WooCommerce结账,在我之前一直单独使用WooCommerce的任何旅游/服务的最后一步下单后,现在下单后超时,并在后端生成1000多个额外的“幻影”结账页面。
Bottom line: 当主题的核心插件文件中有3行(第27-29行)被注释掉时,一切正常。但我不想在每次插件更新后都要注释掉这3行。
//add_action( \'woocommerce_thankyou\', array($this,\'order_attach\') );
//add_filter( \'woocommerce_checkout_fields\', array($this,\'custom_override_checkout_fields\') );
//add_filter(\'woocommerce_create_account_default_checked\', \'__return_true\');
以下是完整代码(注释掉第27-29行):
https://pastebin.com/jqtBpCpA我尝试了以下两页上的说明,但都没有成功:https://mekshq.com/remove-wordpress-action-filter-class https://github.com/herewithme/wp-filters-extras
我在函数中插入了以下内容。php文件
METHOD 1:
global $Wpestate_Global_Payments; //get access to the class object instance
remove_action( \'woocommerce_thankyou\', array($Wpestate_Global_Payments,\'order_attach\') );
remove_filter( \'woocommerce_checkout_fields\', array($Wpestate_Global_Payments,\'custom_override_checkout_fields\') );
remove_filter(\'woocommerce_create_account_default_checked\', \'__return_true\');
然后使用插件,如下所示:
https://github.com/herewithme/wp-filters-extras 我尝试了两种方法:
METHOD 2:
remove_filters_with_method_name( \'woocommerce_thankyou\', \'order_attach\' );
remove_filters_with_method_name( \'woocommerce_checkout_fields\', \'custom_override_checkout_fields\' );
remove_filters_with_method_name( \'woocommerce_create_account_default_checked\', \'__return_true\' );
方法3:
remove_filters_for_anonymous_class( \'woocommerce_thankyou\', \'Wpestate_Global_Payments\', \'order_attach\' );
remove_filters_for_anonymous_class( \'woocommerce_checkout_fields\', \'Wpestate_Global_Payments\', \'custom_override_checkout_fields\' );
remove_filters_for_anonymous_class( \'woocommerce_create_account_default_checked\', \'Wpestate_Global_Payments\', \'__return_true\' );
一
remove_filters_with_method_name( \'woocommerce_thankyou\', \'order_attach\' );
remove_filters_with_method_name( \'woocommerce_checkout_fields\', \'custom_override_checkout_fields\' );
remove_filters_with_method_name( \'woocommerce_create_account_default_checked\', \'__return_true\' );
是否有人可以提供有关如何插入remove\\u操作的见解(&U);删除函数中每个函数的\\u过滤器。php删除/取消挂接插件文件中我当前已注释掉的3个操作/过滤器?