Php 在自定义表中保存订单详细信息

Php 在自定义表中保存订单详细信息,php,sql,ajax,wordpress,woocommerce,Php,Sql,Ajax,Wordpress,Woocommerce,我已在表order master中创建了一个自定义数据库,我将在其中保存商业订单总金额,运费和代币。 为此,我编辑了paypemts.php文件,代码如下: <?php include_once($_SERVER['DOCUMENT_ROOT'].'/canadiapharma.com/wp-config.php' ); global $woocommerce; global $wpdb; echo '<h3>Custom Calculation :</h3>';

我已在表
order master
中创建了一个自定义数据库,我将在其中保存商业订单
总金额
运费
代币
。 为此,我编辑了
paypemts.php
文件,代码如下:

<?php
include_once($_SERVER['DOCUMENT_ROOT'].'/canadiapharma.com/wp-config.php' );
global $woocommerce;
global $wpdb;
echo '<h3>Custom Calculation :</h3>';
$amount_2 = $woocommerce->cart->get_cart_total();
$ship_raw = floatval( preg_replace( '#[^\d.]#', '', $woocommerce->cart->get_cart_shipping_total() ) );
$ship = $ship_raw - 3600;
echo '<strong>Shipping :</strong>';
echo $ship; 
$nano=WC()->cart->cart_contents_total;
echo '<br>';
$total_amt = $nano+$ship;
echo '<strong>Total :</strong>';
echo $total_amt;
echo '<br>';
$salt = 'dAta_EnC!=';
$token_raw = base64_encode($total_amt. $salt);
$token = preg_replace(sprintf('/=/', $salt), '', $token_raw);
echo '<strong>Token :</strong>';
echo $token;
$wpdb->query("INSERT INTO order_master (payment_amt, ship, token) VALUES ('$total_amt', '$ship', '$token')"  );
?>
dbinsert():


请帮助我解决此问题。

尝试将您的ajax url
url:“savedata.php”,
更改为
url:“
”,并在主题的function.php中添加以下代码

add_action('wp_ajax_nopriv_save_order_data', 'save_order_data');
add_action('wp_ajax_save_order_data', 'save_order_data');
function save_order_data() {
     global $wpdb;
     $total_amt = $_POST['amount'];
     $ship = $_POST['ship'];
     $token = $_POST['token'];
     $stmt = $wpdb->query("INSERT INTO order_master (payment_amt, ship, token) VALUES ('$total_amt', '$ship', '$token')"  );
     $result = $wpdb->query($wpdb->prepare($stmt));

     if($result)
     {
         $res="Data Inserted Successfully:";
         echo json_encode($res);
     }
     else {
         $error="Not Inserted,Some Probelm occur.";
         echo json_encode($error);
     }
}
更新:
var myKeyVals={amount:,ship:,token:}
中有错误。更改您的
var myKeyVals
,如下所示:

var myKeyVals = { amount : "<?php echo $total_amt; ?>", 
                  ship : "<?php echo $ship; ?>", 
                  token : "<?php echo $token; ?>" }
var myKeyVals={金额:“”,
船舶:“,
标记:}
您需要用javascript在
中编写php代码


希望这能有所帮助。

什么也没发生。有什么问题吗?我的
savedata.php
代码是否正常?首先检查是否调用了
函数save\u order\u data()。顺便说一句,请告诉我如何检查是否调用了函数
save\u order\u data()
?因为我使用
alert()
检查了它,但现在它没有显示任何警报
save_order_data()
函数中,我将
myKeyVals
更改为
var myKeyVals={amount:100,ship:50,token:123456}
并在表中插入数据。因此,我认为在尝试
echo
PHP变量时,
myKeyVals
中存在问题。顺便说一句,我还收到了
出错的
警报弹出窗口。
<?php
global $wpdb;
$total_amt = $_POST['amount'];
$ship = $_POST['ship'];
$token = $_POST['token'];
$stmt = $wpdb->query("INSERT INTO order_master (payment_amt, ship, token) VALUES ('$total_amt', '$ship', '$token')"  );
$stmt->bindparam('payment_amt', $total_amt);
$stmt->bindparam('ship', $ship);
$stmt->bindparam('token', $token);
if($stmt->execute())
{
  $res="Data Inserted Successfully:";
  echo json_encode($res);
}
else {
  $error="Not Inserted,Some Probelm occur.";
  echo json_encode($error);
}
?>
add_action('wp_ajax_nopriv_save_order_data', 'save_order_data');
add_action('wp_ajax_save_order_data', 'save_order_data');
function save_order_data() {
     global $wpdb;
     $total_amt = $_POST['amount'];
     $ship = $_POST['ship'];
     $token = $_POST['token'];
     $stmt = $wpdb->query("INSERT INTO order_master (payment_amt, ship, token) VALUES ('$total_amt', '$ship', '$token')"  );
     $result = $wpdb->query($wpdb->prepare($stmt));

     if($result)
     {
         $res="Data Inserted Successfully:";
         echo json_encode($res);
     }
     else {
         $error="Not Inserted,Some Probelm occur.";
         echo json_encode($error);
     }
}
var myKeyVals = { amount : "<?php echo $total_amt; ?>", 
                  ship : "<?php echo $ship; ?>", 
                  token : "<?php echo $token; ?>" }