Как я могу скопировать значение из мета сообщения в мета другого поля в одном сообщении? например:
copy value from custom_field_1 (if exist) or custom_field_2 (if exist) to custom_ field_3
Только одно из field1 или field2 имеет значение, а поле 3 всегда имеет значение e, скопированное из fiel1 или field2.
Все настраиваемые поля находятся в одной мета поста (woo product).






Сделать это можно двумя способами:
1) Старый способ из $product_id - идентификатор динамического продукта (или идентификатор заказа):
if ( ( $value = get_post_meta( $product_id, 'custom_field_1', true ) || $value = get_post_meta( $product_id, 'custom_field_2', true ) ) && ! get_post_meta( $product_id, 'custom_field_3', true ) ){
update_post_meta( $product_id, 'custom_field_3', $value );
}
2) Новый способ(начиная с WooCommerce 3, методы CRUD) из $product, объект WC_Product(или от$order, тоWC_OrderОбъект):
if ( ( $value = $product->get_meta( 'custom_field_1' ) || $value = $product->get_meta( 'custom_field_2') ) && ! $product->get_meta( 'custom_field_3' ) ){
$product->update_meta_data( 'custom_field_3', $value );
}
Код находится в файле function.php вашей активной дочерней темы (или активной темы). Оба способа работают.
@Mani Вы НЕ МОЖЕТЕ скопировать его прямо в functions.php. Этот код необходимо разместить в подключаемой функции или в шаблоне, так как вам нужно получить динамический идентификатор продукта $ или идентификатор заказа (или динамический объект продукта или заказа ... Если этот ответ отвечает на ваш вопрос, пожалуйста, не забудьте принять ответ, спасибо.
Большое спасибо LoicTheAztec. Можете ли вы дать мне полную функциональность для всех продуктов магазина woocommerce? Спасибо
@Mani Это зависит от того, где вы хотите их отображать и как ... Что такое meta_keys? где именно вы хотите отображать значения? в какой структуре html их нужно отображать?
@ LoicTheAztec Привет. Каждый заказ имеет мета-поле "delivery_time" ИЛИ "time-to_send". И всегда одно из них имеет ценность. Мне нужна настраиваемая функция, которая определяет, имеет ли поле «time_to_sent_» значение, скопируйте значение в поле «delivery_time» в настраиваемой мета-мете заказа для каждого заказа woocommerce.
большое спасибо LoicTheAztec. Просто скопирую второй код в functions.php или нужно изменить?