【问题标题】:WooCommerce: Move Coupon Field on Cart PageWooCommerce:在购物车页面上移动优惠券字段
【发布时间】:2017-01-10 22:59:36
【问题描述】:

我正在尝试更改购物车页面上优惠券字段的位置。我对动作和钩子有点熟悉,所以我知道我需要先删除 woocommerce_cart_coupon 动作并将其挂钩到不同的动作,如下例所示:

remove_action( 'woocommerce_checkout_order_review', 'woocommerce_order_review', 10 );
add_action( 'woocommerce_checkout_before_customer_details', 'woocommerce_order_review', 10 );

我的问题是,我不知道从哪里解开这个动作。我找不到购物车挂钩列表及其挂钩操作(如 content-single-product.php 文件)+ 订单。

优惠券字段应放在“进行结帐”按钮之后。有什么想法吗?

谢谢

【问题讨论】:

    标签: php wordpress templates woocommerce cart


    【解决方案1】:

    挂钩 woocommerce_cart_coupon 不会挂钩优惠券 php 代码本身,您将无法像在示例中那样使用它。

    相关的优惠券 php 代码(在购物车页面上)位于 cart/cart.php 模板中的第 132 到 150 行,并且没有与单独的模板挂钩。所以你将不得不编辑 cart/cart.php 模板,这不会那么容易。

    这里是Overriding Templates via a Theme (Templates structure)的官方相关文档

    【讨论】:

    • 我最终自己想通了。我的问题是,将优惠券字段移动到购物车页面上的其他位置后,“应用优惠券”按钮不再起作用。这是因为它没有被包裹在<form></form> 标签之间。还是谢谢你!
    • @AlexP。哈,是的,所有这些东西都必须留在<form></form>标签内,或者如果你添加一个隐藏的<imput>字段(模拟这个字段)和一些jvascript / jQuery,可以在外面......但在这种情况下,制作它非常复杂作品。谢谢,不客气!
    【解决方案2】:

    使用正确的表单操作将您的优惠券 PHP 包装在表单标签中。

    <?php if ( wc_coupons_enabled() ) { ?>
     <div class="coupon">
      <form action="http://example.com/cart/" method="post">
       <label for="coupon_code"><?php esc_html_e( 'Coupon:', 'woocommerce' ); ?></label> 
       <input type="text" name="coupon_code" class="input-text" id="coupon_code" value="" placeholder="<?php esc_attr_e( 'Coupon code', 'woocommerce' ); ?>" /> 
       <button type="submit" class="button" name="apply_coupon" value="<?php esc_attr_e( 'Apply coupon', 'woocommerce' ); ?>"><?php esc_attr_e( 'Apply coupon', 'woocommerce' ); ?></button>
       </form>
      <?php do_action( 'woocommerce_cart_coupon' ); ?>
     </div>
    <?php } ?>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-10
      • 1970-01-01
      • 2021-03-18
      • 1970-01-01
      • 2021-08-08
      • 2018-07-03
      • 2019-04-19
      • 1970-01-01
      相关资源
      最近更新 更多