Отображение штрих-кодов ТОЛЬКО по электронной почте для уведомления о статусе заказа

На моем веб-сайте WooCommerce я использую Woocommerce Заказать штрих-коды для отображения штрих-кодов заказа на уведомления по электронной почте.
Я хотел бы скрыть или удалить этот штрих-код и отобразить его ТОЛЬКО на завершено уведомления о статусе заказа по электронной почте.

Я пытался редактировать файл плагина (я знаю, что это не рекомендуется). Я удалил это (строки 128 — 129) в class-woocommerce-order-barcodes.php файл плагина:

// Add barcode to order complete email
add_action( 'woocommerce_email_after_order_table', array( $this, 'get_email_barcode' ), 1, 1 );

Но он удаляет штрих-коды из всех уведомлений по электронной почте.

Как я могу удалить эти штрих-коды из уведомлений по электронной почте и показывать их только при заполненных уведомлениях по электронной почте?

Спасибо

4

Решение

Поворот, чтобы заставить его работать только для уведомлений по электронной почте о состоянии завершенного заказа, состоит в том, чтобы добавить только это небольшое условие в оператор IF:

$order->has_status( 'completed' )

Таким образом, вы можете попробовать это так сначала:

if (!$this->has_status( 'completed' ) ){
add_action( 'woocommerce_email_after_order_table', array( $this, 'get_email_barcode' ), 1, 1 );
}

Но так как я не уверен, что получу туда объект $ order ($ this), я посмотрел дальше в коде этого плагина.

В линия 358 у вас есть код ниже, где я должен добавить условие.

/**
* Get barcode for display in an email
* @access  public
* @since   1.0.0
* @param   object $order Order object
* @return  void
*/
public function get_email_barcode ( $order ) {

if( ! $order ) return;

// HERE is my condition  <====  <====  <====  <====  <====  <====  <====
if (!$order->has_status( 'completed' ) ) return;

// Generate correctly formatted HTML for email
ob_start(); ?>

// … / …
// code of the function continues …

Здесь я почти уверен, что это сработает, поскольку я уже $order объект. Единственное, что вам придется добавлять этот код снова каждый раз, когда вы будете обновлять этот плагин.

Поскольку это не проверено, я не уверен, что это будет работать. Пожалуйста, дайте мне обратную связь

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]