Commit Graph

166 Commits

Author SHA1 Message Date
Tamara Zuk 7eaae2d561 Fix average product rating when ratings are not required
If ratings are not required, the total rating count was counting all
reviews which skewed the average rating. In other words, reviews with
no rating were counted as a “zero” rating in the average rating
calculation. This bug was introduced in
83a457b29c which provided a fix for #6839.

This change introduces a new product method `get_review_count()` which
can be used to accurately calculate the total number of reviews for a
product. Some instances of `get_rating_count()` were replaced with
`get_review_count()` where appropriate. Additionally, the
`single-product/rating.php` template was adjusted to display the
correct number of customer reviews and ratings in rich snippets. I’ve
also included the `bestRating` rich snippet detailed
[here](http://schema.org/AggregateRating). The version number was
adjusted to 2.3.2 on that template as I think this is a larger change.
2015-02-11 17:55:16 -05:00
Claudio Sanches 0558c3c286 Added woocommerce_product_get_rating_html filter for WC_Product class, closes #7337 2015-02-10 13:01:04 -02:00
Mike Jolley 840efcaa00 is_on_sale should compare type Fixes #7344 2015-02-10 12:34:53 +00:00
Mike Jolley 893babaaef woocommerce_product_get_weight filter Closes #7319 2015-02-10 11:18:38 +00:00
Mike Jolley 74abdf27c9 Cast to array 2015-02-03 15:06:08 +00:00
Mike Jolley 7c019c0c50 More docblocks; the check for WP_POST isn't needed as the second case (isset) runs regardless and is true for posts 2015-02-03 13:13:07 +00:00
Mike Jolley c038001eab Docblocks for order/product 2015-02-03 12:57:08 +00:00
Brent Shepherd 95d87e28d6 Do not set property when calling __get()
SHA: 100b95a tweaked the `__get()` magic method in `WC_Product` to:
 * only call `get_post_meta()` once; and
 * set `$this->$key` to save the overhead of calling `__get()` every
   time that property needs to be accessed.

However, in the process, it also set an empty value (`''`) - the default
return value of `get_post_meta()` for every single value accessed on
the product object, meaning that any calls to `isset()` after attempting
to get that value would return `true`, even if `metadata_exists()` for
that property would return false (and no value is set in memory).
2015-01-23 15:01:10 -08:00
Claudio Sanches 04c584ccf6 Added properties docs for abstract product class 2015-01-23 15:51:33 -02:00
Mike Jolley 2584041700 wc_price enhancements
- Renamed some 2.3 methods for consistency
- Allow more args to be passed to wc_price to control output
- Filter wc_price args which Closes #7188
- wc_get_price_decimal_separator function
- wc_get_price_thousand_separator function
- wc_get_price_decimals function
2015-01-23 11:50:32 +00:00
Mike Jolley 91de767442 Product constructor setting post incorrectly 2015-01-20 14:00:30 +00:00
Mike Jolley de4129f9b2 WP_POST docs 2015-01-20 13:20:22 +00:00
Mike Jolley baea8f9ad4 Product class properties 2015-01-20 13:00:56 +00:00
Mike Jolley fef41c149c @uses WP_POST 2015-01-15 15:03:12 +00:00
James Koster 9cf1a8e7e8 is_sold_individually() tweak. closes #7041 2015-01-07 10:03:49 +00:00
Claudio Sanches d1f9cbfcf2 Merge pull request #6954 from SiR-DanieL/patch-2
Introduced woocommerce_get_product_attributes filter
2015-01-05 13:39:25 -02:00
Mike Jolley 7ef8f4d156 Invalidate unknown product transients Closes #6815 2014-12-30 15:27:08 +00:00
Nicola Mustone 7cec3c9f0b introduced woocommerce_get_product_attributes filter 2014-12-15 14:40:23 +01:00
Mike Jolley 100b95ae4f Tweak the get magic method in product class 2014-12-11 14:54:56 +00:00
Manos Psychogyiopoulos 4b04701cc8 add display_prices in variation data
The commit introduces 3 changes:
1. It adds 2 extra fields to the available_variations array,
display_price and display_regular_price, to be used by extensions in
cases like
https://github.com/woothemes/woocommerce-product-addons/issues/19
2. Introduces a get_display_price() function in WC_Product to retrieve
product prices incl or excl tax relative to the
woocommerce_tax_display_shop setting.
3. Fixes a minor issue where passing a 0 price to
get_price_including_tax() or get_price_excluding_tax() results in a
wrong output.
2014-12-03 11:28:04 +02:00
claudiosmweb 676549b4ab Fixed docblock for WC_Product::get_categories() 2014-12-01 22:09:42 -02:00
Bryce 83a457b29c improve get_rating_count() for rating-less reviews
Should close #6839.

According to `woocommerce_enable_review_rating` &
`woocommerce_review_rating_required`, it will do a different DB query,
so that when reviews without ratings are allowed, it will do a query
that counts those comments as reviews.
2014-11-27 14:32:09 +07:00
Barry Kooij 47cc448028 Added correct docblock. 2014-11-21 22:34:30 +01:00
Barry Kooij 4b539e7a9a Merge branch 'master' of github.com:woothemes/woocommerce 2014-11-21 22:31:17 +01:00
Barry Kooij 6ebadd572a Added correct docblock. 2014-11-21 22:31:09 +01:00
Michael Tieso 70d5fc834a Spelling correction - calculdate to calculate 2014-11-21 13:26:32 -08:00
claudiosmweb 74ba11c189 Removed some unused code 2014-11-19 21:36:47 -02:00
claudiosmweb e87aefc8e0 Fixed missing initial $query = array() 2014-11-19 16:26:10 -02:00
claudiosmweb f34cead914 Removed old code in favor of wc_tax_enabled() and wc_prices_include_tax() 2014-11-18 14:45:29 -02:00
Tamara Zuk 20655d367d Introduce `woocommerce_product_is_on_sale` filter
This filter is useful for extensions like Measurement Price Calculator
which alter the product price quite a bit, but would still like the
sale badge to appear :)

