【发布时间】:2018-06-10 09:31:39
【问题描述】:
我正在尝试从 woocommerce 订单中获取信息,将其放入变量中,然后将其写入 SQL 数据库。我可以正确检索和处理数据。如果我手动运行它,我什至设法将它写入数据库。
我似乎无法让动作挂钩与脚本一起工作。
我遵循了我在这里看到的人们在做类似事情的做法,但到目前为止它还没有奏效。我有 3 个主要问题:
我可以在函数内部定义订单ID吗,
我是否需要在其他地方调用该函数,
此操作挂钩是否正确设置为在处理付款后运行。
函数如下:
add_action('woocommerce_payment_complete', 'returnAttributesFromCheckout');
function returnAttributesFromCheckout ($order_id) {
$connection = mysqli_connect('localhost', 'root', '', 'apptest');
if(!$connection) {
die('ded' . mysqli_error($connection));
}
global $woocommerce, $post;
$order = new WC_Order($order_id);
foreach ($order->get_items() as $item_id => $item_data) {
// Get an instance of corresponding the WC_Product object
$product = $item_data->get_product();
$rank = $product->get_attribute( 'pa_rank' );
$money = $product->get_attribute( 'pa_money' );
$spawner = $product->get_attribute( 'pa_spawner' );
$permission = $product->get_attribute( 'pa_permission' );
$kit = $product->get_attribute( 'pa_kit' );
$crate = $product->get_attribute( 'pa_crate' );
$tag = $product->get_attribute( 'pa_stag' );
$duration = $product->get_attribute( 'pa_duration' );
$d = strtotime("+ $duration Months");
$endDate = date("d/m/Y", $d);
$query = "INSERT INTO checkout(rank, money) ";
$query .= "VALUES('$rank', '$money')";
$result = mysqli_query($connection, $query);
if(!$result) {
die('its dead jim' . mysqli_error($connection));
}
}
}
【问题讨论】:
-
查看参数化查询
标签: php sql wordpress paypal woocommerce