وردپرس
woocommerce_checkout_update_order_meta
پاسخ ها: 0
برای کد زیر
// #############################
add_action('woocommerce_checkout_update_order_meta', 'add_cart_params_to_order_meta', 10, 2);
function add_cart_params_to_order_meta($order_id) {
$order = wc_get_order($order_id);
foreach (WC()->cart->get_cart() as $cart_item) {
if (isset($cart_item['ref'])) {
$order->update_meta_data('wc_ref', $cart_item['ref'], true);
error_log('Ref salvat: ' . $cart_item['ref']);
} else {
error_log('Nu exista ref in acest cart_item');
}
if (isset($cart_item['email'])) {
$order->update_meta_data('wc_email', $cart_item['email'], true);
error_log('Email salvat: ' . $cart_item['email']);
} else {
error_log('Nu exista ref in acest cart_item');
}
}
error_log('Meta-datele comenzii înainte de salvare: ' . print_r($order->get_meta_data(), true));
$order->save();
wp_cache_flush();
error_log('Order meta data saved successfully for order ID: ' . $order->get_id());
}
من می توانم در گزارش ها ببینم
Meta-datele comenzii înainte de salvare:
...
[data:protected] => Array
(
[id] => 814
[key] => is_vat_exempt
[value] => no
)
)
[3] => WC_Meta_Data Object
(
[current_data:protected] => Array
(
[key] => wc_ref
[value] => http://wp1.local
)
[data:protected] => Array
(
[key] => wc_ref
[value] => http://wp1.local
)
)
با این حال وقتی اجرا می کنم
SELECT * FROM wp_postmeta WHERE meta_key IN ('wc_ref', 'wc_email');
Empty set (0.00 sec)
آیا می دانید و می توانید به من بگویید چرا METAهای سفارش wc_ref و wc_email ذخیره نمی شوند؟
به هر حال اگر از گزینه به روز رسانی مانند زیر استفاده کنم
//add_action('woocommerce_checkout_update_order_meta', 'add_dynamic_cart_params_to_options', 10, 2);
//function add_dynamic_cart_params_to_options($order_id, $data) {
// foreach (WC()->cart->get_cart() as $cart_item) {
// if (isset($cart_item['ref'])) {
// // Creează un nume de opțiune dinamic pentru "ref"
// $ref_option_name="wc_ref_" . $order_id;
// update_option($ref_option_name, $cart_item['ref']);
// error_log('Ref salvat în opțiune: ' . $ref_option_name . ' -> ' . $cart_item['ref']);
// } else {
// error_log('Nu există ref în acest cart_item');
// }
کار می کند
این خبر را در ایران وب سازان مرجع وب و فناوری دنبال کنیدمشاهده پاسخ های این مطلب
———————————————
این مطلب از سایت انجمن وردپرس گردآوری شده است و کلیه حقوق مطلق به انجمن وردپرس می باشد در صورت مغایرت و یا بروز مشکل اطلاع دهید تا حذف گردد
منبع: انجمن وردپرس