Current workaround is to use three filters ( `woocommerce_get_price`,
`woocommerce_get_regular_price`, and `woocommerce_get_sale_price` )
which most extension may be using already, but not all need/want to
alter these prices.
2014-11-14 18:00:03 -05:00
Mike Jolley cb8fe34b4c get_base_tax_rates() + filter. Closes #6668 2014-11-11 11:56:17 +00:00
Mike Jolley e4b212cb3a [2.2] Fix stock report queries Closes #6565 2014-10-21 14:50:18 +01:00
Mike Jolley 8766cfa6df Tweak woocommerce_get_price_html_from_to in #6455 2014-10-17 16:25:54 +01:00
Mike Jolley 2668f0b8dd Merge pull request #6455 from paulwilde/from-to-filters
Introduce filters to get_price_html_from_text() and get_price_html_from_to()
2014-10-17 16:25:16 +01:00
Tamara Zuk f34187d5d3 Allow for non-integer stock quantities
It looks like a3b522aff8 removed this
ability.
This would be very useful for extensions like Measurement Price
Calculator.
2014-10-17 00:52:56 -04:00
Paul Wilde 279c01d005 Introduce filters to get_price_html_from_text() and get_price_html_from_to(). 2014-10-02 20:11:34 +01:00
Illimar Tambek fb19f5b9c5 Improve naming & comments 2014-09-17 11:27:43 +03:00
Illimar Tambek 386011ffae Allow getting rating count for a specific rating number 2014-09-17 11:03:10 +03:00
Mike Jolley a3b522aff8 Prepare update queries. 2014-09-16 10:45:28 +01:00
Mike Jolley 3a4ba6e4c8 For regular products, ensure stock level saves on product creation. 2014-09-10 23:55:40 +01:00
Mike Jolley c4ef86d44e scrutinizer patches 2014-09-08 00:37:55 +01:00
Tamara Zuk 9c7826319c Coding Standards: Abstract classes
* fixed indentation - swapped spaces for tabs at start of line, swapped
tabs for spaces min-line for alignment
* removed instances of `@return void` and `@access public`
* improved readability

