如何删除使用当前对象的 WordPress 操作 - &$this - [WCFM-提问按钮]?

问题描述 投票:0回答:1

我是 php 新手,我尝试使用 Woocommerce 和 WCFM 多供应商插件修改 Wordpress 网站。任何帮助都会非常有帮助:)

我正在尝试删除 WCFM 插件添加的“提问”按钮(该按钮未出现在正确的位置)。

我尝试将删除函数与正确的类一起使用,但我无法使其工作。

我尝试将这段代码添加到我的子主题的functions.php文件中:

global $WCFM;
remove_action( 'woocommerce_single_product_summary', array( $WCFM->wcfm_enquiry, 'wcfm_enquiry_button'),15);

还有这个:

global $wcfm_enquiry;
remove_action( 'woocommerce_single_product_summary', array( $wcfm_enquiry, 'wcfm_enquiry_button'),15);

或者这个:

global $WCFM;
$wcfm_enquiry =  $WCFM->wcfm_enquiry;
remove_action( 'woocommerce_single_product_summary', array( $wcfm_enquiry, 'wcfm_enquiry_button'),15);

在 WCFM 插件中,添加函数位于 WCFM_Enquiry 类内部:

class WCFM_Enquiry {
    
    public $wcfm_myaccount_inquiry_endpoint = 'inquiry';
    public $wcfm_myaccount_view_inquiry_endpoint = 'view-inquiry';

    public function __construct() {
        global $WCFM;
       (...)
       add_action( 'woocommerce_single_product_summary',    array( &$this, 'wcfm_enquiry_button' ), 15 );

该类在 WFCM 类内部初始化:

class WCFM {
    (...)
        // Load Enquiry Module
        if (apply_filters('wcfm_is_pref_enquiry', true)) {
            if (!is_admin() || defined('DOING_AJAX') || defined('WCFM_REST_API_CALL') || (isset($_REQUEST['action']) && $_REQUEST['action'] == 'elementor')) {
                $this->load_class('enquiry');
                $this->wcfm_enquiry = new WCFM_Enquiry();
            }
        }

此 WCFM 类在以下位置初始化:

    if(!class_exists('WCFM')) {
        include_once( 'core/class-wcfm.php' );
        global $WCFM, $WCFM_Query;
        $WCFM = new WCFM( __FILE__ );
        $GLOBALS['WCFM'] = $WCFM;
        
        // Init WCFM Query
        include_once( 'core/class-wcfm-query.php' );
        $WCFM_Query = new WCFM_Query();
        $GLOBALS['WCFM_Query'] = $WCFM_Query;

您知道为什么我的代码不起作用吗?

非常感谢,我对此有点迷失!

奥雷利恩

wordpress class hook
1个回答
0
投票

解决方案是添加一个包含删除操作的操作。

add_action('init',function(){
    global $WCFM, $WCFMmp;
    remove_action( 'woocommerce_single_product_summary',    array( $WCFM->wcfm_enquiry, 'wcfm_enquiry_button' ), 15 );
});

我不太明白为什么有必要,但它确实有效。

© www.soinside.com 2019 - 2024. All rights reserved.