簡體   English   中英

Woocommerce - 僅當有加售產品時才將 html 添加到單個產品頁面

[英]Woocommerce - Add html to the single product page only if there are upsell products

我在 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 模板文件,但在我的自定義函數文件中執行此操作我希望它足夠清楚。 非常感謝您的幫助。

我終於這樣解決了!

/*** 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>';  
    }
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM