WooFrance Dépannage et support WordPress WooCommerce › Forums › Forum de Support WooCommerce › sauvegarder résultats cases à cocher dans metabox sur l’admin produit
- Ce sujet contient 16 réponses, 2 participants et a été mis à jour pour la dernière fois par folly29, le il y a 5 années et 12 mois.
-
AuteurMessages
-
19 juillet 2018 à 20 h 59 min #65748
Bonjour,
J’ai ajouter une métabox dans l’admin sur les page produits pour pouvoir relier des produits a une page. Pour l’instant tout fonctionne, j’affiche toutes les sous-pages qui m’intéresse, mon problème c’est pour sauvegarder le résultat quand on update la page. Pouvez vous m’aider ? Merci d’avance. Voici mon code si dessous.
add_action( ‘add_meta_boxes’, ‘add_custom_box’ ); function add_custom_box( $post ) { add_meta_box(« demo-meta-box », « Artistes », « people_meta_box », « product », « side », « high », null); } function people_meta_box($object) { wp_nonce_field( ‘my_awesome_nonce’, ‘awesome_nonce’ ); $checkboxMeta = get_post_meta( $post–>ID ); ?> <?php $children = get_pages(‘child_of=’.$post–>ID); if(ICL_LANGUAGE_CODE==‘fr’): $parent_id = 16; //fr elseif(ICL_LANGUAGE_CODE==‘en’): $parent_id = 75; //en endif; if( count( $children ) != 0 ) : ?> <div class=« list-sub-pages« > <?php $mypages = get_pages( array( ‘child_of’ => $parent_id, ‘sort_column’ => ‘post_date’, ‘sort_order’ => ‘desc’ )); foreach( $mypages as $page ) { ?> <div class=« sub-pages« > <?php $checkbox_value = get_post_meta($object–>ID, « meta-box-checkbox », true); ?> <input type=« checkbox« name=« artiste-<?php echo $page–>ID ?>« id=« artiste-<?php echo $page–>ID ?>« value=« yes« <?php if ( isset ( $checkbox_value[‘artiste-‘.$page–>ID] ) ) checked( $checkbox_value[‘artiste-‘.$page–>ID][0], ‘yes’ ); ?> /> <label for=« artiste-<?php echo $page–>ID ?>« ><?php echo $page–>post_title; ?></label> </div> <br/> <?php } // end for each ?> </div><!– list sub pages –> <?php endif; ?> <?php }
19 juillet 2018 à 22 h 27 min #65749pour la partie « $checkbox_value = get_post_meta… » vous pouvez le sortir avant la boucle foreach puisque la valeur ne change pas à chaque passage dans la boucle.
et pour les attributsname
vous pouvez mettre quelque chose commename="meta-box-checkbox[artiste-...]"
comme ça vous aurez dans $_POST le tableau tout prêt à enregistrer.ensuite pour l’enregistrement, vous pouvez le faire sur cette action :
https://developer.wordpress.org/reference/hooks/save_post_post-post_type/donc le code donnera quelque chose dans ce genre :
add_action("save_post_page", function ($post_ID, \WP_Post $page, $update) { if (!$update) { // valeurs par défaut pour une nouvelle page update_post_meta($page->ID, "meta-box-checkbox", []); return; } // vérification du nonce if (!isset($_POST["my_awesome_nonce"])) { return; } check_admin_referer("my_awesome_nonce", "awesome_nonce"); // enregistrement des cases à cocher //... });
Développeur PHP et WordPress En Alsace dans l'annuaire des prestataires WordPress et WooCommerce
Création d'extensions pour WordPress et WooCommerce - Personnalisation d'extensions existantes
🔶 Si vous appréciez mon aide, vous pouvez me faire un don de n'importe quel montant en cliquant ici.20 juillet 2018 à 14 h 13 min #6579225 septembre 2018 à 18 h 18 min #7202026 septembre 2018 à 7 h 37 min #72051Montre nous le code que tu as essayé.
Le forum n’arrive pas à présenter le code s’il y a des balises HTML donc colle le dans ce service :
https://framabin.org/Développeur PHP et WordPress En Alsace dans l'annuaire des prestataires WordPress et WooCommerce
Création d'extensions pour WordPress et WooCommerce - Personnalisation d'extensions existantes
🔶 Si vous appréciez mon aide, vous pouvez me faire un don de n'importe quel montant en cliquant ici.26 septembre 2018 à 13 h 51 min #72098Salut Mathieu, merci pour ta réactivité.
J’ai enfin réussi a faire la sauvegarde 🙂
Voici le code :
https://framabin.org/p/?d53faf76d8121626#FAN8auBHCE0uduDeiPY4X6fVGcW4FRlYDTyVQ4qYPGk=
Par contre maintenant que j’ai sauvegardé les infos, j’aimerais pouvoir afficher les produits qui sont lié a la page directement sur la page concernait.
Exemple : J’ai un produit « Nirvana : Nevermind » et une page artiste « nirvana », grâce au développement ci dessus j’aimerais afficher le produit « Nirvana : Nevermind » sur la page « Nirvana ». J’espère que je suis assez clair. En tout cas, merci beaucoup pour ton aide.
27 septembre 2018 à 6 h 12 min #72150est ce que sur la page produit, tu as besoin d’afficher la liste des pages artistes ?
Développeur PHP et WordPress En Alsace dans l'annuaire des prestataires WordPress et WooCommerce
Création d'extensions pour WordPress et WooCommerce - Personnalisation d'extensions existantes
🔶 Si vous appréciez mon aide, vous pouvez me faire un don de n'importe quel montant en cliquant ici.27 septembre 2018 à 13 h 33 min #7218828 septembre 2018 à 7 h 01 min #72234donc la réponse à ma question est « oui » 😉 tu as besoin d’afficher la liaison entre le produit en cours et les pages artistes cochées.
je demandais cela par rapport au choix de l’édition de cette liaison.donc maintenant sur la page de l’artiste, l’idée pour afficher les produits liés est de parcourir tous les produits et de tester pour chacun s’il est lié à la page en cours.
Développeur PHP et WordPress En Alsace dans l'annuaire des prestataires WordPress et WooCommerce
Création d'extensions pour WordPress et WooCommerce - Personnalisation d'extensions existantes
🔶 Si vous appréciez mon aide, vous pouvez me faire un don de n'importe quel montant en cliquant ici.30 septembre 2018 à 22 h 27 min #72385Merci Mathieu pour ta réponse,
J’arrive bien a afficher touts les produits sur la page artistes avec le code suivant : https://framabin.org/p/?d0b57f76556f4420#qR0wR2vbVxSdbQMcKB+xXUjThHnn7yh1cfIyL05t3r8=
Par contre je ne vois pas comment faire la liaison.
Merci d’avance.
5 octobre 2018 à 13 h 41 min #72729le test dans la boucle while peut se faire comme cela :
https://framabin.org/p/?c678c1752e41961f#N9ASdlCzaIydL/dqwVf17OPNyZ53erPDDQ0Ltbie1WQ=Développeur PHP et WordPress En Alsace dans l'annuaire des prestataires WordPress et WooCommerce
Création d'extensions pour WordPress et WooCommerce - Personnalisation d'extensions existantes
🔶 Si vous appréciez mon aide, vous pouvez me faire un don de n'importe quel montant en cliquant ici.11 octobre 2018 à 16 h 10 min #7316918 novembre 2018 à 0 h 21 min #75841Salut Mathieu,
J’ai encore un soucis avec l’affichages des produits. Je n’arrive pas a les afficher sur la version anglaise. Sur la version Francaise ca fonctionne parfaitement. Le seul probleme c’est que si aucun produit n’est relier j’aimerais afficher un texte précisant que aucun produit n’est présent dans cette catégorie.
Je suis vraiment perdu et je ne vois pas du tout comment faire. Si tu pouvais m’aider ca serait vraiment sympa.
Voici mon code : https://framabin.org/p/?59c88436e88bcd85#sdDvxPrxDhMvpzT5uURq25uIjAmIPWOigN1Kc+0r6n8=
19 novembre 2018 à 21 h 11 min #76010si je me rappelle bien, le code qui a été ajouté permet de lier plusieurs pages WordPress à un produit WooCommerce.
quel est la relation de cela avec la catégorie dont tu parles ? il s’agit d’une catégorie de produits WooCommerce ?Développeur PHP et WordPress En Alsace dans l'annuaire des prestataires WordPress et WooCommerce
Création d'extensions pour WordPress et WooCommerce - Personnalisation d'extensions existantes
🔶 Si vous appréciez mon aide, vous pouvez me faire un don de n'importe quel montant en cliquant ici.20 novembre 2018 à 14 h 41 min #7606220 novembre 2018 à 23 h 32 min #76115dans ce cas tu as déjà la condition dans le code.
tu asif ( $wpb_all_query->have_posts() )
et donc s’il n’y a pas de produit dans la catégorie, tu peux mettre un message dans leelse
.Développeur PHP et WordPress En Alsace dans l'annuaire des prestataires WordPress et WooCommerce
Création d'extensions pour WordPress et WooCommerce - Personnalisation d'extensions existantes
🔶 Si vous appréciez mon aide, vous pouvez me faire un don de n'importe quel montant en cliquant ici.21 novembre 2018 à 14 h 59 min #76154 -
AuteurMessages
- Vous devez être connecté pour répondre à ce sujet.