我正在使用Woocommerce,並在管理面板中創建了一個選擇框。我通過一個平面文件填充選擇框中的信息。 一切工作正常(幾乎)。WooCommerce - 提交後檢索選擇框的正確數據值
我堅持的部分上後,我選擇「選擇」我要和保存我收到陣列$key
位置,而不是實際$value
。我很近,但我不能把它放在手指上。
更新:這裏是我的全碼:
function woo_add_custom_admin_product_tab() {
?>
<li class="custom_tab"><a href="#custom_tab_data"><?php _e('Additional Information', 'woocommerce'); ?></a></li>
<?php
}
add_action('woocommerce_product_write_panel_tabs', 'woo_add_custom_admin_product_tab');
function woo_add_custom_admin_fields() {
global $woocommerce, $post;
echo '<div id="custom_tab_data" class="panel woocommerce_options_panel">';
echo '<div class="options_group">';
// Select - Breed1
if (file_exists (plugin_dir_path(__FILE__) .'breed.txt')) {
$breedData = file_get_contents (plugin_dir_path(__FILE__) .'breed.txt');
$breedArray = explode ("\n", $breedData);
}
woocommerce_wp_select(array(
'id' => '_select_breed1',
'label' => __('Select Primary Breed', 'woocommerce'),
'desc_tip' => 'true',
'description' => __('Select the primary breed of the pet.', 'woocommerce'),
'options' => $breedArray
));
echo '</div>';
echo '</div>';
}
add_action('woocommerce_product_write_panels', 'woo_add_custom_admin_fields');
// Save Fields;
function woo_add_custom_general_fields_save($post_id){
// Text Field - Pet Name
$woocommerce_text_field = $_POST['_pet_name'];
if(!empty($woocommerce_text_field))
update_post_meta($post_id, '_pet_name', esc_attr($woocommerce_text_field));
// Select Field - Breed
$woocommerce_select = $_POST['_select_breed1'];
if(!empty($woocommerce_select))
update_post_meta($post_id, '_select_breed1', esc_attr($woocommerce_select));
}
add_action('woocommerce_process_product_meta', 'woo_add_custom_general_fields_save');
我breed.txt文件包含3條線(項目):
Please Select a breed...
Abyssinian
Affenpinscher
而產生的陣列看起來像這樣:
Array (
[0] => Please Select a breed...
[1] => Abyssinian
[2] => Affenpinscher
)
所以當我選擇"Affenpinscher"
例如,我得到價值"2"
而不是"Affenpinscher"
。
我做錯了什麼?我該如何解決這個問題?
感謝
您的數組與平面文件無關,請考慮重命名此問題。 – Devon