チェックアウトとカートのショートコードを2つの列のチェックアウトページに組み合わせて、支払いを終了するクリック数を減らしました。WooCommerceチェックアウト/カートページとクロスセルを組み合わせて
しかし、私はフックがこの配置で不思議な動作をしているように見えます。
たとえば、カートセクショニングの下にクロスセリングセクションを配置しようとしています。デフォルトのカートページでは、デフォルトで表示されます。カートとチェックアウトを組み合わせると、それが消えます。
論理的なアプローチは、これを行うことです。何もしなかった
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…', '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
条件の実行「No cross sells to display」と表示されます。だから、$cross_sells
オブジェクトのスコープを失った可能性があります。
私はこれを達成することができますか?