Изменение страницы заказа администратора WooCommerce Ярлык скидок

В недавнем обновлении WooCommerce слово «Скидки» было заменено на «Купоны». Это в общей таблице заказов. См. Этот снимок экрана для> ясности https://prnt.sc/sq6xfh

Я хотел бы снова изменить это значение на «Скидки», где это возможно, поскольку на самом деле нет смысла говорить «Купоны», когда вы действительно применили скидку. В идеале было бы неплохо отображать строки «Скидки» и «Купоны», если это необходимо, поскольку иногда вы можете применить купон И скидку.

На данный момент я пытаюсь изменить метку Скидки, как указано выше на снимке экрана.

Я нашел код в основных файлах плагинов и знаю, что не могу его изменить, это код:

    </tr>
    <?php if ( 0 < $order->get_total_discount() ) : ?>
        <tr>
            <td class="label"><?php esc_html_e( 'Coupon(s):', 'woocommerce' ); ?></td>
            <td width="1%"></td>
            <td class="total">-
                <?php echo wc_price( $order->get_total_discount(), array( 'currency' => $order->get_currency() ) ); // WPCS: XSS ok. ?>
            </td>
        </tr>
    <?php endif; ?>

Я не уверен, как изменить купоны на скидки в приведенном выше коде через мой functions.php.

Любая помощь приветствуется. Ура, Ник


person Nik    schedule 02.06.2020    source источник
comment
Попробуйте следующее: stackoverflow .com / questions / 52155637 / do_action('woocommerce_cart_totals_coupon_label', 'your_function')   -  person Fresz    schedule 02.06.2020


Ответы (1)


Вы можете использовать хук WordPress gettext следующим образом:

add_filter('gettext', 'custom_strings_translation', 20, 3);
function custom_strings_translation( $translated_text, $text, $domain ) {
global $pagenow, $typenow;

    // Settings
    $current_text = "Coupon(s):";
    $new_text     = "Discount(s):";

    // Targeting admin single order pages
    if( is_admin() && in_array($pagenow, ['post.php', 'post-new.php']) && 'shop_order' === $typenow && $current_text === $text ){
        $translated_text =  __( $new_text, $domain );
    }
    return $translated_text;
}

Код находится в файле functions.php активной дочерней темы (или активной темы). Проверено и работает.

Связанные ответы:

person LoicTheAztec    schedule 02.06.2020