将自定义字段添加到产品设置运输选项卡并在 WooCommerce 中的附加信息选项卡上显示值

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

我正在尝试向 WooCommerce 产品添加“每个包裹的数量”字段,并且我需要在产品后端的“运输”选项卡中添加此字段。然后我需要在“附加信息”选项卡的包装尺寸下显示此数字。

我可以在“附加信息”选项卡中添加一行,但我不知道如何输入该值并使其显示该值。

目前我正在使用以下内容,有人可以帮助我吗?

add_filter( 'woocommerce_display_product_attributes', 'custom_product_additional_information', 10, 2 );
function custom_product_additional_information( $product_attributes, $product ) {
    $product_attributes[ 'attribute_' . 'custom-one' ] = array(
        'label' => __('Quantity per Package'),
        'value' => __('Value 1'),
    );
    return $product_attributes;
}
php wordpress woocommerce product
2个回答
3
投票

代码包含:

  • 将自定义字段添加到产品运输选项卡
  • 保存自定义字段
  • 如果不为空,则在附加信息选项卡上显示值
  • 通过代码中添加的注释标签进行解释
// Add custom field to product shipping tab
function action_woocommerce_product_options_shipping(){ 
    $args = array(
        'label' => __( 'My label', 'woocommerce' ),
        'placeholder' => __( 'My placeholder', 'woocommerce' ),
        'id' => '_quantity_per_package',
        'desc_tip' => true,
        'description' => __( 'My description', 'woocommerce' ),
    );
    woocommerce_wp_text_input( $args );
}
add_action( 'woocommerce_product_options_shipping', 'action_woocommerce_product_options_shipping', 10, 0 );

// Save
function action_woocommerce_admin_process_product_object( $product ) {
    // Isset
    if( isset($_POST['_quantity_per_package']) ) {
        $product->update_meta_data( '_quantity_per_package', sanitize_text_field( $_POST['_quantity_per_package'] ) );
    }
}
add_action( 'woocommerce_admin_process_product_object', 'action_woocommerce_admin_process_product_object', 10, 1 );

// Display value on additional Informations tab if NOT empty
function filter_woocommerce_display_product_attributes( $product_attributes, $product ) {
    // Get meta
    $quantity_per_package = $product->get_meta( '_quantity_per_package' );
    
    // NOT empty
    if ( ! empty ( $quantity_per_package ) ) {
        $product_attributes[ 'quantity_per_package' ] = array(
            'label' => __('Quantity per Package', 'woocommerce '),
            'value' => $quantity_per_package,
        );
    }
    
    return $product_attributes;
}
add_filter( 'woocommerce_display_product_attributes', 'filter_woocommerce_display_product_attributes', 10, 2 );

0
投票

我是初学者,我也有同样的问题。 您在哪里插入此代码?在哪个文件中?

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