web-dev-qa-db-fra.com

Comment ajouter un onglet visible uniquement dans le côté administrateur du produit dans woocommerce?

 enter image description here 

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' )
        )
    );

}

3
Dipika

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!

5
Mehul Gohil