Хорошо ли использовать настраиваемое поле для изменения текста в карточке в WooCommerce? - PullRequest
0 голосов
/ 13 февраля 2019

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

Есть несколько плагинов, но они «просто» охватывают текст «Добавить к карточке» для категорий илитипы продуктов.Вот почему я попробовал этот способ, используя пользовательское поле.

Поэтому я написал этот код прямо в файле шаблона.Этот код работает, но это хорошо, безопасно, в нужном месте?

// file: /woocommerce-templates/single-product/add-to-cart/simple.php
<button "..." >
    <?php
        $text = get_post_meta($product->get_id(), 'add_to_cart_text', true);
    if ($text) {
        echo esc_html($text);
    } else {
        echo esc_html($product->single_add_to_cart_text()); // this line is default
    }
    ?>
</button>

Ответы [ 2 ]

0 голосов
/ 13 февраля 2019

простой фрагмент может помочь вам

add_filter( 'add_to_cart_text', 'woo_custom_single_add_to_cart_text' );                // < 2.1
add_filter( 'woocommerce_product_single_add_to_cart_text', 'woo_custom_single_add_to_cart_text' );  // 2.1 +

function woo_custom_single_add_to_cart_text() {

    return __( 'Buy', 'woocommerce' );


}

add_filter('woocommerce_product_add_to_cart_text', 'wh_archive_custom_cart_button_text');   // 2.1 +

function wh_archive_custom_cart_button_text()
{
    return __('Buy', 'woocommerce');

}
0 голосов
/ 13 февраля 2019

Я бы использовал это вместо:

<?php
add_filter( 'woocommerce_product_add_to_cart_text', 'custom_add_to_cart_button_text', 20, 2 );
function custom_add_to_cart_button_text( $button_text, $product ) {
    $custom_button_text = get_post_meta( $product->get_id(), 'add_to_cart_text', true );

    // If there is custom text set for this product, then display it instead of the default text.
    if ( ! empty( $custom_button_text ) ) {
        $button_text = __( $custom_button_text, 'text-domain' );
    }

    return $button_text;
}

Вставьте его в ваши functions.php

...