这种使用自定义字段更改 WooCommerce 中的添加到购物车文本的方式好吗?
Is this way using a Custom Field to change Add To Card Text in WooCommerce good?
我希望能够为每个产品显示特定的“添加到卡片”文本(如果已设置)。
有一些插件,但它们 "just" 涵盖类别或产品类型的“添加到卡片文本”。这就是我使用自定义字段尝试这种方式的原因。
所以我直接在模板文件中写了这段代码。此代码有效,但在正确的位置是否安全?
// 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>
我会改用这个:
<?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
我希望能够为每个产品显示特定的“添加到卡片”文本(如果已设置)。
有一些插件,但它们 "just" 涵盖类别或产品类型的“添加到卡片文本”。这就是我使用自定义字段尝试这种方式的原因。
所以我直接在模板文件中写了这段代码。此代码有效,但在正确的位置是否安全?
// 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>
我会改用这个:
<?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