Как добавить / обновить пользовательские данные корзины на странице корзины - PullRequest
2 голосов
/ 05 марта 2020

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

Я провел некоторые исследования. В этом уроке я обнаружил, что могу использовать woocommerce_add_cart_item_data перехватывать таким образом:

add_filter( 'woocommerce_add_cart_item_data', 'add_comment', 10, 3 );

function add_comment( $cart_item_data, $product_id, $variation_id ) {

    $cart_item_data['comment'] = 'This is comment';

    return $cart_item_data;

}

, но в моем случае это не работает.

Я прикрепляю изображение страницы корзины, чтобы вы могли понимаю.

enter image description here

Надеюсь, вы, ребята, понимаете, чего я хочу?

Спасибо.

Ответы [ 2 ]

3 голосов
/ 05 марта 2020

Ниже код добавит пользовательский текст к товару в корзине:

Вам необходимо создать настраиваемое поле "Комментарий", чтобы продукт использовал его здесь.

 add_filter( 'woocommerce_add_cart_item_data', 'add_comment', 10, 3 );

function add_comment( $cart_item_data, $product_id, $variation_id ) {

    $cart_item_data['comment'] = 'This is comment';

    return $cart_item_data;

}

Добавление пользовательского текста / комментария перед таблицей корзины на странице корзины:

add_action( 'woocommerce_before_cart_table', 'add_comment' );

function add_comment() 
{
    echo '<div class="woocommerce-info">This is comment</div>';
}

Добавление пользовательского текста / комментария после таблицы корзины на странице корзины:

add_action( 'woocommerce_after_cart_table', 'add_comment' );

function add_comment() {
    echo '<div class="woocommerce-info">This is comment</div>';
}

КАК ДОБАВИТЬ ВХОДНОЕ ПОЛЕ В ЭЛЕМЕНТЫ WOOCOMMERCE CART & Позволить пользователям обновлять поля ввода в корзине

https://pluginrepublic.com/how-to-add-an-input-field-to-woocommerce-cart-items/

По этой ссылке можно найти рабочее решение для аналогичного запроса: { ссылка }

Если вы согласны с использованием плагина, то это плагин сделает свое дело: https://wordpress.org/plugins/wc-fields-factory/

0 голосов
/ 05 марта 2020

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

Пожалуйста, добавьте свои логики c для добавления значений для каждого элемента

// Add custom value into cart item
add_filter('woocommerce_add_cart_item_data','sub_add_item_data',1,2);

if(!function_exists('sub_add_item_data'))
{
    function sub_add_item_data($cart_item_data,$product_id)
    {
        // use condition for adding custom value here
        $new_value = array( 
                'sub_custom_value' => 'custom value',
            );
        return array_merge($cart_item_data,$new_value);
    }
}


// Extract  custom values
add_filter('woocommerce_get_cart_item_from_session', 'sub_get_cart_items_from_session', 1, 3 );
if(!function_exists('sub_get_cart_items_from_session'))
{
    function sub_get_cart_items_from_session($item,$values,$key)
    {
        if (array_key_exists( 'sub_custom_value', $values ) )
        {
        $item['sub_custom_value'] = $values['sub_custom_value'];
        }       
        return $item;
    }
}


// display in cart and checkout

add_filter('woocommerce_checkout_cart_item_quantity','sub_add_user_custom_option_from_session_into_cart',1,3);  
add_filter('woocommerce_cart_item_price','sub_add_user_custom_option_from_session_into_cart',1,3);
if(!function_exists('sub_add_user_custom_option_from_session_into_cart'))
{
 function sub_add_user_custom_option_from_session_into_cart($product_name, $values, $cart_item_key )
    {    
        if(isset( $values['sub_custom_value'] ) && '' != $values['sub_custom_value'] )
        {
            $return_string = $product_name . "</a><dl class='variation'>";
            $return_string .= "<table class='sub_options_table' id='" . $values['product_id'] . "'>";
            $return_string .= "<tr><td>" . $values['sub_custom_value'] . "</td></tr>";
            $return_string .= "</table></dl>"; 
            return $return_string;
        }
        else
        {
            return $product_name;
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...