在WooCommerce存档页面中的产品标题下添加自定义字段值

问题描述 投票:4回答:2

在WooCommerce中,我想在我的产品显示中添加自定义文本,这些文本将从产品编辑页面的自定义字段中获取。

这就是它现在的样子:

您可以在下面看到带有标题的产品:

我想在每个产品下面添加一个用蓝色笔标记的文字:

我设法找到一些自定义的PHP代码,在产品的页面中添加自定义字段,如下所示:

.

这是我的代码:

    // Display Fields
add_action('woocommerce_product_options_general_product_data', 'woocommerce_product_custom_fields');

// Save Fields
add_action('woocommerce_process_product_meta', 'woocommerce_product_custom_fields_save');

function woocommerce_product_custom_fields()
{
    global $woocommerce, $post;
    echo '<div class="product_custom_field">';
    // Custom Product Text Field
    woocommerce_wp_text_input(
        array(
            'id' => '_custom_product_text_field',
            'placeholder' => 'Custom Product Text Field',
            'label' => __('Custom Product Text Field', 'woocommerce'),
            'desc_tip' => 'true'
        )
    );

}

function woocommerce_product_custom_fields_save($post_id)
{
    // Custom Product Text Field
    $woocommerce_custom_product_text_field = $_POST['_custom_product_text_field'];
    if (!empty($woocommerce_custom_product_text_field))
        update_post_meta($post_id, '_custom_product_text_field', esc_attr($woocommerce_custom_product_text_field));
}

但我不知道如何将自定义字段连接到产品的显示,因此自定义字段的文本将显示在产品标题下方。

如何在产品标题下方显示自定义字段

php wordpress woocommerce product custom-fields
2个回答
4
投票

更新:

试试这个自定义钩子函数,它会在产品标题下面显示自定义字段值:

add_action( 'woocommerce_after_shop_loop_item_title', 'custom_field_display_below_title', 2 );
function custom_field_display_below_title(){
    global $product;

    // Get the custom field value
    $custom_field = get_post_meta( $product->get_id(), '_custom_product_text_field', true );

    // Display
    if( ! empty($custom_field) ){
        echo '<p class="my-custom-field">'.$custom_field.'</p>';
    }
}

代码位于活动子主题(或活动主题)的function.php文件中。

它应该工作。


0
投票

对于任何试图实现此功能的人来说,函数woocommerce_product_custom_fields()中缺少结束div。添加回音'';在结束花括号之前,否则产品设置中的所有其他产品数据选项卡都将为空。

© www.soinside.com 2019 - 2024. All rights reserved.