1
我正在開發一個週期租用站點,用戶在其中選擇從開始日期到結束日期範圍(以天爲單位)。我使用wc_add_order_item_meta()
函數作爲訂單的元數據存儲該數據。如何從任何地方更新訂單項元數據?
然後,我想給用戶一個功能,就像他可以通過訂單頁面更改或延長日期。這也完成了,我已經創建了一個模式,並添加了一個關於改變模態日期的Ajax請求。
現在,我使用AJAX將數據發送到functions.php
,並且我使用wc_update_order_item_meta()
來更新元數據。
這裏是我的功能看起來像:
add_action('wp_ajax_update_date_picker', 'update_date_picker');
function update_date_picker() {
$p_da = $_POST['p_date'];
$r_da = $_POST['r_date'];
$t_dy = $_POST['t_days'];
$order_id = $_POST['order_id'];
$order = wc_get_order($order_id);
foreach ($order->get_items() as $item_id => $item_obj) {
$pd = wc_update_order_item_meta($item_id, 'pickup_hidden_datetime', $p_da);
$rd = wc_update_order_item_meta($item_id, 'return_hidden_datetime', $r_da);
$td = wc_update_order_item_meta($item_id, 'return_hidden_days', $t_dy);
if($pd&&$rd&&$td){
echo "Nice work, Bilal";
}
die();
}
}
這是更新過,但不是在所有的地方。我的意思是,它給了我正確的迴應,當我刷新時,它也提供了更新的數據,但是當我瀏覽視圖項目頁面時,它僅顯示舊數據而不是更新數據。即使我查看管理員的訂單,也會顯示舊的元數據。
任何想法將不勝感激,感謝提前。
什麼版本是你的woocommerce? – Reigel
@Reigel版本是3.1.1 –