Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在Woocommerce中结帐付款后移动优惠券字段?_Php_Wordpress_Woocommerce_Hook Woocommerce - Fatal编程技术网

Php 在Woocommerce中结帐付款后移动优惠券字段?

Php 在Woocommerce中结帐付款后移动优惠券字段?,php,wordpress,woocommerce,hook-woocommerce,Php,Wordpress,Woocommerce,Hook Woocommerce,我想在结帐付款后移动优惠券文件。这就是我已经准备好的: remove_action( 'woocommerce_before_checkout_form', 'woocommerce_checkout_coupon_form'); add_action( 'woocommerce_after_checkout_form', 'woocommerce_checkout_coupon_form' ); 现在是在签出表单之后 谢谢 Coupan代码是单独的形式,因此您需要遵循以下步骤: 为了实现这个

我想在结帐付款后移动优惠券文件。这就是我已经准备好的:

remove_action( 'woocommerce_before_checkout_form', 'woocommerce_checkout_coupon_form');
add_action( 'woocommerce_after_checkout_form', 'woocommerce_checkout_coupon_form' );
现在是在签出表单之后


谢谢

Coupan代码是单独的形式,因此您需要遵循以下步骤:

为了实现这个移动,我将使用jQueryUI对话框库来帮助我实现对话框功能。在functions.php中,添加以下代码(在这种情况下,如果您的网站还没有包含jQueryUI对话框库)

接下来,创建一个包含优惠券代码所有内容的jQuery模型对话框实例。定位“模型”对话框,使其定位到签出表单中的HTML元素。使用现有的WooCommerce筛选器(或操作)将HTML元素定位到签出表单中所需的位置。 在functions.php中,添加以下代码:

function cw_show_coupon_js() {
    wc_enqueue_js('$("a.showcoupon").parent().hide();');
    wc_enqueue_js('dialog = $("form.checkout_coupon").dialog({
                       autoOpen: false,
                       width: 500,
                       minHeight: 0,
                       modal: false,
                       appendTo: "#coupon-anchor",
                       position: { my: "left", at: "left", of: "#coupon-anchor"},
                       draggable: false,
                       resizable: false,
                       dialogClass: "coupon-special",
                       closeText: "Close",
                       buttons: {}});');
    wc_enqueue_js('$("#show-coupon-form").click( function() {
                       if (dialog.dialog("isOpen")) {
                           $(".checkout_coupon").hide();
                           dialog.dialog( "close" );
                       } else {
                           $(".checkout_coupon").show();
                           dialog.dialog( "open" );
                       }
                       return false;});');
}
add_action('woocommerce_before_checkout_form', 'cw_show_coupon_js');
接下来,要在表单中显示优惠券字段,请添加“单击此处输入代码链接”。此代码将在“客户详细信息”和“订单详细信息”部分之间添加链接。为了签出此链接的其他位置,您可以查看签出页面上的其他WooCommerce操作和过滤器(WooCommerce\u签出\u字段或WooCommerce\u签出前\u账单表单)。如果找不到正确的筛选器或方法,可以覆盖默认的WooCommerce签出页面模板,并在所需位置找到链接

function cw_show_coupon() {
    global $woocommerce;

    if ($woocommerce->cart->needs_payment()) {
        echo '<p style="padding-bottom: 5px;"> Have a coupon? <a href="#" id="show-coupon-form">Click here to enter your coupon code</a>.</p><div id="coupon-anchor"></div>';
    }
}
add_action('woocommerce_checkout_after_customer_details', 'cw_show_coupon');
函数cw\u show\u优惠券(){
全球商业;
如果($woocommerce->cart->needs_payment()){
有优惠券吗;
}
}
添加操作(“客户详细信息后的woocommerce\u checkout\u”、“cw\u show\u优惠券”);

Coupan代码是单独的形式,因此您需要遵循以下步骤:

为了实现这个移动,我将使用jQueryUI对话框库来帮助我实现对话框功能。在functions.php中,添加以下代码(在这种情况下,如果您的网站还没有包含jQueryUI对话框库)

