产品有库存时隐藏查询按钮
                
                    
                         
                        
                            
                                P粉860370921
                                2023-09-02 17:30:31
                            
                                                        [PHP讨论组]
                                                     
                     
                    
                 
             
            
            
                <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>            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
         
        
        
            
            
            
            
            
         
     
您正在寻找的是这样的:
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; }