@see http://make.wordpress.org/core/handbook/coding-standards/php/
2014-08-31 01:49:58 -04:00
Mike Jolley c51fac23e0 Availability with backorders not requiring notification. 2014-08-15 15:29:14 +01:00
Mike Jolley 3f53512c7f Fix up visibility of stock options, drop downs, and get_availability() when parent is managing stock for a variation.
Fixes #6017
2014-08-13 15:03:30 +01:00
Mike Jolley 760cd6861c Small refactor of is_visible
Also returns false for non-published products and fixes #5955
2014-08-04 11:19:58 +01:00
Mike Jolley 029bbbec39 Updated reports 2014-07-25 15:46:19 +01:00
Mike Jolley 5e1bc4aeb1 Tweak get_availability 2014-06-27 14:46:39 +01:00
Mike Jolley c2475c2073 Merge pull request #5745 from claudiosmweb/4164-feature-products-api
Products API - PUT/POST/DELETE
2014-06-27 13:14:20 +01:00
Mike Jolley 50a4c5bd23 Merge branch 'variation-stock-management'
Conflicts:
	includes/class-wc-product-variation.php
2014-06-27 11:15:42 +01:00
Mike Jolley 6390e387e2 Additional check for product coupons and sale product exclusion. Fixes #5697 2014-06-25 13:46:47 +01:00
Mike Jolley 0f6f04e017 Added wc_stock_amount() core function and replaced intval
#4612
2014-06-25 11:25:28 +01:00
claudiosmweb 770d81091d fixed a error when get the thumbnail by API
Fixed the error:

PHP Notice: Trying to get property of non-object in wp-includes/post-template.php on line 29
2014-06-24 14:56:33 -03:00
Mike Jolley 3ca70b30f5 Add sanity check to stock status change 2014-06-24 13:01:34 +01:00
darkrain 8f530a156c bugfix in get_related() - return trash posts 2014-06-24 13:11:10 +07:00
darkrain ea476af2ca add filter to method get_sku() 2014-06-19 22:28:49 +07:00
Mike Jolley 375a0e2652 static WC_Tax class - no need for a constructor in this 2014-06-12 16:47:43 +01:00
Coen Jacobs 6aa9bcadab Added product id parameter to related posts filters 2014-05-21 11:35:54 +02:00
Tamara Zuk 651f1ac96f Introduce woocommerce_product_backorders_allowed filter 2014-05-04 17:29:43 -04:00
Mike Jolley ca9955fa9a Update stock amounts with DB queries Closes #5367
@claudiosmweb and @coenjacobs please review
2014-04-25 15:28:02 +01:00
Mike Jolley 3d8f7963df Update abstract docblock 2014-04-25 12:33:14 +01:00
Mike Jolley 0e1fcbda64 Abstract product constructor
Check for numeric $product, and expand the checking to see if its
passed a post object. Fixes #5341
2014-04-25 10:19:00 +01:00
Mike Jolley 9c37d83f11 Let get_file get the first file if no ID is defined
#5296
2014-04-24 16:00:35 +01:00
Mike Jolley 2a27663f1f get_image_id method + use in email template
Closes #5288
2014-04-08 15:02:11 +01:00
Patrick Rauland e4296cc5f7 fixing cool typo. see #5189 2014-03-21 16:37:26 -05:00
Coen Jacobs 3617316357 Updated expiry times for transients 2014-03-12 12:58:41 +01:00
Coen Jacobs 03163c54b0 set_transient calls should have expiration to prevent autoloading 2014-03-07 09:29:01 +01:00
splashingpixels b279487535 get_related fixed tags OR query not excluding product ID 2014-03-04 16:19:12 -08:00
splashingpixels f66be96f88 get related products added DISTINCT to prevent querying duplicates 2014-02-25 15:17:50 -08:00
Justin Hill eed9485e6c Update abstract-wc-product.php
Add filter to is_taxable() method so that plugins can better control what is and isn't taxable based on various conditions, such as customer's billing or shipping address, etc.
2014-02-22 13:15:41 -07:00
Mike Jolley 1cafd4f566 Fix to ensure stock status is updated, even when meta is blank. Prevents new products being hidden when the option to hide out of stock products is enabled. 2014-02-12 14:38:56 +00:00
claudiosmweb 617b6b07ae fixed some coding standards in includes/abstracts/abstract-wc-product.php 2014-02-07 15:35:45 -02:00
claudiosmweb 6758bab16a fixed the indentation in includes/abstracts/abstract-wc-product.php file 2014-02-07 15:31:25 -02:00
claudiosmweb 35b5614972 fixed docblock for WC_Product::get_children(), closes #4664 2014-02-07 15:31:00 -02:00
James Collins 7f497b3fc9 Fix PHP Warning: parse_url() expects parameter 1 to be string, array given in includes/wc-formatting-functions.php on line 41. Fixes #4535. 2014-01-20 09:21:50 +08:00
justinstern 32d850a76a woocommerce_stock_amount rather than intval
Using woocommerce_stock_amount filter rather than intval cast
2014-01-07 02:13:31 -05:00
Justin Stern ae91c698f2 Downloadable File Fixes/Tweaks
* Hooked up new downloadable product permissions function to
completed/processing actions
* WC_Product::get_files() is used rather than the underlying
_downloadable_files meta directly
* $this is passed to downloadable product filters in WC_Product in place
of $this->id which doesn't does not afford you the particular variation
when a product variation is being used.
2013-12-16 18:27:57 -05:00
Coen Jacobs bcf025694e Updated docblocks for #4292 2013-12-05 09:36:46 +01:00
Brent Shepherd f7df434399 Remove $from param on get_price_html_from_text()
As it's not used at all.
2013-12-04 17:46:12 -08:00
Mike Jolley 00ff09e3a2 sort sale price 2013-12-04 12:45:23 +00:00
Coen Jacobs a8444eb567 Fixed faulty double return 2013-12-03 15:11:01 +01:00
Coen Jacobs 61a783886d Suggested code changes in #4266 2013-12-03 15:03:25 +01:00
Gregory K f937c36250 Inconsistent return types: TODOs 2013-12-03 14:53:49 +01:00
Coen Jacobs 3e6acf7aab Code changes for #4252 2013-12-02 12:34:27 +01:00
Gregory K 7b38c7300b Inconsistent return types: mostly TODOs, some fixes 2013-11-29 13:50:31 -05:00
Gregory K dd5a2fb334 PhpDocs 2013-11-27 13:20:31 -05:00
Coen Jacobs 4afbd0b556 Merge branch 'function-call-refactor'
Conflicts:
	includes/admin/post-types/meta-boxes/class-wc-meta-box-order-data.php
	includes/shortcodes/class-wc-shortcode-cart.php
	includes/wc-template-functions.php
