【问题标题】:Combined WooCommerce Checkout/Cart page and adding cross-sell组合 WooCommerce 结帐/购物车页面并添加交叉销售
【发布时间】:2017-10-14 19:35:05
【问题描述】:

我已将结帐和购物车的简码合并到结帐页面的两列中,以减少完成付款的点击次数。

但是,我发现钩子在这种安排下似乎表现得很奇怪。

例如,我试图将交叉销售部分放在购物车部分下方。在默认购物车页面上,它默认显示。将购物车和结帐结合在一起可以让它消失。

这样做的逻辑方法是:

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

什么都没做。

无奈之下,我随后将cross-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 对象的范围。

我能做到这一点有希望吗?

【问题讨论】:

    标签: php wordpress woocommerce hook checkout


    【解决方案1】:

    WooCommerce 支持提供了一个对我有帮助的答案。我没有将$cross_sells 分配给任何东西。我需要像这样分配它$cross_sells = array_filter( array_map( 'wc_get_product', WC()-&gt;cart-&gt;get_cross_sells() ), 'wc_products_array_filter_visible' );

    但我仍然很想知道为什么钩子操作不起作用。

    【讨论】:

      【解决方案2】:

      至于为什么你不能用钩子实现它,可能是因为你钩入了那个动作的函数中的第一行代码:

      function woocommerce_cross_sell_display( $limit = 2, $columns = 2, $orderby = 'rand', $order = 'desc' ) {
        if ( is_checkout() ) {
          return;
        }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-11-03
        • 2022-01-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-08-30
        相关资源
        最近更新 更多