接下来,创建一个包含优惠券代码所有内容的jQuery模型对话框实例。定位“模型”对话框,使其定位到签出表单中的HTML元素。使用现有的WooCommerce筛选器(或操作)将HTML元素定位到签出表单中所需的位置。 在functions.php中,添加以下代码:

function cw_show_coupon_js() {
    wc_enqueue_js('$("a.showcoupon").parent().hide();');
    wc_enqueue_js('dialog = $("form.checkout_coupon").dialog({
                       autoOpen: false,
                       width: 500,
                       minHeight: 0,
                       modal: false,
                       appendTo: "#coupon-anchor",
                       position: { my: "left", at: "left", of: "#coupon-anchor"},
                       draggable: false,
                       resizable: false,
                       dialogClass: "coupon-special",
                       closeText: "Close",
                       buttons: {}});');
    wc_enqueue_js('$("#show-coupon-form").click( function() {
                       if (dialog.dialog("isOpen")) {
                           $(".checkout_coupon").hide();
                           dialog.dialog( "close" );
                       } else {
                           $(".checkout_coupon").show();
                           dialog.dialog( "open" );
                       }
                       return false;});');
}
add_action('woocommerce_before_checkout_form', 'cw_show_coupon_js');
接下来,要在表单中显示优惠券字段,请添加“单击此处输入代码链接”。此代码将在“客户详细信息”和“订单详细信息”部分之间添加链接。为了签出此链接的其他位置,您可以查看签出页面上的其他WooCommerce操作和过滤器(WooCommerce\u签出\u字段或WooCommerce\u签出前\u账单表单)。如果找不到正确的筛选器或方法,可以覆盖默认的WooCommerce签出页面模板,并在所需位置找到链接

function cw_show_coupon() {
    global $woocommerce;

    if ($woocommerce->cart->needs_payment()) {
        echo '<p style="padding-bottom: 5px;"> Have a coupon? <a href="#" id="show-coupon-form">Click here to enter your coupon code</a>.</p><div id="coupon-anchor"></div>';
    }
}
add_action('woocommerce_checkout_after_customer_details', 'cw_show_coupon');
函数cw\u show\u优惠券(){
全球商业;
如果($woocommerce->cart->needs_payment()){
有优惠券吗;
}
}
添加操作(“客户详细信息后的woocommerce\u checkout\u”、“cw\u show\u优惠券”);
您应该尝试以下方法:

remove_action( 'woocommerce_before_checkout_form', 'woocommerce_checkout_coupon_form', 10 );
add_action( 'woocommerce_review_order_before_payment', 'woocommerce_checkout_coupon_form' );
但不确定它是否能正常工作…您还需要自定义Woocommerce模板
签出/表单优惠券.php
..

您应该尝试以下方法:

remove_action( 'woocommerce_before_checkout_form', 'woocommerce_checkout_coupon_form', 10 );
add_action( 'woocommerce_review_order_before_payment', 'woocommerce_checkout_coupon_form' );

但不确定它是否能正常工作……您还需要自定义Woocommerce模板
结帐/表格优惠券.php
..

我想将其添加到@LoicTheAztecI总额的下方我想将其添加到@LoicTheAztecI总额的下方谢谢您的回答,但我已经做好了准备,我想添加它位于totalI尝试实现此功能的下方,但Chrome Inspector报告ncaught TypeError:$(…)。该对话框不是HTMLDocument的函数。在HTMLDocument.K(jquery.js?ver=1.12.4:2)第1309行是dialog=$(函数(){(“form.checkout_优惠券”)。dialog({谢谢你的回答,但我已经准备好了,我想把它添加到总数的下面。我尝试实现了这一点,但Chrome Inspector报告ncaught TypeError:$(…)。dialog不是HTMLDocument的函数。((索引):1309)在I(jquery.js?ver=1.12.4:2)在Object.fireWith[解析](jquery.js?ver=1.12.4:2)在HTMLDocument.K(jquery.js?ver=1.12.4:2)的Function.ready(jquery.js?ver=1.12.4:2)第1309行是dialog=$(Function(){$(“form.checkout_”)。dialog({