在WooCommerce的建议字段中放置每个产品的序列号
您认为我需要一个插件吗?
预先感谢
拉斐尔
答案 0 :(得分:0)
我的建议是使用ACF | Advanced Custom Fields,它是免费的,具有许多功能并不断更新,并且您也有很多有关该插件的文档。
您可以创建一个名为“条形码”的字段,并将其显示在每种产品上。 例如。如果您为字段条形码命名,那就叫它。
<?php echo get_field("barcode");?>
如果您不想更改模板文件,请使用以下命令:
add_action( 'woocommerce_after_shop_loop_item_title', 'custom_field_display_below_title', 2 );
function custom_field_display_below_title(){
global $product;
$custom_field = get_post_meta( $product->get_id(), '_barcode', true );
if( ! empty($custom_field) ){
echo '<p class="my-custom-field">'.$custom_field.'</p>';
}
}
当然,这是一个解决方案,如果您确实想创建一个自定义字段并对其进行处理。但是,您也可以创建一个名为“条形码”的新属性,然后输入值并将其放置在此处,它将显示在每个产品上,而无需编写代码或进行任何操作。
答案 1 :(得分:0)
无需插件,您可以将功能添加到子主题functions.php
// Serial Number Admin: Display custom Field
add_action( 'woocommerce_product_options_general_product_data', 'product_options_general_product_data_add_field' );
function product_options_general_product_data_add_field() {
global $post;
echo '<div class="options_group">';
woocommerce_wp_text_input( array(
'id' => '_serial_number',
'label' => __( 'Serial Number', 'woocommerce' ),
) );
echo '</div>';
}
// Serial Number Admin : Save custom Field
add_action( 'woocommerce_process_product_meta', 'product_options_general_product_data_save_field' );
function product_options_general_product_data_save_field( $post_id ){
if( isset( $_POST['_serial_number'] ) )
update_post_meta( $post_id, '_serial_number', esc_attr( $_POST['_serial_number'] ) );
}
// Order items: Save product "Serial Number" as hidden order item meta data
add_action('woocommerce_checkout_create_order_line_item', 'save_file_type_as_order_item_meta', 20, 4);
function save_file_type_as_order_item_meta($item, $cart_item_key, $values, $order) {
if ( $serial_number = $values['data']->get_meta('_serial_number') ) {
$item->update_meta_data( '_serial_number', $serial_number ); // Save as order item (visble on admin only)
}
}
这将在您的产品中添加一个文本字段,并将其另存为元
请根据您的需要调整代码