在前端 woocommerce 产品页面上显示自定义字段标签

Display custom field label on front end woocommerce product page

我需要一些帮助。这是一个两部分的问题。

1.) 如何在网站前端显示自定义字段的标签?

这是我放在 /wp-content/themes/shopifiq/woocommerce/single-product/tabs/description.php 中的代码(不确定如何让它显示在选项卡中)

<?php
    // Display custom field value
    echo get_post_meta( get_the_ID(), '_text_field', true );
    echo get_post_meta( get_the_ID(), '_number_field', true );
    echo get_post_meta( get_the_ID(), '_textarea', true );
?>

2.) 在我得到要显示的标签后,有没有一种方法可以将这些格式化为不成为杂乱无章的字符串?在php元素中加一个class可以吗?我该怎么做,就像这样? (添加了 *)

      // Text Field
    woocommerce_wp_text_input( 
        array( 
            'id'          => '_text_field', 
            ***'class'       => 'left',***
            'label'       => __( 'Manufacturer', 'woocommerce' ), 
            'placeholder' => 'Example: Herman Miller',
            'desc_tip'    => 'true',
            'description' => __( 'Enter the manufacturer name here. Examples: Kimball, Allsteel, Herman Miller, etc.', 'woocommerce' ) 
        )
    );

编辑 4/13

您好,我想出了如何输出表单标签的方法,但我认为这不是最佳解决方案。它虽然有效。但我仍然需要知道如何添加 classes 以便我可以格式化。我想在左栏中添加一些信息,在右栏中添加一些信息。谢谢!

<?php
// Display custom field value 
    echo '<strong>Manufacturer: </strong>';
    echo get_post_meta( get_the_ID(), '_text_field_1', true );
    echo '<br>';
    echo '<strong>Brand: </strong>';
    echo get_post_meta( get_the_ID(), '_text_field', true );
    echo '<br>';
    echo '<strong>Retail Price: </strong>';
    echo get_post_meta( get_the_ID(), '_number_field_1', true );
    echo '<br>';
    echo '<strong>Arnolds Price: </strong>';
    echo get_post_meta( get_the_ID(), '_number_field', true );

    echo '<strong>Features: </strong>';
    echo get_post_meta( get_the_ID(), '_textarea_1', true );
    echo '<br>';
    echo '<strong>Additional Information: </strong>';
    echo get_post_meta( get_the_ID(), '_textarea', true );
?>

我想出了如何添加 class 以便它们按列输出。以防万一有人想知道。我仍然愿意就如何更好地做到这一点提出意见,但现在这是可行的。

<?php
// Display custom field value 
echo '<div class="left">' . '<strong>Manufacturer: </strong>' . get_post_meta( get_the_ID(), '_text_field_1', true ) . '<br>' .
'<strong>Brand: </strong>' . get_post_meta( get_the_ID(), '_text_field', true ) . '<br>' .
'<strong>Retail Price: </strong>' . get_post_meta( get_the_ID(), '_number_field_1', true ) . '<br>' .
'<strong>Arnolds Price: </strong>' . get_post_meta( get_the_ID(), '_number_field', true ) . '</div>';

echo '<div class="right">' . '<strong>Features: </strong>' . get_post_meta( get_the_ID(), '_textarea_1', true ) . '<br>' . 
'<strong>Additional Information: </strong>' . get_post_meta( get_the_ID(), '_textarea', true ) . '</div>';
?>

我使用此代码(post 只是单元格内容):

    <td><p class="css-class"><?php $field_name = "field_55e4335cfbc8c";
$field = get_field_object($field_name);
echo $field['label'] . $field['value'];?></p></td>

它基于 this 插件,仍在尝试弄清楚如何在用户未完成字段的情况下不显示任何内容。

希望对您有所帮助!