Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.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/8/mysql/61.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 将订单总数和客户电子邮件存储在MySQL数据库中的自定义表中_Php_Mysql_Wordpress_Woocommerce_Orders - Fatal编程技术网

Php 将订单总数和客户电子邮件存储在MySQL数据库中的自定义表中

Php 将订单总数和客户电子邮件存储在MySQL数据库中的自定义表中,php,mysql,wordpress,woocommerce,orders,Php,Mysql,Wordpress,Woocommerce,Orders,我试图从woocommerce的functions.php文件中完成的签出中提取数据。结帐后,我尝试存储自定义生成的代码、生成订单的电子邮件以及订单的总金额。我无法从订单中提取任何数据,并且未能找到任何与此相关的文档 签出成功完成后,必须提取数据 该表包含凭证代码(每笔交易生成的唯一代码)、用户电子邮件和订单总价列。我找不到一种方法来抓取用户的电子邮件和订单总数后结帐。查询必须插入在函数中生成的凭证ID、应从订单详细信息中获取的电子邮件、设置为0的兑换以及也应从订单详细信息中获取的值 在Wooc

我试图从woocommerce的functions.php文件中完成的签出中提取数据。结帐后,我尝试存储自定义生成的代码、生成订单的电子邮件以及订单的总金额。我无法从订单中提取任何数据,并且未能找到任何与此相关的文档

签出成功完成后,必须提取数据

该表包含凭证代码(每笔交易生成的唯一代码)、用户电子邮件和订单总价列。我找不到一种方法来抓取用户的电子邮件和订单总数后结帐。查询必须插入在函数中生成的凭证ID、应从订单详细信息中获取的电子邮件、设置为0的兑换以及也应从订单详细信息中获取的值

在Woocommerce签出页面上,我有一个内部服务器错误PHP致命错误:
调用布尔值上的成员函数
get_data()

我做错了什么?如何解决此错误?

我如何在MySQL数据库中的自定义表中存储订单总数和客户电子邮件?

您的问题不是很清楚,也不够详细。我们不知道您是否试图将此数据添加到Wordpress数据库或其他数据库中的自定义表中

如果您试图在wordpress数据库的自定义表中插入数据,则应使用(正如我在回答中所使用的),否则应使用最后一个代码段

$order\u id
未定义,代码会抛出错误。变量
$string
也未定义,如果它是索引列,则不需要显示(如下面的第一个代码段)

看起来您的目标是“已完成”的订单。使用
woocommerce\u email\u before\u order\u table
hook将使您的代码在每个电子邮件通知中被多次触发。此外,这个钩子确实不便于触发任何数据库更改

订单状态为“完成”时将触发以下代码。因此有两种情况:

1) 在Wordpress数据库中为自定义表执行操作:

add_action( 'woocommerce_order_status_completed', 'generate_code_on_order_complete', 20, 2 );
function generate_code_on_order_complete( $order_id, $order ){
    global $wpdb;

    $billing_email = $order->get_billing_email(); // Billing email
    $total_tax     = $order->get_total_tax();     // Billing email

    $wpdb->query("
        INSERT INTO test_vouchers (email, redeemed, value)
        VALUES ('$billing_email','0','$total_tax');
    ");
}
代码进入活动子主题(或活动主题)的function.php文件。测试和工作


2) 将数据插入Wordpress one之外的另一个数据库(未测试):

您应该完成以下代码以使dabase连接到外部数据库并插入数据…请记住,
$string
未定义

add_action( 'woocommerce_order_status_completed', 'generate_code_on_order_complete', 20, 2 );
function generate_code_on_order_complete( $order_id, $order ){

    $billing_email = $order->get_billing_email(); // Billing email
    $total_tax     = $order->get_total_tax();     // Billing email

    ## To be completed by you (below) ##

    $connection = DBLogin();

    $query = "INSERT INTO test_vouchers (voucher_id, email, redeemed, value) VALUES ('$string','$billing_email','0','$total_tax')";
}

代码进入活动子主题(或活动主题)的function.php文件。

您的实际问题是什么?在woocommerce签出页面上,我不断收到一个内部服务器错误和php致命错误:通过编辑您的帖子,而不是通过评论,调用BooleanClearify上的成员函数get_data()。请阅读并采取行动。
add_action( 'woocommerce_order_status_completed', 'generate_code_on_order_complete', 20, 2 );
function generate_code_on_order_complete( $order_id, $order ){

    $billing_email = $order->get_billing_email(); // Billing email
    $total_tax     = $order->get_total_tax();     // Billing email

    ## To be completed by you (below) ##

    $connection = DBLogin();

    $query = "INSERT INTO test_vouchers (voucher_id, email, redeemed, value) VALUES ('$string','$billing_email','0','$total_tax')";
}