Включение SKU в электронные письма поставщиков WCMp - PullRequest
0 голосов
/ 10 октября 2018

Здравствуйте и спасибо заранее.Мой первый вопрос здесь, поэтому извиняюсь, если это не 100%.Также заранее прошу прощения за огромный вопрос - я хотел включить все, что я нашел и попробовал.

Я использую плагин WooCommerce Marketplace (WCMp) для управления поставщиками.

Когда клиент размещает заказ, WMCp отправляет электронное письмо о новом заказе поставщику продукта, а WooCommerce отправляет электронное письмо администратору сайта (мне).В существующем письме, которое я получаю, содержится SKU продукта, однако электронное письмо, которое получает поставщик, отсутствует.

Из того, что я вижу в шаблоне WooCommerce , SKUотображается через:

if ( $show_sku && $sku ) {
echo wp_kses_post( ' (#' . $sku . ')' );
}

, а $ sku определяется следующим образом:

foreach ( $items as $item_id => $item ) :
$product       = $item->get_product();
$sku           = '';
$purchase_note = '';
$image         = '';
if ( ! apply_filters( 'woocommerce_order_item_visible', true, $item ) ) {
    continue;
}
if ( is_object( $product ) ) {
    $sku           = $product->get_sku();
    $purchase_note = $product->get_purchase_note();
    $image         = $product->get_image( $image_size );
}

В шаблоне электронной почты WCMp New Order содержимое электронной почты вызывается черезфункция vendor_order_item_table, которая определена здесь .Ниже приведен код, который я пытался добавить (между строк 517 и 518):

foreach ( $items as $item_id => $item ) :
$product       = $item->get_product();
$sku           = '';
}
if ( is_object( $product ) ) {
    $sku           = $product->get_sku();
}
if ( $show_sku && $sku ) {
echo wp_kses_post( ' (#' . $sku . ')' );

Я знаю, что в конце мне не хватает фигурной скобки - если я добавлю это, я получуошибка HTTP 500.Я попытался закомментировать if ( $show_sku && $sku ) {, чтобы обойти условие отображения эха, но это также выдает ошибку HTTP 500.

Я попытался связаться с автором плагина и потратил большечем несколько дней, Гугл без особой удачи.

Опять же, спасибо за любую помощь.

Редактировать Я нашел приведенный ниже фрагмент из SellWithWP.com :

function sww_add_sku_to_wc_emails( $args ) {
$args['show_sku'] = true;
return $args;
}
add_filter( 'woocommerce_email_order_items_args', 'sww_add_sku_to_wc_emails' );

К сожалению, это только добавляет SKU к электронным письмам, генерируемым WooCommerce (т. Е. К электронному письму клиента), но не к электронному письму Vendor New Order.

1 Ответ

0 голосов
/ 25 октября 2018

Если кто-то ищет ответ на этот вопрос, вот как я его получил:

add_action('wcmp_after_vendor_order_item_table', 'add_sku_to_vendor_email', 10, 4);
function add_sku_to_vendor_email($item, $order, $vendor_id, $is_ship) {
        $product = wc_get_product( $item['product_id'] );
        $wcmp_product_sku = $product->get_sku();
        echo wp_kses_post( ' (#' . $wcmp_product_sku . ')' );
}

... добавлен в functions.php или в виде фрагмента.

Thisставит SKU ниже себестоимости в каждой строке - не совсем то, что я искал, но достаточно хорошо (учитывая, сколько времени я потратил на это).

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