我是 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;
您知道为什么我的代码不起作用吗?
非常感谢,我对此有点迷失!
奥雷利恩
解决方案是添加一个包含删除操作的操作。
add_action('init',function(){
global $WCFM, $WCFMmp;
remove_action( 'woocommerce_single_product_summary', array( $WCFM->wcfm_enquiry, 'wcfm_enquiry_button' ), 15 );
});
我不太明白为什么有必要,但它确实有效。