Commit Graph

351 Commits

Author SHA1 Message Date
Ari-Pekka Koponen 11ab216993 WC_Product __get should check for False instead of empty 2015-10-28 12:45:54 +02:00
Mike Jolley dda0f0c2bd Check for existence of global attribute when you get_attributes() for a product
Fixes #9141
2015-10-08 13:55:01 +01:00
Mike Jolley 0c56fe0844 Merge pull request #9149 from JeroenSormani/stock-changes
Add get_stock_quantity filter
2015-09-17 10:57:47 +01:00
JeroenSormani cb75a1e8af Add get_stock_quantity filter 2015-09-17 10:19:04 +02:00
Mike Jolley 0830543c4f Add disclaimer to woocommerce_adjust_non_base_location_prices 2015-09-15 16:01:11 +01:00
Mike Jolley 4959937689 Merge branch 'universal-pricing-test' 2015-09-15 15:57:04 +01:00
James Koster 8eebc7c900 Free is an amount!
All product prices are wrapped in `span class=“amount”`. To make
themers lives easier let’s be consistent. When the product is free the
price should still be wrapped.
2015-09-04 11:19:52 +01:00
Mike Jolley d90d562b42 Leave excl function alone 2015-09-04 10:57:22 +01:00
Mike Jolley e08f8d8902 Apply woocommerce_adjust_non_base_location_prices to all prices 2015-09-04 10:48:50 +01:00
Mike Jolley afd0e9edd4 Pass $this to filters
#8722
2015-08-05 13:49:27 +01:00
Nicola Mustone 9822edda0b better naming 2015-08-05 13:54:20 +02:00
Nicola Mustone 9140ca0f76 added cross and up sells IDs filters 2015-08-05 11:01:47 +02:00
Mike Jolley 794af1c013 When the stock level is changed via update_post_meta ensure the stock_status is kept in sync
Closes #8605
2015-07-27 19:04:08 +01:00
Claudio Sanches 9e41552342 Removed all "@return void" 2015-07-16 16:55:48 -03:00
Mike Jolley f42fa85eab Variation tax status should always come from parent 2015-07-15 19:12:12 +01:00
Justin Shreve eb85cd1682 Add $price and $qty to get_price_suffix so custom values can be passed into get_price_including_tax and get_price_excluding_tax 2015-06-29 19:24:48 +00:00
Mike Jolley bb4c303c39 get_type has no args 2015-06-08 12:22:26 +01:00
Mike Jolley 3c87e39ce6 Product get_type() method 2015-06-08 12:20:39 +01:00
Mike Jolley 28d838c5cd [2.3] Related posts tweaks
Remove real randomness and add transient caching to improve performance.

The above was not worth the cost of the query - only users refreshing a
product page would see a difference.
2015-05-25 15:40:28 +01:00
Mike Jolley b8bcd24edd [2.3] Combine transients for get_rating_count
@claudiosmweb
2015-05-25 02:00:20 +01:00
Mike Jolley 1b73322874 [2.3] Replace max_related_posts_query with wp_count_posts 2015-05-25 01:20:31 +01:00
Mike Jolley c6dae2b286 Merge pull request #7834 from SiR-DanieL/scrutinizer-issues
Small tweaks and style fixes
2015-03-30 10:33:27 +01:00
Nicola Mustone 95cdb0390f fix related products error 2015-03-27 17:52:21 +01:00
Nicola Mustone 214a0b669f splitted get_related for complexity 2015-03-27 17:28:26 +01:00
Nicola Mustone d2af01df5b scrutinizer suggested tweaks 2015-03-27 16:15:40 +01:00
Mike Jolley ca934ba0d9 Add get methods for length, width, height and add filters
Closes #7617
2015-03-24 16:52:26 +00:00
Mike Jolley f04ebeb78e has_enough_stock - use get_stock_quantity
Closes #7779
2015-03-20 10:40:53 +00:00
Mike Jolley fa0be55b01 transient cache dashboard reports
Closes #7641
2015-03-09 11:07:49 +00:00
Tanel Jüris fe60425eeb Rename filter prefix from wc_ to woocommerce_ 2015-03-02 12:09:24 +02:00
Tanel Jüris d9a568bbea Apply filters to product/tag terms when querying related products 2015-02-25 16:02:31 +02:00
Mike Jolley d9455994c8 Use 30 days instead of year for transients to avoid bugs in memcache plugins.
Closes #7520
2015-02-24 12:02:56 +00:00
Mike Jolley 6c9562112f Fix Related post offset. 2015-02-20 16:17:45 +00:00
Mike Jolley 44cf2c2b70 Filter before max_related_posts 2015-02-16 16:48:11 +00:00
Mike Jolley 5c1a0d92e8 Related posts - replace ORDER BY RAND() with random offset.
Closes #7436
2015-02-16 13:16:18 +00:00
Mike Jolley 969e2d3b18 Stock status when updating out of stock product.
Fixes #7402
2015-02-16 12:14:10 +00:00
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
Mike Jolley 06ef44c9df Pass args to variation forms from cart page. Closes #3568 2013-09-23 15:47:47 +01:00
Mike Jolley 71cb94ebfa Simpler tax rate check which Closes #3813
Could do with some more testing @ChromeOrange, and applying to .15 if
ok @coen
2013-09-23 12:44:15 +01:00
Mike Jolley 96a7a4b730 Restructure 'file_paths' to allow for names (Closes #3320) etc. For #2765.
@coenjacobs @justinstern @maxrice These are major changes - CC ing you
guys in to take a quick look through. I know some extensions such as
vouchers will be affected.
2013-09-20 17:01:09 +01:00
Mike Jolley b93df4e706 Excl and incl. display options for prices, and suffix to add additonal info and prices. Closes #1506. 2013-09-19 16:31:54 +01:00
Mike Jolley b883e92ba1 Fix from .14 2013-09-05 14:52:34 +01:00
Mike Jolley ffa53754ac get_categories returns string Closes #3720 2013-09-04 14:57:12 +01:00
Mike Jolley 3d078397b3 Merge branch 'Re-organise-settings'
Moves settings together. Fixes #3497
2013-08-22 11:58:03 +01:00
Mike Jolley 9ce810fdcf Needs shipping filter 2013-08-14 10:53:08 +01:00
Mike Jolley d021980c10 Rather than have hooks *everywhere* use a single set stock function in admin and on the frontend Closes #3593 2013-08-13 16:56:09 +01:00
Mike Jolley 57157db9bf Function refactoring. 2013-08-09 17:11:21 +01:00
Illimar Tambek 27ed699ea7 Prefix stock hooks with product_ 2013-08-01 15:09:15 +03:00
Illimar Tambek 40ee077624 Add woocommerce_set_stock, woocommerce_increase_stock and woocommerce_reduce_stock action hooks 2013-08-01 15:06:26 +03:00
Mike Jolley 805a9e617c Use get_price and introduce get_regular and get_sale_price methods. Closes #3427 2013-07-23 11:29:04 +01:00
Mike Jolley a9569ccd6f Only allow those who can edit the post to add drafts to cart. For testing. Closes #3381 2013-06-28 11:14:21 +01:00
Mike Jolley f87505b445 Rounding tweaks 2013-06-13 17:01:47 +01:00
Mike Jolley c75ea04c1c classes -> includes 2013-06-11 14:25:30 +01:00