这种使用自定义字段更改 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