首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Woocommerce结账-使用AJAX添加折扣

Woocommerce结账-使用AJAX添加折扣
EN

Stack Overflow用户
提问于 2015-08-11 13:25:37
回答 1查看 1.5K关注 0票数 2

我正在尝试让Woocommerce结账页面在查看您的订单部分添加折扣,这是由元素的innerHTML更改触发的。

我使用的JavaScript是:

代码语言:javascript
运行
复制
var discount = 0;
function innerHTMLChanged() {
    if (jQuery('#hideDiscount').html() != "oldText") {

        console.log("innerHTML has changed!"); 
        discount = jQuery('#hideDiscount').html();

        jQuery.ajax({
            url: "http://example.site/apply-discount.php",
            type: "POST",
            data: {
                action: jQuery('#hideDiscount').html()
            }
        }).done(function(data) {
            alert( data.message );
        });
    }
}

// fires every half a second
setInterval(innerHTMLChanged, 500);

apply-discount.php文件包含:

代码语言:javascript
运行
复制
<?php


$discount = $_POST['action'];
$reverseDiscount = $discount * -1;

function woo_add_cart_fee() {
    global $woocommerce;

    $woocommerce->cart->add_fee( __('Discount', 'woocommerce'), $reverseDiscount );
}

add_action('woocommerce_cart_calculate_fees','woo_add_cart_fee');

?>

执行代码时,Chrome控制台输出以下内容:

代码语言:javascript
运行
复制
POST http://example.site/apply-discount.php 500 
(Internal Server Error)
m.ajaxTransport.send @ jquery.js?ver=1.11.2:4
m.extend.ajax @ jquery.js?ver=1.11.2:4
innerHTMLChanged @ (index):357

有没有人能告诉我内部服务器错误的原因?

提前谢谢。

以下是控制台的屏幕截图,显示了带有参数name:"action“和value:"0.00”的请求头,这是正确的POST数据,响应头显示"Internal Server Error“。所以AJAX请求正在被发送,错误与响应PHP..?

EN

回答 1

Stack Overflow用户

发布于 2017-07-21 02:42:08

在Wordpress中使用AJAX时,您需要先加载WP,然后才能使用任何全局变量和/或函数。

在您要通过AJAX发布到的PHP文件的顶部,包括以下行:require_once( dirname( dirname( __FILE__ ) ) . '/wp-admin/wp-load.php' );

现在WP已加载,您可以使用它的所有辉煌功能。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31933811

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档