【问题标题】:Woocommerce - How can I change where something shows on the checkout page?Woocommerce - 如何更改结帐页面上的显示位置?
【发布时间】:2016-09-05 17:44:27
【问题描述】:

我想将您在页面顶部输入优惠券的位置移动到 woocommerce 结帐页面的页面下方(订单摘要下方)。我在哪里以及如何做到这一点?

提前致谢!

这里是结帐文件夹中 form-coupon.php 中的代码,以防有用:

if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly
}

if ( ! wc_coupons_enabled() ) {
return;
}

if ( ! WC()->cart->applied_coupons ) {
    $info_message = apply_filters( 'woocommerce_checkout_coupon_message', __( 'Have a coupon?', 'woocommerce' ) . ' <a href="#" class="showcoupon">' . __( 'Click here to enter your code', 'woocommerce' ) . '</a>' );
wc_print_notice( $info_message, 'notice' );
}
?>

<form class="checkout_coupon" method="post" style="display:none">

    <p class="form-row form-row-first">
        <input type="text" name="coupon_code" class="input-text" placeholder="<?php esc_attr_e( 'Coupon code', 'woocommerce' ); ?>" id="coupon_code" value="" /> 
</p>

    <p class="form-row form-row-last">
        <input type="submit" class="button" name="apply_coupon" value="<?php esc_attr_e( 'Apply Coupon', 'woocommerce' ); ?>" />
    </p>

    <div class="clear"></div>
</form>

我按照下面的建议添加了代码,该代码有效,但是它将页面上的最后一行向下移动,因此看起来不太正确。这是它的图片(条款和条件以及下订单按钮。

【问题讨论】:

  • Overriding Templates via a Theme... 你的问题解决了吗?
  • @LoicTheAztec 不,我做不到。我熟悉覆盖模板,但我不确定哪个模板控制优惠券的位置。我的子主题-woocommerce-checkout 文件夹中有一个 form-coupon.php。我已经添加了上面那个文件中的代码,以防万一。理想情况下,我想将其设置为始终显示优惠券代码区域并使其位于订单摘要的正下方。
  • 最后在技术上真的不可能像你想要的那样移动优惠券的东西......请参阅我的解释。 但您可以轻松更改一些您不想要的东西……请参阅我的最新更新。我为你做了一点改进。
  • 我刚刚在下面回复了您的评论。我以为你在某个地方给我发了一条消息,但我不知道该怎么看,所以我只想说声谢谢!

标签: php wordpress woocommerce checkout coupon


【解决方案1】:

更新

无法在结帐表格中移动优惠券表格

最后,不可能在您的订单摘要标题之后插入带有“申请”按钮的优惠券字段,因为它是一个单独的表单,有他自己的使用另一个提交按钮(下订单)插入另一个表单中的提交按钮。


作为问题的一部分,您可以做什么

保持可见优惠券字段和按钮“应用”/删除带有链接的优惠券消息:

为此(如果尚未完成),您必须将 woocommerce 插件 templates 文件夹复制到您的活动子主题或主题文件夹中,并将其重命名为 woocommerce (Overriding Templates via a Theme) .不要害怕,这很简单……现在您可以自定义任何模板。

使用 woocommerce 文件夹(位于您的活动主题中)进入子文件夹 checkout 并打开/编辑 form-coupon.php 文件。

1) 删除或评论 ( /* … */ ):

if ( ! WC()->cart->applied_coupons ) {
    $info_message = apply_filters( 'woocommerce_checkout_coupon_message', __( 'Have a coupon?', 'woocommerce' ) . ' <a href="#" class="showcoupon">' . __( 'Click here to enter your code', 'woocommerce' ) . '</a>' );
    wc_print_notice( $info_message, 'notice' );
}

2) 删除 style="display:none" 来自 &lt;form class="checkout_coupon" method="post" style="display:none"&gt;

所以你将只留下:&lt;form class="checkout_coupon" method="post"&gt;


微调垂直空间:

在“如果您想更改订阅,请返回计划”周围添加一些垂直空间:

在您的活动子主题或主题的 style.css 文件中,添加:

.woocommerce-checkout .return-to-cart {
    padding: 12px 0 24px !important;
}

(更新结束)


它在模板checkout/form-checkout.php上(开头),你有一个钩子woocommerce_before_checkout_form,它显示了优惠券字段和按钮:

要移动的代码(第 20 行)在 form-checkout.php 模板上剪切此代码:

do_action( 'woocommerce_before_checkout_form', $checkout );

紧随其后的粘贴位置(第 56 行);在 de php 标签内:

<?php do_action( 'woocommerce_checkout_before_order_review' ); ?>

像这样(在关闭?&gt; php 标签之前):

<?php do_action( 'woocommerce_checkout_before_order_review' );
echo '<div class="coupon-block">';
do_action( 'woocommerce_before_checkout_form', $checkout );
echo '</div>';
?>

信息:此模板中没有order summary

【讨论】:

  • 哇,是的!我据我所知, wc_print_notices();没有任何区别,所以我把它排除在外。您是否知道如何摆脱灰色框和上面写着“有优惠券?单击此处输入您的代码”的文字?如果可能的话,我只想有一个输入优惠券代码和应用优惠券按钮的框。谢谢!!!
  • 嗯,附加代码似乎不起作用。我应该试试别的吗?
  • 我实际上只是注意到之前的代码(将优惠券在页面上向下移动)导致页面上的最后一行也向下移动。你知道我怎么能解决这个问题吗?我会尝试在问题中添加问题的屏幕截图
  • 是的,问题出在 sprinly.com/checkout 上。您可能需要在购物车中添加一些东西才能看到问题。您可以通过访问 sprinly.com/subscription-plans,然后单击任何产品的“注册”,然后访问 sprinly.com/checkout 将一些东西添加到购物车
  • 非常感谢您尝试帮助我解决此问题,很抱歉没有尽快回复。我尝试了您的新建议,但顶部的优惠券输入显示片刻然后消失。我想我现在会尽量不对这个页面做任何修改。当我将优惠券输入部分移到页面下方时,它阻止了我结帐,因此我暂时不想进行任何更改,因为客户当前正在使用该页面结帐。非常感谢您的帮助。如果可以的话,我可能会在以后重新审视所有这些。
猜你喜欢
  • 2016-02-20
  • 1970-01-01
  • 2015-11-29
  • 1970-01-01
  • 2017-11-09
  • 2019-11-13
  • 2020-05-11
  • 2016-07-20
  • 1970-01-01
相关资源
最近更新 更多