


Solution WP_Query personnalisée WooCommerce pour une erreur tout en obtenant les détails de la commande
Cet article vise à résoudre 500 problèmes d'erreur rencontrés lors de l'utilisation de WP_Query pour personnaliser les détails de la commande de question de requête. En analysant le code du problème, en fournissant des exemples de code fixe et en expliquant la logique du code et des précautions en détail, en aidant les développeurs à utiliser correctement WP_Query pour obtenir et afficher les données de commande WooCommerce, et implémenter des fonctions telles que la pagination. Cet article fournit également des exemples de code optimisés pour faciliter la compréhension et le maintien de la compréhension.
Il y a souvent des problèmes lors de l'utilisation de WP_Query pour obtenir des détails de commande WooCommerce, surtout en ce qui concerne les appels Ajax et les capacités de pagination. Une erreur de 500 se produit généralement parce qu'une variable ou une méthode incorrecte est utilisée à l'intérieur de la boucle pour obtenir des informations de commande. Les détails suivants sur la façon d'utiliser correctement WP_Query pour obtenir les détails de la commande WOOCommerce et fournir une solution viable.
Analyse des problèmes
Il y a plusieurs problèmes dans le code d'origine:
- ID de commande incorrect Méthode d'obtention: obtenir l'ID de commande avec $ LOOP-> Post-> ID est incorrect dans la boucle WP_Query. La fonction get_the_id () doit être utilisée.
- Répéter la requête: deux instances WP_Query sont utilisées dans le code, l'une pour la boucle et l'autre pour le comptage. Cela peut conduire à des frais généraux inutiles.
- La logique de pagination est complexe: la logique de pagination peut être simplifiée et la pagination peut être plus pratiquement implémentée à l'aide du paramètre PAGE de WP_Query.
- Mauvaise lisibilité au code: la structure du code peut être optimisée pour le rendre plus facile à comprendre et à maintenir.
Solution
Voici un exemple de code fixe qui résout le problème ci-dessus et fournit un moyen plus clair de l'implémenter:
fonctions.php
Php add_action ('wp_ajax_demo_pagination_posts', 'démo_pagination_posts'); add_action ('wp_ajax_nopriv_demo_pagination_posts', 'Demo_pagination_posts'); fonction démo_pagination_posts () { Global $ WPDB; if (isset ($ _post ['page'])) { // désinfecter et valider le numéro de page $ page = max (intval ($ _post ['page']), 1); $ per_page = 4; // Nombre de commandes par page // wp_query pour récupérer les commandes de la boutique avec pagination $ args = array ( 'post_type' => 'shop_order', 'post_status' => 'wc complété', 'orderby' => 'post_date', 'order' => 'desc', 'Posts_per_page' => $ per_page, «Paged» => $ Page, // Utilisez le paramètre «Paged» pour la pagination )); $ loop = new WP_Query ($ args); $ count = $ loop-> find_posts; // Nombre total de postes trouvés $ msg = ''; if ($ loop-> have_posts ()) { while ($ loop-> have_posts ()) { $ loop-> the_post (); // Obtenez l'ID de commande $ order_id = get_the_id (); // Obtenez une instance de l'objet WC_Order $ ordonnance = wc_get_order ($ order_id); if ($ ordonnance) { $ items = $ ordonnance-> get_items (); $ orders_id = $ ordonnance-> get_id (); $ status = wc_get_order_status_name ($ ordonnance-> get_status ()); $ date_created = $ command-> get_date_created () -> date ('d / m / y'); $ PAYS_METHOD = $ ordonnance-> get_payment_method_title (); $ order_total = $ ordonnance-> get_formatted_order_total (); foreach ($ articles comme $ item) { $ product_name = $ item-> get_name (); $ View_order = $ commander-> get_view_order_url (); $ product = $ item-> get_product (); if ($ instance produitof wc_product) { $ commander_img = $ product-> get_image (); $ downloads = $ commander-> get_downloadable_items (); $ download_button = ''; if (is_array ($ downloads)) { foreach ($ téléchargements comme $ produit) { $ download_button = '<a href="'.%20%24%20Product%20%5B't%C3%A9l%C3%A9chargement_url'%5D.%20'" target="_ Blank"> Télécharger </a>'; } } $ msg. = '
Ordine # '. ESC_ATTR ($ ORDERS_ID). ' | prodotto '. WP_KESS_POST ($ product_name). ' | data '. wp_kses_post ($ date_created). ' | prezzo '. WP_KESS_POST ($ ORDER_TOTAL). ' | stato '. WP_KESS_POST ($ Status). ' | fichier Visualizza |
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Stock Market GPT
Recherche d'investissement basée sur l'IA pour des décisions plus intelligentes

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Ce tutoriel détaille comment utiliser CSS pour masquer avec précision le contenu de texte spécifique dans les pages HTML pour éviter que le problème de l'ensemble de l'élément parent soit caché en raison de sélecteurs inappropriés. En ajoutant des classes CSS exclusives aux éléments d'emballage du texte cible et en utilisant l'affichage: aucun; Attribut, les développeurs peuvent obtenir un contrôle raffiné des éléments de page, en veillant à ce que seules les pièces requises soient masquées, optimisant ainsi la mise en page et l'expérience utilisateur.

Usemailto: inhreftocreateeemaillinks.startwithforbasiclinks, ajouter? Sujet = & body = forpre-fillutContent, andincludemultipleaddressorcc =, bcc = foradvancedOptions.

USECSSFLOATPROPERTYTOWRAPTextArnanImage: FloatleftFortExtontheRight, FloatRightFortExtontheLeft, AddmarginForspacing, etClearFloatStopReventLayEtLaySues.

Usethetitleattributeforsimpletooltipsorcssforcustom-styledones.1.addtitle = "text" toanyelementfordtooltips.2.ForStyledToolTips, wraptheelementInacontainer, use.tooltipand.tooltiptextclasseswithcspositioning, pseudo-elelights, et vissibilitycccc

SetThelangAttributeInthehtmltagtospecifypagelanguage, par exemple, français; 2. usocodes comme "ES" ForSpanishor "FR" Forfrench;.

Cet article explore le défi de capturer des événements de Mousedown sur des divs parents contenant des iframes interdomains. Le problème de base est que les politiques de sécurité du navigateur (politique d'origine même) empêchent l'écoute d'événements DOM directe sur le contenu IFRAME inter-domaine. Ce type de capture d'événements ne peut pas être réalisé à moins que le nom de domaine source IFRAME soit contrôlé et que COR soit configuré. L'article expliquera ces mécanismes de sécurité en détail et leurs limites aux interactions des événements et fourniront des alternatives possibles.

Cet article explore deux problèmes courants lors de l'appel des fonctions JavaScript externes dans HTML: un temps de chargement de script incorrect ne fait pas partie des éléments DOM, et la dénomination des fonctions peut entrer en conflit avec les événements ou les mots clés intégrés du navigateur. L'article fournit des solutions détaillées, y compris les emplacements de référence de script de peaufinage et les spécifications de dénomination des bonnes fonctions pour s'assurer que le code JavaScript est correctement exécuté.

ThefigureElementgroups self-conainedmedialikeImageSorCharts, tandis que la forme de la propriété de la capitalisation est en mesure d'improchera et de la création et de la création de la tension asshowninal.
