Начиная с Woocommerce 3, существует метод, унаследованный от WC_Data
Class, который является get_meta () и который должен использоваться на объекте экземпляра WC_Order
$order
.
Чаще всего пользовательские поля Order регистрируются в базе данных с мета-ключом , начинающимся с подчеркивания в таблице wp_postmeta
.
Поэтому я буду использовать: _billing_customfield1
и _billing_customfield2
Вот ваш повторный код:
<?php
if ( $order->get_formatted_billing_full_name() ) {
echo '<br/><b>'.__("Nombre", "woocommerce") . ': </b>' . esc_html( $order->get_formatted_billing_full_name() );
}
if ( $order->get_billing_phone() ) {
echo '<br/><b>'.__("Teléfono", "woocommerce") . ': </b>' . esc_html( $order->get_billing_phone() );
}
if ( $order->get_billing_company() ) {
echo '<br/><b>'.__("Nombre de la empresa", "woocommerce") . ': </b>' . esc_html( $order->get_billing_company() );
}
if ( $order->get_billing_address_1() ) {
echo '<br/><b>'.__("Dirección", "woocommerce") . ': </b>' . esc_html( $order->get_billing_address_1() );
}
if ( $order->get_billing_address_2() ) {
echo '<br/><b>'.__("Dirección 2", "woocommerce") . ': </b>' . esc_html( $order->get_billing_address_2() );
}
if ( $order->get_billing_city() ) {
echo '<br/><b>'.__("Ciudad", "woocommerce") . ': </b>' . esc_html( $order->get_billing_city() );
}
if ( $order->get_meta('_billing_customfield1') ) {
echo '<br/><b>'.__("Campo personalizado 1", "woocommerce") . ': </b>' . esc_html( $order->get_meta('_billing_customfield1') );
}
if ( $order->get_meta('_billing_customfield2') ) {
echo '<br/><b>'.__("Campo personalizado 2", "woocommerce") . ': </b>' . esc_html( $order->get_meta('_billing_customfield2') );
}
?>
Это должно работать, если слагами этих пользовательских полей являются _billing_customfield1
и _billing_customfield2
Вам необходимо проверить в своей базе данных под таблицей wp_postmeta
, что правильными meta_key
являются _billing_customfield1
и _billing_customfield2
…
Если нет, вы замените их правильными.
Вы также можете использовать функцию WordPress get_post_meta()
, для которой требуется идентификатор заказа, который вы можете использовать с $order->get_id()
как:
if ( get_post_meta( $order->get_id(), '_billing_customfield1', true ) ) {
echo '<br/><b>'.__("Campo personalizado 1", "woocommerce") . ': </b>' . esc_html( get_post_meta( $order->get_id(), '_billing_customfield1', true ) );
}
if ( get_post_meta( $order->get_id(), '_billing_customfield2', true ) ) {
echo '<br/><b>'.__("Campo personalizado 2", "woocommerce") . ': </b>' . esc_html( get_post_meta( $order->get_id(), '_billing_customfield2', true ) );
}