Commit Graph

83 Commits

Author SHA1 Message Date
Mike Jolley 866f1cd818 Merge branch 'master' into pr/16191
# Conflicts:
#	includes/wc-account-functions.php
2017-08-08 13:20:17 +01:00
Claudiu Lodromanean ab543148ff Merge pull request #16335 from woocommerce/fix/16309
Add shortcode to description output in structured data
2017-08-03 11:09:16 -07:00
Mike Jolley 827083c051 Add shortcode to description output in structured data
Closes #16309
2017-08-03 08:28:35 +02:00
opportus f448c692ca Fixes #16010
Allows single SD item having a `@context`
2017-08-01 14:32:40 +02:00
Saul Fautley 68470b51a4 Updated structured data for products
- Replaced outdated `priceSpecification` with `AggregateOffer`.
- Restructured data according to Google's latest specifications.
- Use product short_description if available.
2017-07-19 18:53:02 +02:00
Mike Jolley d7ed343178 Revise where context is added. 2017-07-07 11:20:34 +01:00
claudiulodro fe09b4cf54 Remove side-effects 2017-07-03 13:57:32 -07:00
claudiulodro 6706da6d45 Move to prevent undefined errors 2017-06-29 11:46:30 -07:00
claudiulodro 0db60b56c9 Re-add removed line. 2017-06-29 11:43:30 -07:00
Jonathan Moore 7dc2c7cd6e fixes #15283
fixes #15283 Notice: Undefined property: stdClass::$post_ID in wp-content/plugins/woocommerce/includes/class-wc-structured-data.php on line 262 
when calling wp_list_comments with $options['callback'] = 'woocommerce_comments'
2017-05-26 07:59:42 +08:00
Mike Jolley e0583d2cd9 Merge branch 'master' into update/14848
# Conflicts:
#	includes/class-wc-structured-data.php
2017-05-08 19:13:12 +01:00
Claudio Sanches ec5df6450c Merge pull request #14931 from woocommerce/fix/14854
Hide offers from structured markup when blank
2017-05-08 14:01:58 -03:00
Mike Jolley 3c57508f56 Correct variable name in order structured data
Fixes #14944
2017-05-08 17:46:40 +01:00
Mike Jolley 7d956ca797 If prices are the same for all variations, use price not priceSpecification
Closes #14848
2017-05-08 16:53:27 +01:00
Mike Jolley c7e9a4c809 Hide offers from structured markup when blank
Fixes #14854
2017-05-08 11:59:33 +01:00
Mike Jolley d5205b97f8 Abort generate_breadcrumblist_data is there are no crumbs 2017-04-20 17:04:48 +01:00
Brandon Hubbard fe81c3d74b Updated Schema URLs to use HTTPS 2017-04-17 12:35:21 -03:00
Mike Jolley 7bdf8302ec Restores itemReviewed structured data for product reviews 2017-04-13 16:30:06 +01:00
Claudio Sanches 01c425398c Merge pull request #14012 from woocommerce/fix/13930-alt
Hide structured data in hidden element
2017-04-06 10:14:30 -03:00
Mike Jolley 36e9b73ef3 Make sure we have a product before generating JSON 2017-04-06 12:40:53 +01:00
Mike Jolley 52939e800c Hide structured data in hidden element 2017-04-06 10:06:21 +01:00
Claudio Sanches 59c2849736 Changed version 2.7 to 3.0 2017-03-15 13:36:53 -03:00
Mike Jolley 53962f1143 Other date_date call replacements 2017-03-10 16:43:05 +00:00
Brent Shepherd 759de5cc00 Fix undefined $order_url variable
In the case of an order with no items.

