Je suis nouveau dans le développement wordpress. Je souhaite ajouter des paramètres à une page de produit dans un nouvel onglet.
Comment ajouter des paramètres
code que j'ai essayé d'ajouter 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' )
)
);
}
J'ai travaillé sur votre problème et trouvé une solution après un peu de Google.
Remarque : Ajoutez le code mentionné ci-dessous au functions.php
du thème ou à un fichier de plug-in.
Code:
Cette fonction de filtre ajoutera un onglet personnalisé à la Products Data
metabox
<?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;
}
Cette action ajoutera des champs personnalisés aux onglets personnalisés ajoutés sous 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
}
?>
Enregistrer les données de champs personnalisés de l’onglet produits:
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 );
}
J'espère que cela t'aides!