如何根据产品的库存状态隐藏特定按钮?
插件正在创建此类:
function wdm_pefree_init() {
// phpcs:ignore WordPress.NamingConventions.ValidFunctionName.FunctionNameInvalid
if ( ! class_exists( 'Product_Enquiry_For_Woocommerce', false ) ) {
include_once WDM_PE_PLUGIN_PATH . '/includes/class-product-enquiry-for-woocommerce.php';
}
Product_Enquiry_For_Woocommerce::instance();
}
我只想在缺货的每个产品的单个产品页面上显示此按钮,但我无法让我的代码正常工作。
我对 PHP 不太熟悉,所以我尝试调整 Functions.php 文件中的一些其他代码,但没有成功。
任何帮助都会很棒,谢谢!
我尝试过这段代码:
add_filter('woocommerce_get_availability', 'wcs_custom_get_availability', 1, 2);
function wcs_custom_get_availability($availability, $_product) {
// Remove Enquiry Button
if (!$_product->is_in_stock()) {
remove_action('Product_Enquiry_For_Woocommerce');
}
return $availability;
}
我还看到按钮的 css 类是 .pe-show-enq-modal,但我无法执行仅适用于缺货产品的条件“可见性:隐藏”。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
您正在寻找的是这样的:
add_action( 'woocommerce_single_product_summary', 'remove_enquiry_button_if_out_of_stock', 30 ); function remove_enquiry_button_if_out_of_stock() { global $product; if ( ! $product->is_in_stock() ) { remove_action( 'woocommerce_single_product_summary', array( Product_Enquiry_For_Woocommerce::instance(), 'enquiry_button' ), 25 ); } }或者通过CSS:
.product.out-of-stock .pe-show-enq-modal { display: none; }