简体   繁体   中英

Add plugin metadata on woocommerce product creation using the REST API

Looking at the Woocommerce documentation , very little is said about adding custom metadata. Apart from some key value addition that doesn't seem to relate to plugins.

I have a plugin called "gravity forms" which also has its own extensive REST Api , however I cannot work out how to automatically assign a particular gravity form to a product when I create it. (their rest api seems to deal primarily with managing the forms, not assigning them to products)

When I pull a specific product with an assigned gravity form it has this custom metadata:

"metadata": [...,{ {"id"=>24866, "key"=>"_gravity_form_data", "value"=> {"id"=>"6", "display_title"=>false, "display_description"=>false, "disable_woocommerce_price"=>"no", "price_before"=>"", "price_after"=>"", "disable_calculations"=>"no", "disable_label_subtotal"=>"no", "disable_label_options"=>"no", "disable_label_total"=>"no", "disable_anchor"=>"no", "label_subtotal"=>"Subtotal", "label_options"=>"Options", "label_total"=>"Total", "use_ajax"=>"no"}}]

however, when I try and autoamtically assign that metadata on product for example, as metadata: [{_gravity_form_data: { id: 6...}}] , it doesn't automatically assign the gravity form to the product.

Question 1) what ways are there to automatically assign the gravity form to a product?

Question 2) if it can be done after product creation, how do I take the product id and assign that gravity form to it? Do i have to use a post creation hook - I'd prefer to stick primarily to REST.

Installed the WC API Custom Metadata Plugin , which meant I could pull a previously modified product with the new gravity form, but this will work for any metadata object. I could then edit my POST request with:

meta_data: [ { key: "_gravity_form_data", value: { id: "6", display_title: false, display_description: false, disable_woocommerce_price: "no", price_before: "", price_after: "", disable_calculations: "no", disable_label_subtotal: "no", disable_label_options: "no", disable_label_total: "no", disable_anchor: "no", label_subtotal: "Subtotal", label_options: "Options", label_total: "Total", use_ajax: "no" } } ]

And it will automatically give it an ID and auto assign the gravity form to the product!

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM