首页  >  问答  >  正文

产品有库存时隐藏查询按钮

<p>如何根据产品的库存状态隐藏特定按钮?</p> <p>插件正在创建此类:</p> <pre class="brush:php;toolbar:false;">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(); }</pre> <p>我只想在缺货的每个产品的单个产品页面上显示此按钮,但我无法让我的代码正常工作。</p> <p>我对 PHP 不太熟悉,所以我尝试调整 Functions.php 文件中的一些其他代码,但没有成功。</p> <p>任何帮助都会很棒,谢谢!</p> <p>我尝试过这段代码:</p> <pre class="brush:php;toolbar:false;">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; }</pre> <p>我还看到按钮的 css 类是 .pe-show-enq-modal,但我无法执行仅适用于缺货产品的条件“可见性:隐藏”。</p>
P粉860370921P粉860370921385 天前406

全部回复(1)我来回复

  • P粉555696738

    P粉5556967382023-09-03 16:12:12

    您正在寻找的是这样的:

    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;
    }

    回复
    0
  • 取消回复