2017-05-15 11 views
0

나는 결제를위한 클릭 수를 줄이기 위해 Checkout 페이지의 두 열에 Checkout 페이지와 Shortcodes를 결합했습니다.WooCommerce Checkout/Cart 페이지 결합 및 교차 판매 추가

그러나 나는이 배열로 갈고리가 이상하게 작동하는 것으로 나타났습니다.

예를 들어 장바구니 섹션 아래에 교차 판매 섹션을 배치하려고합니다. 기본 장바구니 페이지에는 기본적으로 나타납니다. 카트와 체크 아웃을 함께 사용하면 사라집니다.

논리적 접근 방법은이 작업을 수행하는 것입니다 : 아무것도하지 않았다

function add_cart_collaterals() { 
    if (is_checkout()) { 
     add_action('woocommerce_after_cart_contents', 'woocommerce_cross_sell_display'); 
    } 
} 
add_action('wp', 'add_cart_collaterals'); 

. 절망의 아웃

, 그때 복사 크로스 sell.php 템플릿 코드를 적용하고 내 아이 테마의 functions.php의이 같은 파일에 직접 넣어 :

/* Display Cross-Sells below cart */ 
function show_cross_sell() { 
    if ($cross_sells) : 
     echo '<div class="cross-sells"><h2>'; 
     _e('You may be interested in&hellip;', 'woocommerce'); 
     echo '</h2>'; 
     woocommerce_product_loop_start(); 
      foreach ($cross_sells as $cross_sell) : 
       $post_object = get_post($cross_sell->get_id()); 
       setup_postdata($GLOBALS['post'] =& $post_object); 
       wc_get_template_part('content', 'product'); 
      endforeach; 
     woocommerce_product_loop_end(); 
     echo '</div>'; 
    else : { 
     echo 'No cross sells to display'; 
    } 
    endif; 
} 
add_action('woocommerce_after_cart_table', 'show_cross_sell', 10); 

그러나 만 else 조건 실행 "표시 할 교차 판매 없음"을 표시합니다. 그래서 $cross_sells 개체에서 범위를 잃었을 수도 있습니다.

이 작업을 수행 할 수 있다는 희망이 있습니까?

답변

1

WooCommerce 지원을 통해 도움을 받으실 수 있습니다. 나는 $cross_sells을 할당하지 않았습니다. 나는 이것을 이렇게 할당 할 필요가 있었다 $cross_sells = array_filter(array_map('wc_get_product', WC()->cart->get_cross_sells()), 'wc_products_array_filter_visible');

그러나 나는 아직도 후크 동작이 효과가 없었던 이유를 알고 싶어한다.