Я новичок в PHP, и я обычно просматриваю сеть для статей и руководств, когда у меня проблема с кодировкой. К сожалению, я искал пару дней, пытаясь исправить свои собственные ошибки без везения, поэтому я надеюсь, что кто-то может помочь.Сохранение динамических полей пользовательских проверок в Woo commerce
Я создаю сайт с Wordpress и Woo commerce. Я выполнил некоторые обучающие программы, подобные этому (http://www.portmanteaudesigns.com/blog/2015/02/04/woocommerce-custom-checkout-fields-email-backend/), чтобы добавить пользовательские поля в woo commerce checkout.
Мне нужно добавить поле к кассе для каждого предмета в корзине, чтобы можно было собрать информацию по каждому предмету (поэтому, если количество предметов в корзине равно 6, будет предоставлено 6 полей для информации).
Используя код, приведенный ниже, для каждого элемента в корзину, поле добавляется:
/**
* Add the field to the checkout
**/
add_action('woocommerce_after_order_notes', 'wordimpress_custom_checkout_field');
function wordimpress_custom_checkout_field($checkout) {
//Check if Shoe in Cart (UPDATE WITH YOUR PRODUCT ID)
$shoe_in_cart = wordimpress_is_conditional_product_in_cart();
//Shoe is in cart so show additional fields
if ($shoe_in_cart === true) {
echo '<div id="my_custom_checkout_field">';
foreach ($_SESSION['value'] as $key => $value) {
$n = 1;
$itemQuantity = $value['quantity'];
$ProductID = $value['product_id'];
$_product = $value['data']->post;
for($QuantityCheck = 0; $QuantityCheck < $itemQuantity; $QuantityCheck++) {
$LabelTitle = ($_product->post_title. ' '.$n.' - shoe name');
woocommerce_form_field('inscription_textbox'.$ProductID.$n, array(
'type' => 'text',
'required' => true,
'placeholder' => __('Shoe name'),
'class' => array('inscription-text form-row-wide'),
'label' => __($LabelTitle),
), $checkout->get_value('inscription_textbox'.$ProductID.$n));
$checkoutFieldName = ('inscription_textbox'.$ProductID.$n);
$_SESSION['checkoutFields'] [] = $checkoutFieldName;
$n ++;
}
}
echo '</div>';
}
}
Я попытался прикрепить снимок результата, но моя репутация недостаточно высока (код работает и добавляются динамические дополнительные поля).
Моя проблема заключается в сохранении этих динамических настраиваемых полей в базе данных или их отображении на странице подтверждения заказа.
Это последний код, который я использовал, чтобы попытаться сохранить информацию о поле в базе данных:
add_action('woocommerce_checkout_update_order_meta', 'my_custom_checkout_field_update_order_meta');
function my_custom_checkout_field_update_order_meta($order_id) {
foreach($_SESSION['checkoutFields'] as $key => $value){
if(isset($_POST[$value])) {
add_post_meta($order_id, $value, $_POST[$value]);
}
}
}
Пожалуйста, помогите.
Благодаря в ожидании
У меня такая же проблема. –
@Brock Мне до сих пор не удалось найти решение, если я это сделаю, я поделюсь здесь. – Adav365