Я пытаюсь добавить одно текстовое поле ввода к каждому элементу в корзине и отправить этот пользовательский ввод в метаинформацию продукта. Это было 2 дня, и я еще не успел.
Моя цель:
- Взять данные от пользователя за каждый элемент, добавленный в корзину.
- Отобразить этот ввод в метаданных заказа.
- Отобразить этот ввод в электронном письме с подтверждением, отправленном клиенту.
До сих пор я скопировал файл шаблона в свою тему и добавил поле ввода внутри ячейки. У меня возникли проблемы с крючками, узнал о крючках, которые мне понадобятся из плагина WooCommerce Product Wrap, как показано в этом woocommerce вопрос.
Код, который я добавил в шаблон cart.php, скопированный в моем каталоге тем:
$input_url_data = '<div class="input-url"><input type="text" name="cart-url" value="" title="" class="input-text cart-url text" /></div>';
echo apply_filters( 'woocommerce_add_cart_item_data', $input_url_data, $cart_item_key );
Код, добавленный в мою тему functions.php:
add_filter( 'woocommerce_add_cart_item_data','add_cart_item_data', 10, 2 );
add_filter( 'woocommerce_get_cart_item_from_session','get_cart_item_from_session', 10, 2 );
add_filter( 'woocommerce_get_item_data','get_item_data', 10, 2 );
add_filter( 'woocommerce_add_cart_item','add_cart_item', 10, 1 );
add_action( 'woocommerce_add_order_item_meta','add_order_item_meta', 10, 2 );
function add_cart_item_data( $cart_item_meta, $product_id ) {
$input_url_key = "";
$input_url_data['inputurl'] = $input_url_key;
return $input_url_data;
}
function get_cart_item_from_session( $cart_item, $values ) {
if ( ! empty( $values['inputurl'] ) ) {
$cart_item['inputurl'] = true;
}
return $cart_item;
}
function get_item_data( $item_data, $cart_item ) {
if ( ! empty( $cart_item['inputurl'] ) )
$item_data[] = array(
);
return $item_data;
}
function add_cart_item( $cart_item ) {
if ( ! empty( $cart_item['inputurl'] ) ) {
}
return $cart_item;
}
function add_order_item_meta( $item_id, $cart_item ) {
if ( ! empty( $cart_item['inputurl'] ) )
woocommerce_add_order_item_meta( $item_id, __( 'URL by buyer', 'custom_input_url' ), __( 'Yes', 'custom_input_url' ) );
}
Документация о hook woocommerce_add_cart_item_data не очень полезна, и я застрял в этом. Как я могу продолжить?