如何在sprintf中添加wooccommerce自定义字段短代码


How do I add woocommerce custom field shortcode in sprintf?

我想在购物车产品名称中添加自定义字段快捷代码。现在,我不知道如何显示自定义字段值,因为代码在sprintf中。

我在wooccommerce产品中创建了一个自定义字段。海关领域被称为颜色。我希望购物车产品名称打印出自定义字段值。

自定义字段短代码

   <?php echo get_post_meta( get_the_ID(), 'color', true ); ?>

购物车产品名称

                        <?php
                            if ( ! $_product->is_visible() ) {
                                echo apply_filters( 'woocommerce_cart_item_name', $_product->get_title(), $cart_item, $cart_item_key ) . '&nbsp;';
                            } else {
                                echo apply_filters( 'woocommerce_cart_item_name', sprintf( '<a class="items-info" href="%s">%s </a>', esc_url( $_product->get_permalink( $cart_item ) ), $_product->get_title() ), $cart_item, $cart_item_key );
                            }
                        ?>

例如,

我的产品名称是"纽约T恤",我的自定义字段颜色值是"白色"我希望它在我的wooccommerce购物车产品名称中显示为"纽约tee-white"。此外,我想在产品名称和自定义字段值之前添加一个短划线。李"纽约T恤-白色"有人能帮我吗?非常感谢。

您可以在woocommerce_cart_item_name上添加过滤器来修改标题

function my_custom_cart_product_name_filter( $title, $item ) {
    $color = get_post_meta( $item['product_id'], 'color', true ); 
    return $color ? $title . sprintf(" Color - %s", $color) : $title;
}
add_filter( 'woocommerce_cart_item_name', 'my_custom_cart_product_name_filter', 10, 3 );