我正在创建一个使用WooCommerce的在线商店,我正在添加一个功能,它将把我的数据库的奖励积分更新为absract-wc-payment-gateway.php.
这是我在做的事情:
>首先,在结账页面上,用户将点击下订单按钮,然后该方法将获得用户奖励积分,并使用get-total()减去奖励积分,然后更新到数据库并转到感谢你的页面.
>然后,感谢页面将从数据库中获得用户的奖励积分.并且我将奖励积分值设置为2000.所以在这种情况下,奖励积分应该减去总积分($50.00)
这是我的代码.它将在用户单击下订单按钮时运行:
global $woocommerce;
$order = new WC_Order($order_id);
$total = $order->get_total();
$bonusPoint -= (int)$total; //minus total price and calculate the latest bonus point
$updateSql = "UPDATE userdata02 SET bonusPoint ='" .$bonusPoint. "' WHERE userID = 2147483647";
mysqli_query($link, $updateSql);// update to an int column
if(mysqli_query($link, $updateSql)) {
echo "Record updated successfully";
} else {
echo "Error update record: <>" . mysqli_error($link);
}
用户单击“放置”按钮时调用该方法:
public function get_return_url( $order = null ) {
if ( $order ) {
//$message = "wrong answer";
//echo "";
$return_url = $order->get_checkout_order_received_url();
} else {
$return_url = wc_get_endpoint_url( 'order-received', '', wc_get_page_permalink( 'checkout' ) );
}
if ( is_ssl() || get_option('woocommerce_force_ssl_checkout') == 'yes' ) {
$return_url = str_replace( 'http:', 'https:', $return_url );
}
self::reducePoints(); //Call reducePoints();
return apply_filters( 'woocommerce_get_return_url', $return_url, $order );
}
get_total()不起作用,返回零.
我做错了什么?