编程语言
首页 > 编程语言> > php – 在单个产品页面中显示SKU下的自定义字段值

php – 在单个产品页面中显示SKU下的自定义字段值

作者:互联网

我正在定制WooCommerce,我想在产品页面中添加和显示自定义文本(条件和品牌).

该头寸位于“库存”或“SKU”元下.我已设法创建并保存自定义字段,但如何将这些元值打印到产品页面.

请帮忙!

这是我在functions.php中的代码:

// Display Fields
add_action( 'woocommerce_product_options_general_product_data', 'woo_add_custom_general_fields' );
// Text Field
function woo_add_custom_general_fields() {
  global $woocommerce, $post;
  echo '<div class="options_group">';
  woocommerce_wp_text_input( 
    array( 

        'id'          => '_conditions', 
        'label'       => __( 'Conditions', 'woocommerce' ), 
        'placeholder' => 'i.e: brand-new; refurbished; defected...',
        'desc_tip'    => 'true',
        'description' => __( 'Enter the conditions of the products here.', 'woocommerce' ) 
    )
);
  echo '</div>';
  woocommerce_wp_text_input( 
    array( 

        'id'          => '_bands', 
        'label'       => __( 'Brands', 'woocommerce' ), 
        'placeholder' => 'i.e: Lacoste; Hugo Boss...etc',
        'desc_tip'    => 'true',
        'description' => __( 'Enter names of the Brands of the products if any.', 'woocommerce' ) 
    )
);
}
// Save Fields
add_action( 'woocommerce_process_product_meta', 'woo_add_custom_general_fields_save' );

谢谢

解决方法:

您的问题中提供的代码不完整,应该是这样的:

// Enabling and Displaying Fields in backend
add_action( 'woocommerce_product_options_general_product_data', 'woo_add_custom_general_fields' );
function woo_add_custom_general_fields() {
    global $woocommerce, $post;

    echo '<div class="options_group">';

    woocommerce_wp_text_input( array( // Text Field type
        'id'          => '_conditions', 
        'label'       => __( 'Conditions', 'woocommerce' ), 
        'placeholder' => 'i.e: brand-new; refurbished; defected...',
        'desc_tip'    => 'true',
        'description' => __( 'Enter the conditions of the products here.', 'woocommerce' ) 
    ) );

    woocommerce_wp_text_input( array( // Text Field type
        'id'          => '_brands', // ===> NOT '_bands'
        'label'       => __( 'Brands', 'woocommerce' ), 
        'placeholder' => 'i.e: Lacoste; Hugo Boss...etc',
        'desc_tip'    => 'true',
        'description' => __( 'Enter names of the Brands of the products if any.', 'woocommerce' ) 
    ));

    echo '</div>'; // Closing </div> tag HERE
}

// Save Fields values to database when submitted (Backend)
add_action( 'woocommerce_process_product_meta', 'woo_save_custom_general_fields' );
function woo_save_custom_general_fields( $post_id ){

    // Saving "Conditions" field key/value
    $conditions_field = $_POST['_conditions'];
    if( !empty( $conditions_field ) )
        update_post_meta( $post_id, '_conditions', esc_attr( $conditions_field ) );

    // Saving "Brands" field key/value
    $brands_field = $_POST['_brands'];
    if( !empty( $brands_field ) )
        update_post_meta( $post_id, '_brands', esc_attr( $brands_field ) );
}

现在,要在产品页面中显示此元数据值,您将在钩子函数中使用get_post_meta()函数.在下面,您将看到woocommerce_single_product_summary钩子中的所有钩子模板及其优先级(显示顺序):

/**
     * woocommerce_single_product_summary hook
     *
     * @hooked woocommerce_template_single_title - 5
     * @hooked woocommerce_template_single_price - 10
     * @hooked woocommerce_template_single_excerpt - 20
     * @hooked woocommerce_template_single_add_to_cart - 30
     * @hooked woocommerce_template_single_meta - 40
     * @hooked woocommerce_template_single_sharing - 50
 */

woocommerce_template_single_meta显示“库存”或“SKU”数据,优先级为40.现在您需要在之后显示您的海关字段值.然后,您可以为此选择45的优先级.

Here is the code that is going to output your custom fields values in product pages under “SKU”:

add_action('woocommerce_single_product_summary', 'woo_display_custom_general_fields_values', 45);
function woo_display_custom_general_fields_values() {
    global $product;

    echo '<p class="custom-conditions">Conditions: ' . get_post_meta( $product->id, '_conditions', true ) . '</p>';
    echo '<p class="custom-brands">Brands: ' . get_post_meta( $product->id, '_brands', true ) . '</p>';
}

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

此代码经过测试和运行.

标签:custom-fields,php,wordpress,woocommerce,product
来源: https://codeday.me/bug/20190828/1754557.html