WordPress: Enregistré l'information des customs fields d'une meta box

1 message   •   Page 1 sur 1
Petit nouveau ! | 7 Messages

27 juil. 2017, 18:15

Bonjour la Communauté!

Je viens vers vous car je me casse la tête à enregistrer des informations depuis le panneau d'administration. Pour être plus claire:

J'ai créer un plugin avec le code suivant:

Code : Tout sélectionner

<?php /* Plugin Name: Billetterie Description: Gestionnaire de la billeterie Version: 1.0 Author: Author URI: */ $post_name = 'billetterie'; /* ADD STYLE */ function admin_style() { global $post_name; wp_enqueue_style('admin-styles', get_bloginfo('url').'/wp-content/plugins/' . $post_name . '/assets/css/style.css'); } add_action('admin_enqueue_scripts', 'admin_style'); function cptui_register_my_cpts() { // Post Type: billetterie global $post_name; $labels = array( "name" => __( 'Billetterie', 'amg' ), "singular_name" => __( 'Billetterie', 'amg' ), ); $args = array( "label" => __( 'Billetterie', 'amg' ), "labels" => $labels, "description" => "", "public" => true, "publicly_queryable" => true, "show_ui" => true, "show_in_rest" => false, "rest_base" => "", "has_archive" => true, "show_in_menu" => true, "exclude_from_search" => false, "capability_type" => "post", "map_meta_cap" => true, "hierarchical" => true, "rewrite" => array( "slug" => $post_name, "with_front" => true ), "query_var" => true, "supports" => array( "title", "thumbnail" ), // "taxonomies" => array( "category" ), ); register_post_type( $post_name, $args ); } add_action( 'init', 'cptui_register_my_cpts' ); // informations add_action( 'add_meta_boxes', 'add_informations_generales' ); function add_informations_generales(){ global $post_name; add_meta_box( 'informations_generales_meta_box', 'Informations Générales', 'add_data_informations_generales', $post_name, 'normal', 'high' ); } add_action( 'add_meta_boxes', 'add_informations_generales' ); function add_data_informations_generales( $post ){ ?> <div class="int-box"> <div id="left" class="col lg-5 md-5 xs-12"> <label>Quelle salle ?</label> <input type="text" name="salle" value="" size="60" placeholder="Salle" /> <label>À quelle adresse ?</label> <input type="text" name="adresse_salle" value="" size="60" placeholder="Adresse civique" /> </div> <div class="clear"></div> </div> <?php } // Events gestionnary add_action( 'add_meta_boxes', 'add_event' ); function add_event(){ global $post_name; add_meta_box( 'date_meta_box', 'Dates de présentation', 'add_data_event', $post_name, 'normal', 'high' ); } add_action( 'add_meta_boxes', 'add_event' ); function add_data_event( $post ) { // Grab our data to fill out the meta boxes (if it's there) $test = get_post_meta( $post->ID, 'test', true ); // Add a nonce field wp_nonce_field( 'save_test_meta', 'test_meta' ); ?> <div id="blocData"> <div id="data-1" class="col lg-5 md-5 xs-12"> <label>#1 - Sélectionnez une date</label> <div id="jour-1" class="col lg-3-eq md-3-eq xs-10"> <input type="text" name="jour-1" value="" size="60" placeholder="jour" /> </div> <div id="mois-1" class="col lg-3-eq md-3-eq xs-10"> <input type="text" name="mois-1" value="" size="60" placeholder="Mois" /> </div> <div id="annee-1" class="col lg-3-eq md-3-eq xs-10"> <input type="text" name="annee-1" value="<?php echo date('Y')?>" size="60" placeholder="Année" disabled/> </div> <div id="heures-1" class="col lg-3-eq md-3-eq xs-10"> <input type="text" name="heures-1" value="" size="60" placeholder="Heures" /> </div> <div id="minutes-1" class="col lg-3-eq md-3-eq xs-10"> <input type="text" name="minutes-1" value="" size="60" placeholder="Minutes" /> </div> <div class="clear"></div> <input type="checkbox" name="complet-1" value=""> <span class="forCheckbox">Cochez si la représentation est complète.</span> <input type="checkbox" name="surtitre-1" value=""> <span class="forCheckbox">Y'a t'il les surtitres ?</span> </div> </div> <div class="clear"></div> <input type="button" value="Ajouter" id="addnew"> <?php } add_action('admin_head', 'my_add_input'); function my_add_input() { ?> <script> // add live metod jQuery.fn.live = function (types, data, fn) { jQuery(this.context).on(types,this.selector,data,fn); return this; }; // add new input (function($){ $(function(){ var num = 2; $('#addnew').click(function(){ $('#blocData').append('<div id="data-'+ num +'" class="englobe col lg-5 md-5 xs-12"><label>#'+ num +' - Sélectionnez une date</label><div id="jour-'+ num +'" class="col lg-3-eq md-3-eq xs-10"><input type="text" name="jour-'+ num +'" value="" size="60" placeholder="jour" /></div><div id="mois-'+ num +'" class="col lg-3-eq md-3-eq xs-10"><input type="text" name="mois-'+ num +'" value="" size="60" placeholder="Mois" /></div><div id="annee-'+ num +'" class="col lg-3-eq md-3-eq xs-10"><input type="text" name="annee-'+ num +'" value="<?php echo date('Y')?>" size="60" placeholder="Année" disabled/></div><div id="heures-'+ num +'" class="col lg-3-eq md-3-eq xs-10"><input type="text" name="heures-'+ num +'" value="" size="60" placeholder="Heures" /></div><div id="minutes-'+ num +'" class="col lg-3-eq md-3-eq xs-10"><input type="text" name="minutes-'+ num +'" value="" size="60" placeholder="Minutes" /></div><div class="clear"></div><span>Supprimer</span><input type="checkbox" name="complet-'+ num +'" value=""> <span class="forCheckbox">Cochez si la représentation est complète.</span><input type="checkbox" name="surtitre-'+num+'" value=""> <span class="forCheckbox">Y\'a t\'il les surtitres ?</span></div></div>'); num ++; }); $('span').live( 'click' , function(){ $(this).parent('.englobe').remove(); }); }); })(jQuery) </script> <?php } ?>
Cela me permet de créer un custom post Billeterie avec un gestionnaire de date. Le système étant pour un théatre, nous créons une pièce de théatre et choisissons ses dates de représentation. Pour le teste, ça donne ça:
Image

Ce que j'aimerais, c'est d'arriver à enregistrer l'information de mon linsting pour les dates de présentation. (Il y a le bouton ajouter qu'on ne voit pas alors on peut ajouter autant de date que nous voulons). En suite, j'imagine que je vais arriver à comprendre comment enregistrer une information simple comme mes informations générales.

Pour vrai, je demande de l'aide, mais il faut que j'arrive à le faire, il faut que je l'apprenne. Donc mon entreprise aimerait payer pour apprendre à le faire. Donc acheter une banque de temps, pour répondre à mes questions en télétravail et payer le code s'il est apporté solutionné ou le temps si on me permet d'apprendre facilement comment ça fonctionne.

Au plaisir,
Sam

1 message   •   Page 1 sur 1