2013-11-25 15:42:26 +01:00
Mike Jolley 3408965b8a Product functions 2013-11-25 14:01:38 +00:00
Mike Jolley 3973beae5d woocommerce_ functions to wc_ - replaced attribute functions 2013-11-25 14:01:37 +00:00
Coen Jacobs c1a439eb99 Formatting functions woocommerce to wc refactor 2013-11-25 14:34:21 +01:00
Coen Jacobs aaa14894ca Core functions woocommerce to wc refactor 2013-11-25 13:45:04 +01:00
Coen Jacobs 8978f75f36 Remove safety net for calling WC_Product directly #4194 2013-11-25 09:25:45 +01:00
Andrew Benbow 0f29761268 Bracing 2013-11-25 09:02:51 +01:00
Scott Basgaard faf64a4d96 Product->get_title() should be raw format by default. Pass at #4124 2013-11-18 16:03:32 +01:00
Mike Jolley a957248a4d woocommerce_product_gallery_attachment_ids filter Closes #4113 2013-11-18 12:40:58 +00:00
Mike Jolley d7ee32b18a Consistant naming with core 2013-11-14 09:48:41 +00:00
Mike Jolley 02c47b2723 get_related wpdb query Closes #4086 2013-11-13 18:00:01 +00:00
Mike Jolley 2b57114a12 WC() > $woocommerce 2013-11-13 16:59:42 +00:00
Mike Jolley 19c3ab7172 calc_tax functions 2013-10-24 16:16:39 +01:00
Mike Jolley ef49977905 add_to_cart_url add_to_cart_text and single_add_to_cart_text class methods allowing greater control with custom classes.
Closes #3484 and Closes #3143. Pinging @thenbrent as the handler was
originally his idea and I've killed it.

@helgatheviking In 2.1, add to cart URLs will only be used in loops, so
conditonal logic should no longer be neccessary. Single templates post
to themselves without the need for the URL.
2013-09-25 12:35:06 +01:00
Mike Jolley c58d5d5ea4 is_in_stock uses notify_no_stock_amount option. Closes #3446. 2013-09-24 13:31:15 +01:00