Saya cuba menambah tab tetapan tersuai pada skrin tetapan WooCommerce. Pada asasnya saya ingin mencapai fungsi yang serupa dengan tab Tetapan Produk melalui subseksyen/subtab:
Saya tidak menemui sebarang dokumentasi yang baik tentang cara melakukan ini, tetapi saya telah dapat menambah tab tersuai menggunakan coretan berikut:
class WC_Settings_Tab_Demo { public static function init() { add_filter( 'woocommerce_settings_tabs_array', __CLASS__ . '::add_settings_tab', 50 ); } public static function add_settings_tab( $settings_tabs ) { $settings_tabs['test'] = __( 'Settings Demo Tab', 'woocommerce-settings-tab-demo' ); return $settings_tabs; } } WC_Settings_Tab_Demo::init();
Berdasarkan perkara yang saya gali daripada pelbagai utas/tutorial, saya telah cuba menambah bahagian/subtab pada tab tetapan baharu seperti ini:
// creating a new sub tab in API settings add_filter( 'woocommerce_get_sections_test','add_subtab' ); function add_subtab( $sections ) { $sections['custom_settings'] = __( 'Custom Settings', 'woocommerce-custom-settings-tab' ); $sections['more_settings'] = __( 'More Settings', 'woocommerce-custom-settings-tab' ); return $sections; } // adding settings (HTML Form) add_filter( 'woocommerce_get_settings_test', 'add_subtab_settings', 10, 2 ); function add_subtab_settings( $settings, $current_section ) { // $current_section = (isset($_GET['section']) && !empty($_GET['section']))? $_GET['section']:''; if ( $current_section == 'custom_settings' ) { $custom_settings = array(); $custom_settings[] = array( 'name' => __( 'Custom Settings', 'text-domain' ), 'type' => 'title', 'desc' => __( 'The following options are used to ...', 'text-domain' ), 'id' => 'custom_settings' ); $custom_settings[] = array( 'name' => __( 'Field 1', 'text-domain' ), 'id' => 'field_one', 'type' => 'text', 'default' => get_option('field_one'), ); $custom_settings[] = array( 'type' => 'sectionend', 'id' => 'test-options' ); return $custom_settings; } else { // If not, return the standard settings return $settings; } }
Saya telah dapat menambahkan subseksyen baharu pada tab Produk menggunakan kod yang serupa dengan di atas, tetapi ia tidak berfungsi dengan tab tersuai baharu saya. Di mana salah saya?
1) Untuk menambah tab tetapan dengan bahagian anda boleh menggunakan
woocommerce_settings_tabs_array
cangkuk penapis:2) Untuk menambah bahagian baharu pada halaman yang anda boleh gunakan
woocommerce_sections_{$current_tab}
复合挂钩,其中{$current_tab}
Perlu diganti dengan set slug kunci dalam fungsi pertama:'; $array_keys = array_keys( $sections ); foreach ( $sections as $id => $label ) { echo '-
' . $label . ' ' . ( end( $array_keys ) == $id ? '' : '|' ) . '
';
}
echo '
'; } add_action( 'woocommerce_sections_my-custom-tab', 'action_woocommerce_sections_my_custom_tab', 10 );
3)Untuk menambah tetapan serta memproses/menyimpan kami akan menggunakan fungsi tersuai dan kemudian memanggil fungsi itu:
3.1) Tambah tetapan melalui
woocommerce_settings_{$current_tab}
cangkuk kompaun:3.2) Kendalikan/simpan tetapan melalui
woocommerce_settings_save_{$current_tab}
cangkuk kompaun:Hasil:
Berdasarkan: