Скопировать пользовательское поле мета-записи в другое настраиваемое поле - PullRequest
0 голосов
/ 05 сентября 2018

Как я могу скопировать значение из мета поста в другую поданную мету в одном посте? Например:

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) meta.

1 Ответ

0 голосов
/ 05 сентября 2018

Вы можете сделать это двумя способами:

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 вашей активной дочерней темы (или активной темы). Оба способа работают.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...