Woocommerce добавьте поле с флажком в элемент корзины и сохраните его по порядку - PullRequest
0 голосов
/ 12 октября 2019

Я новичок в Woocommerce, но у меня есть возможность понять и внести некоторые простые пользовательские изменения ... Я много ищу свой проект, но не могу сделать то, что хочу ... так что теперь мне нужна помощь ...! мой проект ..

Я хочу добавить флажок ТОЛЬКО в каждый элемент корзины на странице корзины ( НЕ на отдельной странице продукта, например add_before_add_to cart_button ), чтобыпокупатель может выбрать, предназначен ли товар для подарка, например, фото

на странице корзины

.., а также отобразить значение на странице оформления заказа и вдетали заказа ...

после большого количества поисков я делаю что-то вроде этого ... но отображаю только флажки в элементе корзины .. не сохраняю .. не отображается в порядке ...

где я не прав ?? Вы можете мне помочь?

 * Add a text field to each cart item
 */
function prefix_after_cart_item_name( $cart_item, $cart_item_key ) 
{

 ?>
            <div class="simple-selects">
                <div class="col-md-6">
                    <p><input type="checkbox" name="gift" id="gift"><?php _e( " Wrap as Gift", "aoim");?></p>
                </div>
            </div>  <?php

}
add_action( 'woocommerce_after_cart_item_name', 'prefix_after_cart_item_name', 10, 2 );


/**
         * Add data to cart item
         */
        add_filter( 'woocommerce_add_cart_item_data', 'add_cart_item_data', 10, 2 );
        function add_cart_item_data( $cart_item_data, $product_id ) {

            if ( isset( $_POST ['gift'] )) {
                /*$custom_data  = array() ;
                $custom_data [ 'gift' ]    = isset( $_POST ['gift'] ) ?  sanitize_text_field ( $_POST ['gift'] ) : "" ;
                $cart_item_meta ['custom_data']     = $custom_data ;*/
                $cart_item_data[ 'gift' ] = sanitize_text_field($_POST['gift']);

            }

            return $cart_item_data;
        }
add_action( 'woocommerce_checkout_update_order_meta', 'save_idvopros_as_order_meta', 10, 3 );
function save_idvopros_as_order_meta( $order_id, $data ) {
    foreach(WC()->cart->get_cart() as $cart_item)
        $gift = empty($cart_item['gift']) ? 'yes' : $cart_item['gift'];
    update_post_meta($order_id, '_idvopros_temp', $gift, true);
}
add_action('woocommerce_order_status_completed', 'ustanovka_oplaty');
function ustanovka_oplaty( $order_id) {

    $gift = get_post_meta( $order_id, '_idvopros_temp', true );
    if ( ! empty( $gift ) ) {
        update_post_meta($order_id, 'wpcf-idvopros', $gift );
        delete_post_meta($order_id, '_idvopros_temp' );
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...