从子主题中删除父主题的Includes文件夹中的类中的操作

时间:2018-03-31 作者:rok

在父主题的“包含”文件夹中有一个类,它添加了我想在子主题函数中删除的操作。php或插件中

class A {
   public function __construct() {
      ...
      add_action( \'woocommerce_before_customer_login_form\', array( $this, \'before_customer_login_form\' ) );
      ...
   }


    public function before_customer_login_form() {
        echo ( \'yes\' !== get_option( \'woocommerce_enable_myaccount_registration\' ) ) ? \'<div id="customer_login" class="woocommerce-content-box full-width">\' : \'\';
    }
}
功能。php代码灵感来自here

function remove_woo_forms_hooks() {
    remove_action(\'woocommerce_before_customer_login_form\', array(\'A\',\'before_customer_login_form\'));
}

add_action( \'after_setup_theme\', \'remove_woo_forms_hooks\',0);
虽然删除操作不起作用在\\u customer\\u login\\u表单之前操作仍被激发。

怀疑代码

remove_action(\'woocommerce_before_customer_login_form\',array(\'A\',\'before_customer_login_form\'));

不正确。

如何正确删除操作?

1 个回复
最合适的回答,由SO网友:rok 整理而成

非常感谢内森·约翰逊:

解决方案是使用定义动作的类的实例。实例化后,该类在主题中全球化。因此,将下面的代码添加到函数中。子主题的php工作:

function remove_woo_forms_hooks() {
    global $woo_a;
    remove_action(\'woocommerce_before_customer_login_form\', array($woo_a,\'before_customer_login_form\'));
}

add_action( \'after_setup_theme\', \'remove_woo_forms_hooks\',0);

结束

相关推荐

theme functions (hooks)

WordPress已经提出了这个问题,但没有答案。我只是想在这个论坛上试试,如果有人知道的话,因为我也有同样的问题。要使用jquery滑块编辑我的主题,如何转到该脚本?,显示“$主题->挂钩(\'content\\u before\');”在content div标记中。有人能帮忙吗?我的主题索引。php包含以下内容<div id=\"main\"> <?php $theme->hook(\'main_before\'); ?> &#x