Хорошо ли использовать настраиваемое поле для изменения текста на карточке в WooCommerce?

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

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

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

// 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>

0

Решение

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

<?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

1

Другие решения

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

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

По вопросам рекламы [email protected]