• Никакой политики на форуме. Иначе - бан!
  • Вопрос без рабочей ссылки на проблему считается риторическим. Без ссылки и скриншота - провокацией!
  • Темы озаглавленные с маленькой буквы или капсом удаляются без предупреждения!

Как изменить имя создаваемое в заказах

Nekitok

Новичок
Приветствую.
Есть ли возможность изменить имя заказа, которое отображается в админке. Изначально пишет "#номер-заказа имя фамилия", как сделать чтобы было "#номер-заказа имя телефон".
Желательно хуком, или через файлы, но не плагином.
Спасибо!
 

Nekitok

Новичок
Вопрос решён, в class-wc-admin-list-table-orders.php в строчке
protected function render_order_number_column()
редактируем что хотим чтобы писалось.
Только помогите в создании хука пожалуйста
 
Последнее редактирование:

ut4utc

Новичок
Насчет хука который в нужное место поставит телефон я не знаю, но вот рабочее решение, правда я не заморачивался с переносом этого всего в функции child-темы и тд...
файл wp-content\plugins\woocommerce\includes\admin\class-wc-admin-profile.php найдите строку 198 и 199 между смените этот код

PHP:
            echo '<a href="#" class="order-preview" data-order-id="' . absint( $this->object->get_id() ) . '" title="' . esc_attr( __( 'Preview', 'woocommerce' ) ) . '">' . esc_html( __( 'Preview', 'woocommerce' ) ) . '</a>';
            echo '<a href="' . esc_url( admin_url( 'post.php?post=' . absint( $this->object->get_id() ) ) . '&action=edit' ) . '" class="order-view"><strong>#' . esc_attr( $this->object->get_order_number() ) . ' ' . esc_html( $buyer ) . '</strong></a>';

на вот этот:

PHP:
            echo '<a href="#" class="order-preview" data-order-id="' . absint( $this->object->get_id() ) . '" title="' . esc_attr( __( 'Preview', 'woocommerce' ) ) . '">' . esc_html( __( 'Preview', 'woocommerce' ) ) . '</a>';
            $phone = get_user_meta( $this->object->get_customer_id(), 'billing_phone', true );
            echo '<a href="' . esc_url( admin_url( 'post.php?post=' . absint( $this->object->get_id() ) ) . '&action=edit' ) . '" class="order-view"><strong>#' . esc_attr( $this->object->get_order_number() ) . ' ' . esc_html( $phone ) . '</strong></a>';

И вы получите заказ по типу #434234 +380952342342
Если хотите оставить фио - тогда просто добавьте .esc_html( $buyer ). перед телефоном . esc_html( $phone ) . и настанет счастье). Код проверил - работает.
 

Nekitok

Новичок
Насчет хука который в нужное место поставит телефон я не знаю, но вот рабочее решение, правда я не заморачивался с переносом этого всего в функции child-темы и тд...
файл wp-content\plugins\woocommerce\includes\admin\class-wc-admin-profile.php найдите строку 198 и 199 между смените этот код

PHP:
            echo '<a href="#" class="order-preview" data-order-id="' . absint( $this->object->get_id() ) . '" title="' . esc_attr( __( 'Preview', 'woocommerce' ) ) . '">' . esc_html( __( 'Preview', 'woocommerce' ) ) . '</a>';
            echo '<a href="' . esc_url( admin_url( 'post.php?post=' . absint( $this->object->get_id() ) ) . '&action=edit' ) . '" class="order-view"><strong>#' . esc_attr( $this->object->get_order_number() ) . ' ' . esc_html( $buyer ) . '</strong></a>';

на вот этот:

PHP:
            echo '<a href="#" class="order-preview" data-order-id="' . absint( $this->object->get_id() ) . '" title="' . esc_attr( __( 'Preview', 'woocommerce' ) ) . '">' . esc_html( __( 'Preview', 'woocommerce' ) ) . '</a>';
            $phone = get_user_meta( $this->object->get_customer_id(), 'billing_phone', true );
            echo '<a href="' . esc_url( admin_url( 'post.php?post=' . absint( $this->object->get_id() ) ) . '&action=edit' ) . '" class="order-view"><strong>#' . esc_attr( $this->object->get_order_number() ) . ' ' . esc_html( $phone ) . '</strong></a>';

И вы получите заказ по типу #434234 +380952342342
Если хотите оставить фио - тогда просто добавьте .esc_html( $buyer ). перед телефоном . esc_html( $phone ) . и настанет счастье). Код проверил - работает.
Спасибо за инструкцию, в принципе я это и так сделал. Просто, если выйдет обновление, снова переделывать)
 

Nekitok

Новичок
add_filter( 'woocommerce_admin_order_buyer_name', 'filter_buyer_name', 10, 2 );
function filter_buyer_name( $buyer, $order ){
$buyer = trim( sprintf( _x( '%1$s %2$s', 'full name', 'woocommerce' ), $order->get_billing_first_name(), $order->get_billing_phone() ) );
return $buyer;
}
Собрал хук, кому надо пользуйтесь
 
Сверху Снизу