Я разрабатываю плагин доставки для Woocommerce и пытаюсь получить значение поля «Имя для выставления счета» со страницы оформления заказа. Из того, что я пробовал до сих пор, я думаю, что я должен сделать Ajax-обновление после каждого поля. отредактированы не только те, которые касаются адреса.
Я поместил это в мои functions.php:
add_action('woocommerce_checkout_update_order_review', 'get_customer_details');
function get_customer_details($post_data){
global $woocommerce;
global $order;
// Details you want injected into WooCommerce session.
$details = array('billing_first_name', 'billing_last_name', 'billing_company', 'billing_email', 'billing_phone');
// Parsing data
$post = array();
$vars = explode('&', $post_data);
foreach ($vars as $k => $value){
$v = explode('=', urldecode($value));
$post[$v[0]] = $v[1];
}
// Populate the session
foreach($details as $key){
if(isset($post[$key]))
$woocommerce->session->set($key, $post[$key]);
}
}
В моем файле JS у меня есть это:
jQuery(document).ready(function () {
jQuery( 'form.checkout' ).on( 'input change', '#billing_first_name, #billing_last_name', function() {
jQuery( 'body' ).trigger( 'init_checkout' );
});
});
Теперь я могу получить доступ к значению Billing name name с помощью:
$woocommerce->session->get('billing_first_name');
и обновление ajax запускается после редактирования имени Billing; дело в том, что он НЕ обновляет значение имени для биллинга, и мне это нужно для этого.
Есть идеи?
Спасибо!
Задача ещё не решена.
Других решений пока нет …