私はワードプレスの開発が初めてです。新しいタブで商品ページに設定を追加したいです。
設定を追加する方法
tabを追加しようとしたコード
//add product tab link in admin
add_action( 'woocommerce_product_write_panel_tabs', array($this,'woocommerce_product_write_panel_tabs' ));
//add product tab content in admin
add_action('woocommerce_product_write_panels', array($this,'woocommerce_product_write_panels'));
/**
* woocommerce_product_write_panel_tabs
* Used to add a product custom tab to product edit screen
* @return void
*/
function woocommerce_product_write_panel_tabs(){
?>
<li class="custom_tab">
<a href="#custom_tab_data_ctabs">
<?php _e('Customstock Tabs', 'GWP'); ?>
</a>
</li>
<?php
}
/**
* woocommerce_product_write_panels
* Used to display a product custom tab content (fields) to product edit screen
* @return void
*/
function woocommerce_product_write_panels() {
global $post,$woocommerce;
$fields = array(
array(
'key' => 'custom_tabs_ids',
'label' => __( 'Select Custom Tabs', 'GWP' ),
'desc' => __( 'Start typing the Custom Tab name, Used for including custom tabs.', 'GWP' )
),
array(
'key' => 'exclude_custom_tabs_ids',
'label' => __( 'Select Global Tabs to exclude', 'GWP' ),
'desc' => __( 'Start typing the Custom Tab name. used for excluding global tabs.', 'GWP' )
),
array(
'key' => 'id',
'label' => __( 'Select Global Tabs to eclude', 'GWP' ),
'desc' => __( 'Start typing the Custom Tab name. used for excluding global tabs.', 'GWP' )
)
);
}
私はあなたの問題に取り組み、いくつかのGoogleの後に解決策を見つけました。
注 :テーマのfunctions.php
または任意のプラグインのファイルに下記のコードを追加してください。
コード:
このフィルタ関数はProducts Data
メタボックスにカスタムタブを追加します
<?php
add_filter( 'woocommerce_product_data_tabs', 'add_my_custom_product_data_tab' , 99 , 1 );
function add_my_custom_product_data_tab( $product_data_tabs ) {
$product_data_tabs['my-custom-tab'] = array(
'label' => __( 'My Custom Tab', 'my_text_domain' ),
'target' => 'my_custom_product_data',
);
return $product_data_tabs;
}
このアクションはProducts Data
metaboxの下に追加されたカスタムタブにカスタムフィールドを追加します
add_action( 'woocommerce_product_data_panels', 'add_my_custom_product_data_fields' );
function add_my_custom_product_data_fields() {
global $woocommerce, $post;
?>
<!-- id below must match target registered in above add_my_custom_product_data_tab function -->
<div id="my_custom_product_data" class="panel woocommerce_options_panel">
<?php
woocommerce_wp_checkbox( array(
'id' => '_my_custom_field',
'wrapper_class' => 'show_if_simple',
'label' => __( 'My Custom Field Label', 'my_text_domain' ),
'description' => __( 'My Custom Field Description', 'my_text_domain' ),
'default' => '0',
'desc_tip' => false,
) );
?>
</div>
<?php
}
?>
[商品]タブのカスタムフィールドデータを保存します。
add_action( 'woocommerce_process_product_meta', 'woocommerce_process_product_meta_fields_save' );
function woocommerce_process_product_meta_fields_save( $post_id ){
// This is the case to save custom field data of checkbox. You have to do it as per your custom fields
$woo_checkbox = isset( $_POST['_my_custom_field'] ) ? 'yes' : 'no';
update_post_meta( $post_id, '_my_custom_field', $woo_checkbox );
}
お役に立てれば!