當 WordPress 一般文章 post 或頁面 page 的後台輸入不能滿足及方便日後更新,或令客戶難於管理。自定欄目 custom field 就是其中之一的理想工具,特別是自定主題 theme 的設計版面 template。
要加入自定欄目 custom field 正常情況可使用本身 WordPress custom field 功能,或透過插件 plug-in。根據經驗比例喜歡使用 Advanced Custom Fileds (ACF) 。但有時也可自行制定,如今次例子想在 woocommerce 產品的多選項目 variation 下加入。
修改 theme 內的 function.php
// Add a custom field to variation settings
function hrx_variation_settings_fields( $loop, $variation_data, $variation ) {
// Text Field
woocommerce_wp_text_input(
array(
'id' => 'custom_field',
'label' => __( 'Barcode field', 'texdomain' ),
'placeholder' => '',
'desc_tip' => 'true',
'description' => __( 'design custom field', 'texdomain' ),
'value' => get_post_meta( $variation->ID, 'custom_field', true )
)
);
}
add_action( 'woocommerce_product_after_variable_attributes', 'hrx_variation_settings_fields', 10, 3 );
/**
* Save new fields for variations
*
*/
function hrx_save_variation_settings_fields( $post_id ) {
// Text Field
$isbn_value = $_POST['custom_field'];
if( ! empty( $isbn_value ) ) {
update_post_meta( $post_id, 'custom_field', esc_attr( $isbn_value ) );
}
}
add_action( 'woocommerce_save_product_variation', 'hrx_save_variation_settings_fields', 10, 2 );