Intereting Posts
WordPress Shortcode Возвращает «Массив» Каковы разрешения по умолчанию при создании файла с fopen () в php? PHP: утечка памяти в рекурсивной функции Создайте временную папку, чтобы сохранить файлы в структуре и сделать ее загружаемой путем сжатия папки Алгоритм динамического слияния массивов Переменные сеанса PHP после обновления страницы Уникальные аргументы SendGrid для отдельных писем Как правильно развернуть приложение Laravel из моей локальной среды на мой удаленный сервер? Рисование скобки турнира (CSS / HTML на основе набора данных PHP) как отправлять электронные письма по нескольким адресам с помощью phpmailer Изменение файла макета в представлении Yii2 Кэширование пользовательской социальной доли в WordPress Арабский скрипт в формате PDF, созданный UFPDF dompdf не отображает изображения с сервера, а выводит из внешнего источника Как вы определяете действительный SoapAction?

Добавить пользовательский флажок для заказа в WooCommerce

Обновление WooCommerce 3.0 не было добрым ко мне. Я добавил настраиваемое поле для проверки имени домена, и у меня возникли проблемы с поиском способа его сохранения. Этот код добавляет поле должным образом:

add_action( 'woocommerce_after_order_notes', 'add_domain_checkout_field' ); function add_domain_checkout_field( $checkout ) { echo '<div id="add_domain_checkout_field"><h2>' . __('Domain') . '</h2>'; woocommerce_form_field( 'sitelink_domain', array( 'type' => 'text', 'required' => true, 'class' => array('my-field-class form-row-wide'), 'label' => __('Domain where SiteLink will be installed'), 'placeholder' => __('Enter your URL'), ), $checkout->get_value( 'sitelink_domain' )); echo '</div>'; } 

И я пытаюсь сохранить его, таким образом:

 add_action( 'woocommerce_checkout_create_order', 'add_domain_to_order_meta', 10, 2 ); function add_domain_to_order_meta( $order, $data ) { if ( ! empty( $_POST['sitelink_domain'] ) ) { $order->add_meta_data( 'ssla_sitelink_url', sanitize_text_field( $_POST['sitelink_domain'] ) ); } } 

Однако мета не добавляется и не сохраняется.

Я знаю, что переменная $_POST есть, у меня ошибка, чтобы ее увидеть.

Тестирование некоторых захватов и регистрации ошибок смущает меня дальше:

 $sitelink_domain = $subscription->get_meta_data( 'ssla_sitelink_url' ); error_log( print_r( $sitelink_domain, true ) ); 

// Выход:

 [21-Apr-2017 01:26:27 UTC] Array ( [0] => stdClass Object ( [id] => 270086 [key] => _ssla_sitelink_url [value] => lololol.com ) [1] => stdClass Object ( [id] => 270089 [key] => _download_permissions_granted [value] => 1 ) ) 

Однако,

 $sitelink_domain = $subscription->get_meta( 'ssla_sitelink_url' ); error_log( 'Domain: ' . $sitelink_domain ); 

Результат:

 [21-Apr-2017 01:27:39 UTC] Domain: