woocommerce: отфильтруйте название продукта и сохраните в метаданные - PullRequest
0 голосов
/ 16 февраля 2020

Я пытаюсь добавить текст к названию продукта woocommerce в метаданных заказа - если у продуктов есть указанный тег c. Я работаю с этим решением для фильтрации заголовка в корзине. и это как способ экономии. Вот что у меня так получается:

    add_filter( 'woocommerce_get_order_item_totals', 'add_udstilling_below_cart_item_name', 10, 3 );
function add_udstilling_below_cart_item_name( $total_rows, $order, $tax_display ) {;

    $new_total_rows = [];

    foreach($total_rows as $key => $total ){
        $new_total_rows[$key] = $total;


        }
    }

    return $new_total_rows;
}

Спасибо.

1 Ответ

0 голосов
/ 16 февраля 2020

Исходя из вашего предыдущего вопроса и этого нового вопроса, я предполагаю, что вы хотели бы, чтобы название продукта корректировалось "везде".

ВАЖНО !! Вы должны обязательно прочитать следующий пост, чтобы понять, что это общая настройка, так что вам больше не нужен код из предыдущего поста / вопроса

Изменение имен элементов корзины WooCommerce

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

  • Страница получения заказа (Спасибо),
  • уведомления по электронной почте
  • Мои учетные записи> Детали отдельного заказа
  • Страницы редактирования корзины и заказа и внутреннего заказа.

Теперь вам нужно изменить имена везде, кроме в архивах магазина и на страницах товара…

function add_udstilling_order_item_name( $cart ) {
    if ( is_admin() && ! defined( 'DOING_AJAX' ) )
        return;

    if ( did_action( 'woocommerce_before_calculate_totals' ) >= 2 )
        return;

    // Loop through cart items
    foreach ( $cart->get_cart() as $cart_item ) {

        // Get an instance of the WC_Product object
        $product = $cart_item['data'];

        // Get product id
        $product_id = $cart_item['product_id'];

        if( method_exists( $product, 'set_name' ) && has_term( 'udstillingsmodel', 'product_tag', $product_id ) ) {
            $product->set_name( $product->get_name() . '(test)' );
        }
    }
}
add_action( 'woocommerce_before_calculate_totals', 'add_udstilling_order_item_name', 10, 1 );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...