Fix redundantly setting the $order_url multiple times in the case
of orders with more than one line item.
2017-03-02 13:09:38 -08:00
Mike Jolley f2990b0c7d Check we have a WC_Order during email events 2017-02-27 17:08:13 +00:00
Mike Jolley 7739bca4fa Skip replies unless they have a rating. 2017-02-24 12:34:09 +00:00
Mike Jolley 0de73ee4f9 Only show reviewRating when rating is set. 2017-02-24 12:32:39 +00:00
Mike Jolley ca55291263 Skip plain text 2017-02-20 12:04:53 +00:00
Akeda Bagus 9ad529f170
Replaced deprecated woocommerce_format_decimal with wc_format_decimal.
Fixes #13208.
2017-02-16 13:49:56 +07:00
Mike Jolley 66bceedbf8 Send min and max price, not all variation prices
Closes #12811
2017-02-08 11:40:04 +00:00
Mike Jolley 76b32c9aa5 WIP - Product CRUD (#12065)
* Created function to get the catalog visibility options

* First methods for WP_Product crud

* Product set methods

* Fixed several erros while setting data

* First methods for WP_Product crud

* Product set methods

* Fixed several erros while setting data

* Hardcode the get_type per product class

* Initial look through getters and setters and abstract data

* Missing var

* Add related product functions and deprecate those in class.

* No need to exclude ID

* Fixed coding standards and improved the docblocks

* Get cached terms from wc_get_related_terms()

* Fixed wrong variable in wc_get_related_terms

* Use count() instead of sizeof()

* Sanitize ids later

* Remove unneeded comments

* wc_get_product_term_ids instead of related wording and use in other places.

get_the_terms is used here and also handles caching, something
wp_get_post_terms does not.

* Clean up the abstract product class a bit, deprecate two functions we have renamed, make update & create work properly, and add some tests for it.

* Bump template version

* Handle PR feedback: Remove duplicate regular_price update, allow changing of post status for products, remove deprecation for get_title since we might still offer it as a function

* Made abstract function useful

* External Product CRUD

* _virtual meta should be 'no', not taxable, in product unit test helper

* Grouped product class

* Tests

* Move children to meta and update test

* Use get_upsell_ids

* Spacing in query

* Moving and refactoring methods

* Availability html

* Tidy/add todos

* Rename method

* Put back review functions (still todo)

* missing $this

* get_price_including_tax/excluding_tax functions

* wc_get_price_to_display

* Price handling

* [Product CRUD] Variable (#12146)

* [Product CRUD] Variable Products

* Handle PR feedback.

* [Product CRUD] Grouped Handling (#12151)

* Handle grouped product saving

* Update routine

* [Product CRUD] Product crud terms (#12149)

* Category and tag id handling

* Replace template functions

* Remove todo

* Handle default name in save function

* Product crud admin save routine (#12174)

* Initial props

* Work on admin saving

* Set/get attributes

* Atom was moaning about this before but no longer.

* Update get_shipping_class

* WC_Product_Attribute

* Use getter in admin panel

* Fix attribute saving

* Spacing

* Fix comment

* wc_implode_text_attributes helper function

* [Product CRUD] Product crud admin use getters (#12196)

* Initial props

* Work on admin saving

* Set/get attributes

* Atom was moaning about this before but no longer.

* Update get_shipping_class

* WC_Product_Attribute

* Use getter in admin panel

* Fix attribute saving

* Move settings into new files

* Refactor panels and use getters

* Use getters for variation panel

* Revert save variation changes for now

* Add todos

* Fix downloads

* REST API CRUD Updates

* Additional API updates/fixes. Added some todos

* Fix final failing tests and implementing setters/getters and attributes functionality.

* Fix comparison for is_on_sale and remove download_type from WC_Product.

* Add a wc_get_products wrapper.

* Remove the download type input from the product data metabox for downloadable products. (#12221)

* [Product CRUD] Variations - setters, getters and admin. (#12228)

* Started on variation changes

* Stock functions

* Variation class

* Bulk change ->id to get_id() to fix variation form display

* Missing status

* Fix add to cart

* Start on stored data save

* save variation

* Save_variations

* Variation edit panel

* Save variations code works.

* Remove stored data code and fix save

* Improve legacy class

* wc_bool_to_string

* prepare_set_attributes

* Use wc_get_products

* More feedback fixes

* Feedback fixes

* Implement CRUD in the legacy REST API

* Handle PR feedback

* [Product CRUD] Getter setter proxy methods (#12236)

* Started on variation changes

* Stock functions

* Variation class

* Bulk change ->id to get_id() to fix variation form display

* Missing status

* Fix add to cart

* Start on stored data save

* save variation

* Save_variations

* Variation edit panel

* Save variations code works.

* Remove stored data code and fix save

* Improve legacy class

* wc_bool_to_string

* prepare_set_attributes

* Use wc_get_products

* More feedback fixes

* get_prop implementation in abstract and data classes

* Implement set_prop

* Change handling

* Array key exists

* set_object_read

* Use get_the_terms() instead of wp_get_post_terms()

wp_get_post_terms() is a wrapper around wp_get_object_terms() which does not
use the object cache, and generates a database query every time it is used.

get_the_terms() however can use data from the object cache if present.

* Allow WP_Query to preload post data, and meta in wc_get_products()

Allow WP_Query to bulk query for post data and meta if more than
just IDs are requested from wc_get_products(). Reduces query count
significantly.

* [Product CRUD] Variable, variation, notices, and stock handling (#12277)

* No longer needed

* Remove old todos

* Use getters in admin list

* Related and upsells update for CRUD

* Fix notice in gallery

* Variable fixes and todos

* Context

* Price sync

* Revert variation attributes change

* Return parent data in view context

* Defer term counting

* wc_find_matching_product_variation

* Stock manage tweaks

* Stock fixes

* Correct id

* correct id

* Better sync

* Data logic setter fix

* feedback

* First methods for WP_Product crud

* Product set methods

* Fixed several erros while setting data

* Hardcode the get_type per product class

* Initial look through getters and setters and abstract data

* Missing var

* Fixed coding standards and improved the docblocks

* Get cached terms from wc_get_related_terms()

* Fixed wrong variable in wc_get_related_terms

* Use count() instead of sizeof()

* Add related product functions and deprecate those in class.

* No need to exclude ID

* Sanitize ids later

* Clean up the abstract product class a bit, deprecate two functions we have renamed, make update & create work properly, and add some tests for it.

* Remove unneeded comments

* wc_get_product_term_ids instead of related wording and use in other places.

get_the_terms is used here and also handles caching, something
wp_get_post_terms does not.

* Handle PR feedback: Remove duplicate regular_price update, allow changing of post status for products, remove deprecation for get_title since we might still offer it as a function

* External Product CRUD

* _virtual meta should be 'no', not taxable, in product unit test helper

* Bump template version

* Made abstract function useful

* Grouped product class

* Tests

* Move children to meta and update test

* Use get_upsell_ids

* Spacing in query

* Moving and refactoring methods

* Availability html

* Tidy/add todos

* Rename method

* Put back review functions (still todo)

* missing $this

* get_price_including_tax/excluding_tax functions

* wc_get_price_to_display

* Price handling

* [Product CRUD] Variable (#12146)

* [Product CRUD] Variable Products

* Handle PR feedback.

* [Product CRUD] Grouped Handling (#12151)

* Handle grouped product saving

* Update routine

* [Product CRUD] Product crud terms (#12149)

* Category and tag id handling

* Replace template functions

* Remove todo

* Handle default name in save function

* Product crud admin save routine (#12174)

* Initial props

* Work on admin saving

* Set/get attributes

* Atom was moaning about this before but no longer.

* Update get_shipping_class

* WC_Product_Attribute

* Use getter in admin panel

* Fix attribute saving

* Spacing

* Fix comment

* wc_implode_text_attributes helper function

* [Product CRUD] Product crud admin use getters (#12196)

* Initial props

* Work on admin saving

* Set/get attributes

* Atom was moaning about this before but no longer.

* Update get_shipping_class

* WC_Product_Attribute

* Use getter in admin panel

* Fix attribute saving

* Move settings into new files

* Refactor panels and use getters

* Use getters for variation panel

* Revert save variation changes for now

* Add todos

* Fix downloads

* REST API CRUD Updates

* Additional API updates/fixes. Added some todos

* Fix final failing tests and implementing setters/getters and attributes functionality.

* Fix comparison for is_on_sale and remove download_type from WC_Product.

* Add a wc_get_products wrapper.

* Remove the download type input from the product data metabox for downloadable products. (#12221)

* [Product CRUD] Variations - setters, getters and admin. (#12228)

* Started on variation changes

* Stock functions

* Variation class

* Bulk change ->id to get_id() to fix variation form display

* Missing status

* Fix add to cart

* Start on stored data save

* save variation

* Save_variations

* Variation edit panel

* Save variations code works.

* Remove stored data code and fix save

* Improve legacy class

* wc_bool_to_string

* prepare_set_attributes

* Use wc_get_products

* More feedback fixes

* Feedback fixes

* Implement CRUD in the legacy REST API

* Handle PR feedback

* [Product CRUD] Getter setter proxy methods (#12236)

* Started on variation changes

* Stock functions

* Variation class

* Bulk change ->id to get_id() to fix variation form display

* Missing status

* Fix add to cart

* Start on stored data save

* save variation

* Save_variations

* Variation edit panel

* Save variations code works.

* Remove stored data code and fix save

* Improve legacy class

* wc_bool_to_string

* prepare_set_attributes

* Use wc_get_products

* More feedback fixes

* get_prop implementation in abstract and data classes

* Implement set_prop

* Change handling

* Array key exists

* set_object_read

* Use get_the_terms() instead of wp_get_post_terms()

wp_get_post_terms() is a wrapper around wp_get_object_terms() which does not
use the object cache, and generates a database query every time it is used.

get_the_terms() however can use data from the object cache if present.

* [Product CRUD] Variable, variation, notices, and stock handling (#12277)

* No longer needed

* Remove old todos

* Use getters in admin list

* Related and upsells update for CRUD

* Fix notice in gallery

* Variable fixes and todos

* Context

* Price sync

* Revert variation attributes change

* Return parent data in view context

* Defer term counting

* wc_find_matching_product_variation

* Stock manage tweaks

* Stock fixes

* Correct id

* correct id

* Better sync

* Data logic setter fix

* feedback

* Prevent notices

* Handle image_id from parent

* Fix error

* Remove _wc_save_product_price

* Remove todo

* Fixed wrong variation URLs

* Fixed undefined $image_id in WC_Product_Variation::get_image_id()

* Allow wc_rest_prepare_date_response() handle timestamps

* Updated get methods on REST API for variations

* Use variations CRUD to save variations metadata

* [Product CRUD] Abstract todos (#12305)

* Get dimensions and weights, with soft deprecation

* Product attributes

* Ratings

* Fix read method

* Downloads

* Feedback

* Revert "[Product CRUD] Abstract todos (#12305)"

This reverts commit 9a6136fcf8.

* Remove deprecated get_variation_id()

* New default attributes method

* [Product CRUD] Product Datastore (#12317)

* Fix up tests in the product/* folder.

* Handle data store updates for grouped, variable, external, simple, and general data store updates for products.

* Variations & variable changes.

* Update -functions.php calls to use data store.

* Add an interface for the public product data store methods.

* Finished product factory tests

* Correctly delete in the api, fix up some comments, and implement an interface for the public variable methods.

* Fix up delete in all versions of the api

* Handle feedback

* Match protected decloration to parent

* Product crud abstract todos (#12316)

* Get dimensions and weights, with soft deprecation

* Product attributes

* Ratings

* Fix read method

* Downloads

* Feedback

* Fix up store

* Fixed method returning in write context

* Fix error in variation admin

* Check for parent value - fixes tax class

* Remove old/complete todos

* Allow set tax class as "parent"

* Removed duplicated sync

* Fixed wrong variation URLs

* Fixed undefined $image_id in WC_Product_Variation::get_image_id()

* Allow wc_rest_prepare_date_response() handle timestamps

* Updated get methods on REST API for variations

* Use variations CRUD to save variations metadata

* Remove deprecated get_variation_id()

* New default attributes method

* Fixed method returning in write context

* Allow set tax class as "parent"

* Removed duplicated sync

* Fixed coding standards

* TODO is not accurate.

* Should pass WC_Product instancies to WC_Comments methods (#12327)

* Use new method in abstract order class to prevent headers sent issue in tests

* Fixed variable description in REST API

* Updated how create initial product variation

* Fixed a few fatal errors and warnings in Products CRUD (#12329)

* Fixed a few fatal errors and warnings in Products CRUD

* Fixed sync functions

* Add variations CRUD to legacy API (#12331)

* Apply crud to variable products in legacy API v1

* New REST API do not need fallback for default attributes

* Apply variations CRUD to legacy API v2

* Legacy v2 - save default attributes

* Variations in legacy API v2 do not have descriptions

* Fixed legacy API v2 variations params

* Applied variations CRUD to legacy API v3

* Sync before save in legacy apis

* Punc

* Removed API todos

* Removed test

* Products endpoint tweaks (#12354)

* Var type already normalized on CRUD

* Let Product CRUD handle with validation, sanitization and conditional checks

* Set downloads using WC_Product_Download

* Stop try catch exceptions more than one time

* Handle WC_Data_Exception in legacy API

* Complete remove products when fails on creating

* On creating I mean!

* Already have a method to complete delete products

* Fixed standards using WP CodeSniffer

* get_the_terms() returns false when empty

* get_manage_stock returns boolean

@claudiosanches

* Merge conflict

* Variations API endpoint fixes

* Product CRUD improvements (#12359)

* args is not used any more - remove todo

* Added test for attributes

* wc_get_price_excluding_tax usage

* parent usage

* Fix rating counts

* Test fixes

* Cleanup after tests

* Make sure status transition code runs even during API calls, not just in admin.

* Default visibility

* Fix attribute setting in API

* Use get name instead of get title

* variation id usage

* Improved cross sell templates

* variation_data

* Grouped product sync

* Notices

* Sync is not needed in API

* Delete

* Rename interfaces

* Update counts in data store
2016-11-16 12:38:24 +00:00
Claudio Sanches f85bb56cb1 Less code on the fly inside ld+json 2016-11-03 15:00:57 -02:00
Lee Willis 237ebc0e95 Filter the (JSON+LD) offers separately from the overall product data (#12234)
* Filter the offers separately from the overall product markup

* Rename filter as per feedback on the PR
2016-11-03 11:47:45 +00:00
Claudio Sanches c58940258a Updated $order->id to $order->get_id() 2016-10-25 22:46:36 -02:00
Claudio Sanches 3f9c16fe49 Fixed coding standards 2016-10-13 20:54:47 -03:00
Claudio Sanches d5fa492378 Reverted the woocommerce_structured_data_product_limited filter name 2016-10-13 20:43:30 -03:00
Claudio Sanches a9c8c79f58 Removed extra space 2016-10-13 19:54:21 -03:00
Claudio Sanches ecb0c46f7f Use get_data() at less one time 2016-10-13 19:48:02 -03:00
Claudio Sanches 9dce511dde Removed dead $limit_data param from generate_product_data() 2016-10-13 19:44:12 -03:00
Claudio Sanches fae8574619 Make methods less complex and more legible 2016-10-13 19:40:15 -03:00
Claudio Sanches f3275be8d2 Fixed undeclared array variables 2016-10-13 19:05:51 -03:00
Claudio Sanches 7dc74f6dfc Improved WC_Structured_Data::generate_* methods
- Less conditional code
- Better docblocks
- Fixed mixed variables
- Stop returning bool since it's only displaying
2016-10-13 18:51:20 -03:00
Claudio Sanches 48210fa39a No need to declare 0 or 1 params in add_action() 2016-10-13 18:21:12 -03:00
Claudio Sanches 5967762e01 Already obvious 2016-10-13 18:19:41 -03:00
Claudio Sanches b9dfdacad4 Removed confuse helper 2016-10-13 18:19:13 -03:00
opportus af26ab6f3d improved structured data - valids TCI checks 2016-09-21 16:37:54 +02:00
opportus eaa7def18a improved structured data - some little tweaks 2016-09-14 22:08:57 +02:00
opportus db8cb4cf15 improved structured data - fixes missused `@uses` docblock tags 2016-08-28 09:24:17 +02:00
opportus a25e296782 improved structured data - fixes the previous mistake 2016-08-26 18:52:31 +02:00
opportus e61c48272e improved structured data - a little revision 2016-08-26 18:37:19 +02:00