我正在使用 ACF 将条形码信息添加到 WooCommerce 产品页面。它必须与这里的条款一致:
必须遵循此处:https://support.convictional.com/woocommerce/adding-barcode-values-in-woo-commerce#adding_barcode_values_in_woo_commerce 按照他们要求的条件。
[{ "id": 1,
"key": "barcode",
"value": "12345678912"
},
{
"id": 2,
"key": "barcode_type",
"value": "upc"
}]
这里的专家可以告诉我如何以及在哪里设置吗?
我确实在 ACF 中使用
barcode
和 barcode_type
设置了测试区域,但在页面上显示不同。
ACF 不方便用于此目的,因为真正的元密钥永远不会像
"barcode"
或 "barcode_type"
那样,而是类似:"field_648f2aaff9f4b"
,如您在 这个线程 或 另一个线程… 中看到的那样
基于 在 WooCommerce 产品选项编辑页面中在 SKU 答案之前显示自定义字段,您可以在库存部分下的产品设置中轻松添加 2 个自定义字段。
这样,您将拥有可以通过 REST API 识别和使用的正确元密钥。
代码:
// Admin: Add custom fields to product inventory section
add_action('woocommerce_product_options_sku', 'add_product_barcode_fields' );
function add_product_barcode_fields(){
echo '<div class="class="barcode-options options_group">';
woocommerce_wp_select( array(
'id' => 'barcode_type',
'label' => __('Barcode type', 'woocommerce' ),
'options' => array(
'upc' => __('UPC'),
'gtin' => __('GTIN'),
'isbn' => __('ISBN'),
),
) );
woocommerce_wp_text_input( array(
'id' => 'barcode',
'label' => __('Barcode', 'woocommerce' ),
'placeholder' => __('Enter the barcode', 'woocommerce' ),
) );
echo '</div>';
}
// Admin: Save custom field values
add_action('woocommerce_admin_process_product_object', 'save_product_barcode_field_values', 10, 1 );
function save_product_barcode_field_values( $product ){
if( isset($_POST['barcode_type']) ) {
$product->update_meta_data( 'barcode_type', esc_attr($_POST['barcode_type']) );
}
if( isset($_POST['barcode']) ) {
$product->update_meta_data( 'barcode', sanitize_text_field($_POST['barcode']) );
}
}
代码位于子主题的functions.php 文件中(或插件中)。已测试并有效。