WooCommerce: Créer un produit par code
Mon magasin vend des autocollants en vinyle. Chaque produit (autocollant) a 144 variations (24 couleurs, 3 tailles et 2 de l'orientation). Chaque variation est nécessaire d'attribuer un unique numéro de référence.
Remplir manuellement catalogue est irréaliste. Je vais faire un formulaire dans lequel l'utilisateur indique le nom, la description et de l'image principale du produit, ainsi que les possibles de tailles et de couleurs. Lors du traitement du formulaire j'ai besoin de créer un produit et toutes ses variantes.
Comment créer un produit et de ses variations?
source d'informationauteur Beer Brother | 2012-07-16
Vous devez vous connecter pour publier un commentaire.
J'ai eu une situation similaire, voici ce que j'ai trouvé.
Produits sont en fait une custom post type (tout à fait évident! :P), de sorte que vous pouvez utiliser
wp_insert_post
d'insérer un nouveau produit. Après que vous insérez, vous obtenez l'id du nouveau produit type de poste, l'utilisationupdate_post_meta
pour définir un méta-clés et méta valeur_visibility
etvisible
respectivement. Si vous ne définissez pas la visibilité, votre nouvellement ajoutée des produits ne sera jamais visible dans votre boutique. Alternativement, vous pouvez définir la visibilité de l'extrémité arrière. Pour les différentes tailles du produit, les variations dans l'usage de ce produit. Vous pouvez définir un autre type, prix, SKU, etc. pour chaque variation. Tous ces post meta, par conséquent, vous pouvez utiliser du code php à ajouter les variations et d'autres choses. L'étude de lapostmeta
table pour voir les noms de clé.Que Jason a écrit dans son commentaireAPI REST est le chemin à parcourir ici. Cela peut être fait même sans HTTP requêtes REST, rendant le travail, même sur des installations WordPress qui ont leur RESTE interface désactivée.
Ici est une fonction simple que j'ai fait pour cette fin:
Ici,
$rest_request
est un tableau que vous aviez l'habitude de l'envoyer via REST (voir les docs ici).La
$products_controler
variable est globale parce que j'avais besoin d'appeler cette fonction à plusieurs reprises et je n'ai pas envie de recréer l'objet à chaque fois. N'hésitez pas à faire local.Cela fonctionne pour tous les types de produits (simple, regroupés, variable,...) et il devrait être plus résistant à l'interne les changements de Thème que l'ajout de produits manuellement par l'intermédiaire de
wp_insert_post
etupdate_post_meta
.Edit: étant Donné que cette réponse encore parfois d'upvote, voici une Thème 3.0+ mise à jour. Le changement, c'est que les variations ne sont plus ajoutés automatiquement, de sorte que nous avons à faire par nous-mêmes.
C'est la version actuelle de la fonction:
Ce est utilisé dans Aile d'Impression et Dropshipping sur Demande plugin, à partir de l' (qui sera bientôt publié) version 1.1, dans le fichier
api/publish_products.php
.Il est également beaucoup plus "rapide" version appelée
create_products_fast
qui écrit directement à la base de données, ce qui en fait potentiellement moins résistants à l'avenir WP/WC changements, mais il est beaucoup plus rapide (quelques secondes contre quelques minutes pour nos 34 gamme de produits sur mon ordinateur de test).Basé sur Vedran réponsevoici le code minimum pour l'affichage d'un Thème produit via PHP:
j'utilise ce code:
Veuillez vous référer à thème-avec-php-codeoù le code complet est donné.
Comme Avant-Gardiste dit, les produits sont rajoutés en post avec:
post_type = "product"