На моем веб-сайте 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 );
Но он удаляет штрих-коды из всех уведомлений по электронной почте.
Как я могу удалить эти штрих-коды из уведомлений по электронной почте и показывать их только при заполненных уведомлениях по электронной почте?
Спасибо
Поворот, чтобы заставить его работать только для уведомлений по электронной почте о состоянии завершенного заказа, состоит в том, чтобы добавить только это небольшое условие в оператор 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
объект. Единственное, что вам придется добавлять этот код снова каждый раз, когда вы будете обновлять этот плагин.
Поскольку это не проверено, я не уверен, что это будет работать. Пожалуйста, дайте мне обратную связь
Других решений пока нет …