Créer par programmation un Thème la variation du produit avec de nouvelles valeurs d'attribut
J'ai créé une variable produit ("parent" du produit) dans le Thème de la version 3+. À partir d'un plugin WordPress, je voudrais créer par programmation les variations du produit ("enfants" du produit) avec de nouvelles valeurs d'attribut.
La variation des attributs sont déjà définies dans le Thème.
Donc à chaque fois une variante est créé, les nouvelles valeurs de l'attribut doit être créé par programmation trop et définie dans la Variable parent produit.
Comment cela peut-il être fait? est-il possible?
Mise à jour : j'avais écrit plus de lignes de codes sur ce que j'ai voulu, et j'ai essayé beaucoup de choses pour le résoudre, à l'aide de thème des objets, et a ajouté des données manquantes sur les conditions, les termmeta, la relation de long terme avec la poste, dans la base de données à l'aide de la base de données WordPress objet - mais rien n'a suffi pour le faire fonctionner. Et je n'arrivais pas à le pin-point où je suis allé mal - c'est pourquoi je ne pouvais pas offrir une plus étroite problème - choses pour lesquelles stackoverflow est plus fait pour.
Vous devez fermer l'un de ces stackoverflow.com/questions/47518333/...
OriginalL'auteur Cedric | 2017-11-27
Vous devez vous connecter pour publier un commentaire.
À partir d'une variable définie par l'ID de produit, Vous trouverez ci-dessous, une fonction personnalisée qui permettra d'ajouter (créer) une variation du Produit. La variable produit parent doit avoir défini les attributs requis.
Vous devrez fournir certaines informations comme:
Ces données doivent être stockées dans la forme d'un tableau multi dimensionnel (voir un exemple à la fin).
Cette fonction permet de vérifier si les valeurs d'attributs (terme de nom) existent déjà et si ce n'est:
- il créer pour le produit de l'attribut
- mettre dans la variable parent produit.
La fonction personnalisée code:
Code va dans function.php fichier de votre thème enfant (ou thème) ou dans tous les fichiers du plugin.
D'utilisation (exemple avec 2 attributs):
Testé et fonctionne.
Vous obtiendrez ceci dans le backend:
Et cela fonctionnera parfaitement dans l'extrémité avant.
J'ai ajouté quelques données de poids (si je ne me trompe pas, une variation pourrait avoir un poids différent que les parents et/ou variable ou autre variante), la description, la limace .
if (is_numeric(($variation_data['poids']))) $variation->set_weight($variation_data['poids']); if (is_string(($variation_data['long_description'])) && strlen($variation_data['long_description'])) $variation->set_description($variation_data['long_description']); if (is_string(($variation_data['slug'])) && strlen($variation_data['slug'])) $variation->set_slug($variation_data['slug']);
une fois que nous avons clarifié la remarque ci-dessus, vous pouvez ajouter un mannequin de répondre à stackoverflow.com/questions/47518333/... - par la résolution du produit-variation-avec-nouvelle-attribut-valeur de poste, vous avez résolu pour moi l'autre. J'ai donc pu l'attribut de l'autre post du bounty.
- Je trouver le code est généralement acceptable, mais assurez-vous, pas de problème. J'ai posté ma suggestion comme une nouvelle réponse, j'espère que vous ou d'autres personnes pourront trouver utile. Merci pour votre code, il fonctionnait très bien!
OriginalL'auteur LoicTheAztec
Expansion sur LoicTheAztec réponse, vous pouvez vérifier si l'attribut combinaison existe avec la modification suivante à son code.
Exemple d'utilisation
OriginalL'auteur Davey
Vous pourriez avoir un problème ici, si la taxonomie du produit n'est pas inscrit à l'avance de quelque part d'autre. Si vous voulez vous assurer que la taxonomie existe, vous pouvez ajouter une condition à LoicTheAztec de réponse.
Quelque chose comme ça.
OriginalL'auteur Carl F. Corneil
Je vais juste jeter ce là-bas, puisque je ne pouvais pas obtenir les exemples ci-dessus travail. Ne me demandez pas pourquoi d'autres personnes semblent avoir du succès. Donc, j'ai pris l'approche minimaliste et essayé de comprendre l'essentiel pour un produit attribut + variation (en créant manuellement dans wp et en regardant la db) et est venu avec cette.
Ce n'est pas en utilisant les attributs d'un produit, mais l'article spécifique. Espérons que cela aide quelqu'un que j'étais prêt à m'arracher les cheveux, avant que j'ai eu de travail.
OriginalL'auteur PKSWE
Si vous voulez générer des produits pour les tests dans le Thème, vous pouvez utiliser Thème Lisse Générateur, faite par le Thème lui-même.
https://github.com/woocommerce/wc-smooth-generator
Exemple:
Src: https://github.com/woocommerce/wc-smooth-generator/blob/master/includes/Generator/Product.php
Si vous voulez créer des produits par programmation, vous pouvez Produit de classe avec vos besoins.
OriginalL'auteur Lucas Bustamante
il fonctionne mais a besoin d'un peu de corrections (2 virgules dans les fonctions de tableau), j'ai fait de modifier une partie du code à mes besoins.
(travail sur wp 4.9 | wc 3.5)
D'abord les produits ont l'attribut déjà créé et associé, mon taxonomie est "pa_r" nom convivial "R"
backend attribut associeated img
la fonction avec la correction
J'ai fait un tableau avec les données dont j'ai besoin dans les variations de la [id_post, attribut, sku, regular_price, stock]
et le foreach pour créer dynamiquement toutes les variations de mes produits
OriginalL'auteur Orlando J. Depablos Morales