php - 如何在一个 div 中加载 WooCommerce 交叉销售和购物车抵押品
问题描述
我正在尝试将 WooCommerce .cross-sells
div 加载到一个名为的自定义 div.cart-collaterals-cross-sell
中,该 div 已经包含.cart-collaterals elements
,以便我可以在一行中更好地设置它们的样式。目前.cross-sells
由 cross-sells.php 加载,我尝试将它的代码实现到 cart.php 中,以便我将两个函数放在一个文件中,并且可以将它们放在同一个 div 中。问题是当我复制 cart.php 中的代码时,没有加载交叉销售
这是 cart.php 的原始代码,其中已经包含.cart-collaterals
<div class="cart-collaterals-cross-sell">
<div class="cart-collaterals">
<h2><?php _e( 'Cart totals', 'woocommerce' ); ?></h2>
<?php if ( ! is_ajax() && wc_coupons_enabled() ) { ?>
<div class="nm-coupon-wrap">
<div class="nm-coupon-inner">
<a href="#" id="nm-coupon-btn"><?php esc_html_e( 'Gutschein', 'nm-framework' ); ?></a>
<div class="nm-coupon">
<input type="text" id="nm-coupon-code" class="input-text" name="nm_coupon_code" value="" placeholder="<?php esc_attr_e( 'Coupon code', 'woocommerce' ); ?>" />
<input type="submit" id="nm-apply-coupon-btn" class="button border" name="nm_apply_coupon" value="<?php esc_attr_e( 'Apply coupon', 'woocommerce' ); ?>" />
<?php do_action( 'woocommerce_cart_coupon' ); ?>
</div>
</div>
</div>
<?php } ?>
<?php
/**
* Cart collaterals hook.
*
* @hooked woocommerce_cross_sell_display
* @hooked woocommerce_cart_totals - 10
*/
do_action( 'woocommerce_cart_collaterals' );
?>
</div>
</div>
这就是我尝试的方式。我究竟做错了什么?
<div class="cart-collaterals-cross-sell">
<div class="cart-collaterals">
<h2><?php _e( 'Cart totals', 'woocommerce' ); ?></h2>
<?php if ( ! is_ajax() && wc_coupons_enabled() ) { ?>
<div class="nm-coupon-wrap">
<div class="nm-coupon-inner">
<a href="#" id="nm-coupon-btn"><?php esc_html_e( 'Gutschein', 'nm-framework' ); ?></a>
<div class="nm-coupon">
<input type="text" id="nm-coupon-code" class="input-text" name="nm_coupon_code" value="" placeholder="<?php esc_attr_e( 'Coupon code', 'woocommerce' ); ?>" />
<input type="submit" id="nm-apply-coupon-btn" class="button border" name="nm_apply_coupon" value="<?php esc_attr_e( 'Apply coupon', 'woocommerce' ); ?>" />
<?php do_action( 'woocommerce_cart_coupon' ); ?>
</div>
</div>
</div>
<?php } ?>
<?php
/**
* Cart collaterals hook.
*
* @hooked woocommerce_cross_sell_display
* @hooked woocommerce_cart_totals - 10
*/
do_action( 'woocommerce_cart_collaterals' );
?>
</div>
<div class="cross-sells">
<h2><?php _e( 'You may be interested in…', 'woocommerce' ) ?></h2>
<?php woocommerce_product_loop_start(); ?>
<?php foreach ( $cross_sells as $cross_sell ) : ?>
<?php
$post_object = get_post( $cross_sell->get_id() );
setup_postdata( $GLOBALS['post'] =& $post_object );
wc_get_template_part( 'content', 'product' ); ?>
<?php endforeach; ?>
<?php woocommerce_product_loop_end(); ?>
</div>
</div>
解决方案
您可以使用以下两个功能
- 对于购物车抵押品 ==>
woocommerce_cart_totals();
- 对于交叉销售 =======>
woocommerce_cross_sell_display();
尝试使用我在这里提供的以下代码:
<div class="cart-collaterals-cross-sell">
<div class="cart-collaterals">
<h2><?php _e( 'Cart totals', 'woocommerce' ); ?></h2>
<?php if ( ! is_ajax() && wc_coupons_enabled() ) { ?>
<div class="nm-coupon-wrap">
<div class="nm-coupon-inner">
<a href="#" id="nm-coupon-btn"><?php esc_html_e( 'Gutschein', 'nm-framework' ); ?></a>
<div class="nm-coupon">
<input type="text" id="nm-coupon-code" class="input-text" name="nm_coupon_code" value="" placeholder="<?php esc_attr_e( 'Coupon code', 'woocommerce' ); ?>" />
<input type="submit" id="nm-apply-coupon-btn" class="button border" name="nm_apply_coupon" value="<?php esc_attr_e( 'Apply coupon', 'woocommerce' ); ?>" />
<?php do_action( 'woocommerce_cart_coupon' ); ?>
</div>
</div>
</div>
<?php } ?>
<?php
/**
* Cart collaterals hook.
*
* @hooked woocommerce_cross_sell_display
* @hooked woocommerce_cart_totals - 10
*/
//do_action( 'woocommerce_cart_collaterals' );
woocommerce_cart_totals();
?>
</div>
<div class="cross-sells">
<?php woocommerce_cross_sell_display(); ?>
</div>
</div>
推荐阅读
- c# - C# 中定义的 Enumerable.Where 方法的参数在哪里?
- vue.js - 惯性 + vuejs 和 laravel 搜索框未捕获(承诺)TypeError
- c# - 使用 Http 请求 Rest API 失败,出现 401,但 Https 有效
- rust - Rust image::io::Reader: Permission Denied
- npm - 如何找到全局 npm 的 package.json?
- c# - 使用 WPF MediaElement 时如何确定是否安装了 Windows Media Player
- javascript - 将字符串分成一组对象
- karate - 使用空手道框架发送 SOAP 请求时出现 403 禁止错误
- python - 分配奴才做错了什么我的解决方案?
- javascript - 将 cURL 请求转换为 Node JS https 请求