【问题标题】:Woocommerce - Add html to the single product page only if there are upsell productsWoocommerce - 仅当有加售产品时才将 html 添加到单个产品页面
【发布时间】:2021-08-19 01:04:03
【问题描述】:

我在 woocommerce 单品布局中为左侧显示描述选项卡和右侧追加销售产品编写了此代码。但是,如果一个产品根本没有加售产品,如何避免这个 html 代码,并返回到原始布局呢? 这是我的自定义代码:

/*** Display description tab and upsell products side by side */

add_action( 'woocommerce_after_single_product_summary', 'ckde_open_container_desc_upsells', 0 );
function ckde_open_container_desc_upsells() {
  echo '<div class=" grid kc-desc-upsells-content"><div class="col-60 kc-desc-container">';
}

add_action( 'woocommerce_after_single_product_summary', 'ckde_close_open_col_desc_upsells', 15 );
function ckde_close_open_col_desc_upsells(){
  echo '</div><div class="col-40 kc-upsells-container">';
}

add_action( 'woocommerce_after_single_product_summary', 'ckde_close_col_upsells', 20 );
function ckde_close_col_upsells(){
  echo '</div></div>';
}

/*** Change number of upsells output  */

remove_action( 'woocommerce_after_single_product_summary', 'woocommerce_upsell_display', 15);
add_action( 'woocommerce_after_single_product_summary', 'woocommerce_output_upsells', 15);

if (!function_exists('woocommerce_output_upsells')) {
    function woocommerce_output_upsells() {
      woocommerce_upsell_display(6,3); // Display max 6 products, 3 per row
    }
}

肯定有一个钩子或条件标签可以做到这一点,但我不知道它是什么。 我不想覆盖 woocommerce 模板文件,但在我的自定义函数文件中执行此操作 我希望它足够清楚。 非常感谢您的帮助。

【问题讨论】:

    标签: php function woocommerce hook-woocommerce


    【解决方案1】:

    我终于这样解决了!

    /*** Display description tab and up-sell products side by side when up-sell products are defined */
    
    add_action( 'woocommerce_after_single_product_summary', 'ckde_open_container_desc_upsells', 0 );
    
    function ckde_open_container_desc_upsells() {
      global $product;
    
      if ( isset( $product ) && is_product() ) {
      
        $upsells = $product->get_upsell_ids();
    
        if ( count( $upsells ) > 0 ) {
    
          echo '<div class=" grid kc-desc-upsells-content"><div class="col-60 kc-desc-container">'; 
        }
      }
    }
    
    add_action( 'woocommerce_after_single_product_summary', 'ckde_close_open_col_desc_upsells', 15 );
    
    function ckde_close_open_col_desc_upsells() {
    
      global $product;
    
      if ( isset( $product ) && is_product() ) {
    
        $upsells = $product->get_upsell_ids();
    
        if ( count( $upsells ) > 0 ) {
    
          echo '</div><div class="col-40 kc-upsells-container">';   
        }
      }
    }
    
    add_action( 'woocommerce_after_single_product_summary', 'ckde_close_col_upsells', 20 );
    
    function ckde_close_col_upsells() {
    
      global $product;
    
      if ( isset( $product ) && is_product() ) {
    
        $upsells = $product->get_upsell_ids();
    
        if ( count( $upsells ) > 0 ) {
    
          echo '</div></div>';  
        }
      }
    }
    

    【讨论】:

      猜你喜欢
      • 2023-01-22
      • 2018-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-07
      • 1970-01-01
      相关资源
      最近更新 更多