2015-10-16 7 views
1

Я разрабатываю сайт WooCommerce, и у меня есть задача, где я застрял. Мне нужно добавить дополнительное пользовательское поле ввода в таблицу элементов корзины.Добавить поле пользовательского ввода в корзину Woocommerce Страница

Как, например, если человек заказы «2000 YouTube рассматривает» пакет, то прямо под именем элемента, я хочу, чтобы пользователь ввел его Youtube видео URL.

Я знаю, что могу добавить пользовательские поля ввода на Страница продукта и может просто сделать их отображения на странице корзины. Но я хочу взять пользовательские входные данные на Корзина Страница. Каждая позиция корзины будет иметь настраиваемое поле ввода. До сих пор я много исследовал, но не имел никакого успеха для своего решения. Все, что я нашел, чтобы распечатать данные пользовательского ввода на странице корзины, добавленной на странице продукта .

Любая помощь будет оценена

+0

Добавление его на страницу с карточкой похоже на намерение сделать его более сложным, чем должно быть. Просто используйте [Product Add ons] (http://www.woothemes.com/products/product-add-ons) на отдельных страницах продукта. – helgatheviking

ответ

-3

30 секунд я нашел прибегая к помощи этого учебника.

http://www.themelocation.com/how-to-add-custom-field-to-woocommerce-checkout-page/

Вот фрагменты.

/** 
* Add the field to the checkout page 
*/ 

add_action('woocommerce_after_order_notes', 'some_custom_checkout_field'); 

functionsome_custom_checkout_field($checkout) { 

    echo '<div id="some_custom_checkout_field"><h2>' . __('Heading') . '</h2>'; 

    woocommerce_form_field('some_field_name', array(
     'type'   => 'text', 
     'class'   => array('my-field-class form-row-wide'), 
     'label'   => __('Additional Field'), 
     'placeholder' => __('Some hint'), 
     'required'  => true, 
    ), $checkout->get_value('some_field_name')); 

    echo '</div>'; 
} 

/** 
* Process the checkout 
*/ 
add_action(‘woocommerce_checkout_process’, ‘some_custom_checkout_field_process’); 
functionsome_custom_checkout_field_process() { 
    // if the field is set, if not then show an error message. 
    if (! $_POST[‘some_field_name’]){ 
     wc_add_notice(__(‘Please enter value.’), ‘error’); 
    } 
} 

/** 
* Update the order meta with field value 
*/ 
add_action(‘woocommerce_checkout_update_order_meta’, ‘some_custom_checkout_field_update_order_meta’); 
function some_custom_checkout_field_update_order_meta($order_id) { 
    if (! empty($_POST[‘some_field_name’])) { 
     update_post_meta($order_id, ‘Some Field’, sanitize_text_field($_POST[‘some_field_name’])); 
    } 
} 

Я реализовал что-то подобное раньше, он должен работать, я сам не тестировал вышеуказанный код.

Надеюсь, это поможет.

+1

Вы потратили 30 секунд, потому что вы не правильно прочитали мой вопрос. Я упомянул, что хочу достичь этой функциональности на странице «Корзина», а не на странице «Checkout». Я знаю, как это сделать на странице проверки, но я прошу сделать страницу с тележкой. –

0

У меня тоже была эта проблема. Я решил это с этим. Добавление полей на странице корзины, как вы, но с jQuery, получает эти значения и динамически передает их с помощью запроса GET (добавление их в кнопку отправки) и $ _GET заполняет их на странице проверки в скрытом типе ввода.

 Смежные вопросы

  • Нет связанных вопросов^_^