From d14615a6f7ca51c7f7276dc31f4b8cc01180a9dd Mon Sep 17 00:00:00 2001
From: Claudio Sanches
Date: Wed, 21 Mar 2018 19:40:47 -0300
Subject: [PATCH 01/21] Fixed includes/class-wc-payment-gateways.php PHPCS
violations
---
includes/class-wc-payment-gateways.php | 59 ++++++++++++++------------
1 file changed, 32 insertions(+), 27 deletions(-)
diff --git a/includes/class-wc-payment-gateways.php b/includes/class-wc-payment-gateways.php
index 8127f3134ad..0d75bf2f46c 100644
--- a/includes/class-wc-payment-gateways.php
+++ b/includes/class-wc-payment-gateways.php
@@ -1,28 +1,32 @@
countries->get_base_country(), apply_filters( 'woocommerce_gateway_simplify_commerce_supported_countries', array( 'US', 'IE' ) ) ) ) {
+ if ( ! class_exists( 'WC_Gateway_Simplify_Commerce_Loader' ) && in_array( WC()->countries->get_base_country(), apply_filters( 'woocommerce_gateway_simplify_commerce_supported_countries', array( 'US', 'IE' ) ), true ) ) {
$simplify_options = get_option( 'woocommerce_simplify_commerce_settings', array() );
if ( ! empty( $simplify_options['enabled'] ) && 'yes' === $simplify_options['enabled'] ) {
@@ -93,22 +96,22 @@ class WC_Payment_Gateways {
}
}
- // Filter
+ // Filter.
$load_gateways = apply_filters( 'woocommerce_payment_gateways', $load_gateways );
- // Get sort order option
+ // Get sort order option.
$ordering = (array) get_option( 'woocommerce_gateway_order' );
$order_end = 999;
- // Load gateways in order
+ // Load gateways in order.
foreach ( $load_gateways as $gateway ) {
$load_gateway = is_string( $gateway ) ? new $gateway() : $gateway;
if ( isset( $ordering[ $load_gateway->id ] ) && is_numeric( $ordering[ $load_gateway->id ] ) ) {
- // Add in position
+ // Add in .
$this->payment_gateways[ $ordering[ $load_gateway->id ] ] = $load_gateway;
} else {
- // Add to end of the array
+ // Add to end of the array.
$this->payment_gateways[ $order_end ] = $load_gateway;
$order_end++;
}
@@ -119,12 +122,13 @@ class WC_Payment_Gateways {
/**
* Get gateways.
+ *
* @return array
*/
public function payment_gateways() {
$_available_gateways = array();
- if ( sizeof( $this->payment_gateways ) > 0 ) {
+ if ( count( $this->payment_gateways ) > 0 ) {
foreach ( $this->payment_gateways as $gateway ) {
$_available_gateways[ $gateway->id ] = $gateway;
}
@@ -135,6 +139,7 @@ class WC_Payment_Gateways {
/**
* Get array of registered gateway ids
+ *
* @since 2.6.0
* @return array of strings
*/
@@ -169,7 +174,7 @@ class WC_Payment_Gateways {
* @param array $gateways Available payment gateways.
*/
public function set_current_gateway( $gateways ) {
- // Be on the defensive
+ // Be on the defensive.
if ( ! is_array( $gateways ) || empty( $gateways ) ) {
return;
}
@@ -190,7 +195,7 @@ class WC_Payment_Gateways {
$current_gateway = current( $gateways );
}
- // Ensure we can make a call to set_current() without triggering an error
+ // Ensure we can make a call to set_current() without triggering an error.
if ( $current_gateway && is_callable( array( $current_gateway, 'set_current' ) ) ) {
$current_gateway->set_current();
}
@@ -200,10 +205,10 @@ class WC_Payment_Gateways {
* Save options in admin.
*/
public function process_admin_options() {
- $gateway_order = isset( $_POST['gateway_order'] ) ? $_POST['gateway_order'] : '';
+ $gateway_order = isset( $_POST['gateway_order'] ) ? wc_clean( wp_unslash( $_POST['gateway_order'] ) ) : ''; // WPCS: input var ok, CSRF ok.
$order = array();
- if ( is_array( $gateway_order ) && sizeof( $gateway_order ) > 0 ) {
+ if ( is_array( $gateway_order ) && count( $gateway_order ) > 0 ) {
$loop = 0;
foreach ( $gateway_order as $gateway_id ) {
$order[ esc_attr( $gateway_id ) ] = $loop;
From 72d0b448f618da920015c4272a0456c1993ba66a Mon Sep 17 00:00:00 2001
From: Claudio Sanches
Date: Wed, 21 Mar 2018 19:45:27 -0300
Subject: [PATCH 02/21] Fixed includes/class-wc-payment-tokens.php PHPCS
violations
---
includes/class-wc-payment-tokens.php | 100 +++++++++++++++------------
1 file changed, 56 insertions(+), 44 deletions(-)
diff --git a/includes/class-wc-payment-tokens.php b/includes/class-wc-payment-tokens.php
index 546c598b8cc..0f1ffb20fa0 100644
--- a/includes/class-wc-payment-tokens.php
+++ b/includes/class-wc-payment-tokens.php
@@ -1,19 +1,18 @@
'',
- 'user_id' => '',
- 'gateway_id' => '',
- 'type' => '',
- ) );
+ $args = wp_parse_args(
+ $args, array(
+ 'token_id' => '',
+ 'user_id' => '',
+ 'gateway_id' => '',
+ 'type' => '',
+ )
+ );
$data_store = WC_Data_Store::load( 'payment-token' );
$token_results = $data_store->get_tokens( $args );
@@ -52,19 +60,21 @@ class WC_Payment_Tokens {
* Returns an array of payment token objects associated with the passed customer ID.
*
* @since 2.6.0
- * @param int $customer_id Customer ID
- * @param string $gateway_id Optional Gateway ID for getting tokens for a specific gateway
- * @return array Array of token objects
+ * @param int $customer_id Customer ID.
+ * @param string $gateway_id Optional Gateway ID for getting tokens for a specific gateway.
+ * @return array Array of token objects.
*/
public static function get_customer_tokens( $customer_id, $gateway_id = '' ) {
if ( $customer_id < 1 ) {
return array();
}
- $tokens = self::get_tokens( array(
- 'user_id' => $customer_id,
- 'gateway_id' => $gateway_id,
- ) );
+ $tokens = self::get_tokens(
+ array(
+ 'user_id' => $customer_id,
+ 'gateway_id' => $gateway_id,
+ )
+ );
return apply_filters( 'woocommerce_get_customer_payment_tokens', $tokens, $customer_id, $gateway_id );
}
@@ -72,8 +82,8 @@ class WC_Payment_Tokens {
/**
* Returns a customers default token or NULL if there is no default token.
*
- * @since 2.6.0
- * @param int $customer_id
+ * @since 2.6.0
+ * @param int $customer_id Customer ID.
* @return WC_Payment_Token|null
*/
public static function get_customer_default_token( $customer_id ) {
@@ -95,8 +105,8 @@ class WC_Payment_Tokens {
* Returns an array of payment token objects associated with the passed order ID.
*
* @since 2.6.0
- * @param int $order_id Order ID
- * @return array Array of token objects
+ * @param int $order_id Order ID.
+ * @return array Array of token objects.
*/
public static function get_order_tokens( $order_id ) {
$order = wc_get_order( $order_id );
@@ -111,9 +121,11 @@ class WC_Payment_Tokens {
return array();
}
- $tokens = self::get_tokens( array(
- 'token_id' => $token_ids,
- ) );
+ $tokens = self::get_tokens(
+ array(
+ 'token_id' => $token_ids,
+ )
+ );
return apply_filters( 'woocommerce_get_order_payment_tokens', $tokens, $order_id );
}
@@ -123,17 +135,16 @@ class WC_Payment_Tokens {
*
* @since 2.6.0
*
- * @param int $token_id Token ID
- * @param object $token_result
- *
- * @return null|WC_Payment_Token Returns a valid payment token or null if no token can be found
+ * @param int $token_id Token ID.
+ * @param object $token_result Token result.
+ * @return null|WC_Payment_Token Returns a valid payment token or null if no token can be found.
*/
public static function get( $token_id, $token_result = null ) {
$data_store = WC_Data_Store::load( 'payment-token' );
if ( is_null( $token_result ) ) {
$token_result = $data_store->get_token_by_id( $token_id );
- // Still empty? Token doesn't exist? Don't continue
+ // Still empty? Token doesn't exist? Don't continue.
if ( empty( $token_result ) ) {
return null;
}
@@ -142,7 +153,7 @@ class WC_Payment_Tokens {
$token_class = 'WC_Payment_Token_' . $token_result->type;
if ( class_exists( $token_class ) ) {
- $meta = $data_store->get_metadata( $token_id );
+ $meta = $data_store->get_metadata( $token_id );
$passed_meta = array();
if ( ! empty( $meta ) ) {
foreach ( $meta as $meta_key => $meta_value ) {
@@ -157,8 +168,9 @@ class WC_Payment_Tokens {
/**
* Remove a payment token from the database by ID.
+ *
* @since 2.6.0
- * @param WC_Payment_Token $token_id Token ID
+ * @param WC_Payment_Token $token_id Token ID.
*/
public static function delete( $token_id ) {
$type = self::get_token_type_by_id( $token_id );
@@ -173,8 +185,8 @@ class WC_Payment_Tokens {
* Loops through all of a users payment tokens and sets is_default to false for all but a specific token.
*
* @since 2.6.0
- * @param int $user_id User to set a default for
- * @param int $token_id The ID of the token that should be default
+ * @param int $user_id User to set a default for.
+ * @param int $token_id The ID of the token that should be default.
*/
public static function set_users_default( $user_id, $token_id ) {
$data_store = WC_Data_Store::load( 'payment-token' );
@@ -192,9 +204,9 @@ class WC_Payment_Tokens {
/**
* Returns what type (credit card, echeck, etc) of token a token is by ID.
*
- * @since 2.6.0
- * @param int $token_id Token ID
- * @return string Type
+ * @since 2.6.0
+ * @param int $token_id Token ID.
+ * @return string Type.
*/
public static function get_token_type_by_id( $token_id ) {
$data_store = WC_Data_Store::load( 'payment-token' );
From 0660a50e07815547085eb04494aed14fc1e2ac64 Mon Sep 17 00:00:00 2001
From: Claudio Sanches
Date: Wed, 21 Mar 2018 19:57:10 -0300
Subject: [PATCH 03/21] Removed obvious boolean results
---
includes/abstracts/abstract-wc-order.php | 2 +-
includes/abstracts/abstract-wc-payment-gateway.php | 4 ++--
includes/abstracts/abstract-wc-product.php | 4 ++--
includes/api/class-wc-rest-system-status-controller.php | 2 +-
includes/api/legacy/v1/class-wc-api-orders.php | 2 +-
includes/api/legacy/v2/class-wc-api-orders.php | 2 +-
includes/api/legacy/v3/class-wc-api-orders.php | 2 +-
includes/class-wc-tax.php | 2 +-
includes/cli/class-wc-cli-runner.php | 2 +-
includes/gateways/cod/class-wc-gateway-cod.php | 2 +-
includes/legacy/class-wc-legacy-coupon.php | 2 +-
includes/shortcodes/class-wc-shortcode-checkout.php | 2 +-
includes/wc-conditional-functions.php | 2 +-
includes/wc-template-functions.php | 2 +-
14 files changed, 16 insertions(+), 16 deletions(-)
diff --git a/includes/abstracts/abstract-wc-order.php b/includes/abstracts/abstract-wc-order.php
index 557548d8b8b..8bcc2d7e83f 100644
--- a/includes/abstracts/abstract-wc-order.php
+++ b/includes/abstracts/abstract-wc-order.php
@@ -1876,7 +1876,7 @@ abstract class WC_Abstract_Order extends WC_Abstract_Legacy_Order {
* @return bool
*/
public function has_status( $status ) {
- return apply_filters( 'woocommerce_order_has_status', ( is_array( $status ) && in_array( $this->get_status(), $status, true ) ) || $this->get_status() === $status ? true : false, $this, $status );
+ return apply_filters( 'woocommerce_order_has_status', ( is_array( $status ) && in_array( $this->get_status(), $status, true ) ) || $this->get_status() === $status, $this, $status );
}
/**
diff --git a/includes/abstracts/abstract-wc-payment-gateway.php b/includes/abstracts/abstract-wc-payment-gateway.php
index f8ae77abaa7..1a175a8ecb9 100644
--- a/includes/abstracts/abstract-wc-payment-gateway.php
+++ b/includes/abstracts/abstract-wc-payment-gateway.php
@@ -273,7 +273,7 @@ abstract class WC_Payment_Gateway extends WC_Settings_API {
* @return bool
*/
public function has_fields() {
- return $this->has_fields ? true : false;
+ return (bool) $this->has_fields;
}
/**
@@ -385,7 +385,7 @@ abstract class WC_Payment_Gateway extends WC_Settings_API {
* @since 1.5.7
*/
public function supports( $feature ) {
- return apply_filters( 'woocommerce_payment_gateway_supports', in_array( $feature, $this->supports ) ? true : false, $feature, $this );
+ return apply_filters( 'woocommerce_payment_gateway_supports', in_array( $feature, $this->supports ), $feature, $this );
}
/**
diff --git a/includes/abstracts/abstract-wc-product.php b/includes/abstracts/abstract-wc-product.php
index 86bc9040f55..5fe522d1c5a 100644
--- a/includes/abstracts/abstract-wc-product.php
+++ b/includes/abstracts/abstract-wc-product.php
@@ -1360,7 +1360,7 @@ class WC_Product extends WC_Abstract_Legacy_Product {
* @since 2.5.0
*/
public function supports( $feature ) {
- return apply_filters( 'woocommerce_product_supports', in_array( $feature, $this->supports ) ? true : false, $feature, $this );
+ return apply_filters( 'woocommerce_product_supports', in_array( $feature, $this->supports ), $feature, $this );
}
/**
@@ -1577,7 +1577,7 @@ class WC_Product extends WC_Abstract_Legacy_Product {
return true;
}
- return $this->managing_stock() && $this->backorders_allowed() && ( $this->get_stock_quantity() - $qty_in_cart ) < 0 ? true : false;
+ return $this->managing_stock() && $this->backorders_allowed() && ( $this->get_stock_quantity() - $qty_in_cart ) < 0;
}
/**
diff --git a/includes/api/class-wc-rest-system-status-controller.php b/includes/api/class-wc-rest-system-status-controller.php
index fbe88042936..4404f4f11d6 100644
--- a/includes/api/class-wc-rest-system-status-controller.php
+++ b/includes/api/class-wc-rest-system-status-controller.php
@@ -603,7 +603,7 @@ class WC_REST_System_Status_Controller extends WC_REST_Controller {
'site_url' => get_option( 'siteurl' ),
'version' => WC()->version,
'log_directory' => WC_LOG_DIR,
- 'log_directory_writable' => ( @fopen( WC_LOG_DIR . 'test-log.log', 'a' ) ? true : false ),
+ 'log_directory_writable' => (bool) @fopen( WC_LOG_DIR . 'test-log.log', 'a' ),
'wp_version' => get_bloginfo( 'version' ),
'wp_multisite' => is_multisite(),
'wp_memory_limit' => $wp_memory_limit,
diff --git a/includes/api/legacy/v1/class-wc-api-orders.php b/includes/api/legacy/v1/class-wc-api-orders.php
index 2129f832eea..c4a391d5bdb 100644
--- a/includes/api/legacy/v1/class-wc-api-orders.php
+++ b/includes/api/legacy/v1/class-wc-api-orders.php
@@ -337,7 +337,7 @@ class WC_API_Orders extends WC_API_Resource {
'id' => $note->comment_ID,
'created_at' => $this->server->format_datetime( $note->comment_date_gmt ),
'note' => $note->comment_content,
- 'customer_note' => get_comment_meta( $note->comment_ID, 'is_customer_note', true ) ? true : false,
+ 'customer_note' => (bool) get_comment_meta( $note->comment_ID, 'is_customer_note', true ),
);
}
diff --git a/includes/api/legacy/v2/class-wc-api-orders.php b/includes/api/legacy/v2/class-wc-api-orders.php
index 1ad7dca9450..328f6b5be43 100644
--- a/includes/api/legacy/v2/class-wc-api-orders.php
+++ b/includes/api/legacy/v2/class-wc-api-orders.php
@@ -1269,7 +1269,7 @@ class WC_API_Orders extends WC_API_Resource {
'id' => $note->comment_ID,
'created_at' => $this->server->format_datetime( $note->comment_date_gmt ),
'note' => $note->comment_content,
- 'customer_note' => get_comment_meta( $note->comment_ID, 'is_customer_note', true ) ? true : false,
+ 'customer_note' => (bool) get_comment_meta( $note->comment_ID, 'is_customer_note', true ),
);
return array( 'order_note' => apply_filters( 'woocommerce_api_order_note_response', $order_note, $id, $fields, $note, $order_id, $this ) );
diff --git a/includes/api/legacy/v3/class-wc-api-orders.php b/includes/api/legacy/v3/class-wc-api-orders.php
index ec76b6c76bf..5d30676b02e 100644
--- a/includes/api/legacy/v3/class-wc-api-orders.php
+++ b/includes/api/legacy/v3/class-wc-api-orders.php
@@ -1316,7 +1316,7 @@ class WC_API_Orders extends WC_API_Resource {
'id' => $note->comment_ID,
'created_at' => $this->server->format_datetime( $note->comment_date_gmt ),
'note' => $note->comment_content,
- 'customer_note' => get_comment_meta( $note->comment_ID, 'is_customer_note', true ) ? true : false,
+ 'customer_note' => (bool) get_comment_meta( $note->comment_ID, 'is_customer_note', true ),
);
return array( 'order_note' => apply_filters( 'woocommerce_api_order_note_response', $order_note, $id, $fields, $note, $order_id, $this ) );
diff --git a/includes/class-wc-tax.php b/includes/class-wc-tax.php
index f31a2d4aa99..273e8edb265 100644
--- a/includes/class-wc-tax.php
+++ b/includes/class-wc-tax.php
@@ -603,7 +603,7 @@ class WC_Tax {
$compound = $key_or_rate->tax_rate_compound;
} else {
$key = $key_or_rate;
- $compound = $wpdb->get_var( $wpdb->prepare( "SELECT tax_rate_compound FROM {$wpdb->prefix}woocommerce_tax_rates WHERE tax_rate_id = %s", $key ) ) ? true : false;
+ $compound = (bool) $wpdb->get_var( $wpdb->prepare( "SELECT tax_rate_compound FROM {$wpdb->prefix}woocommerce_tax_rates WHERE tax_rate_id = %s", $key ) );
}
return (bool) apply_filters( 'woocommerce_rate_compound', $compound, $key );
diff --git a/includes/cli/class-wc-cli-runner.php b/includes/cli/class-wc-cli-runner.php
index 9fc90d883e7..a4194b8139b 100644
--- a/includes/cli/class-wc-cli-runner.php
+++ b/includes/cli/class-wc-cli-runner.php
@@ -181,7 +181,7 @@ class WC_CLI_Runner {
'name' => $name,
'type' => 'assoc',
'description' => ! empty( $args['description'] ) ? $args['description'] : '',
- 'optional' => empty( $args['required'] ) ? true : false,
+ 'optional' => empty( $args['required'] ),
);
}
}
diff --git a/includes/gateways/cod/class-wc-gateway-cod.php b/includes/gateways/cod/class-wc-gateway-cod.php
index 06c594a941e..a51e69976cd 100644
--- a/includes/gateways/cod/class-wc-gateway-cod.php
+++ b/includes/gateways/cod/class-wc-gateway-cod.php
@@ -37,7 +37,7 @@ class WC_Gateway_COD extends WC_Payment_Gateway {
$this->description = $this->get_option( 'description' );
$this->instructions = $this->get_option( 'instructions' );
$this->enable_for_methods = $this->get_option( 'enable_for_methods', array() );
- $this->enable_for_virtual = $this->get_option( 'enable_for_virtual', 'yes' ) === 'yes' ? true : false;
+ $this->enable_for_virtual = $this->get_option( 'enable_for_virtual', 'yes' ) === 'yes';
add_action( 'woocommerce_update_options_payment_gateways_' . $this->id, array( $this, 'process_admin_options' ) );
add_action( 'woocommerce_thankyou_' . $this->id, array( $this, 'thankyou_page' ) );
diff --git a/includes/legacy/class-wc-legacy-coupon.php b/includes/legacy/class-wc-legacy-coupon.php
index 91c5fd893ee..cad0fc1fdb1 100644
--- a/includes/legacy/class-wc-legacy-coupon.php
+++ b/includes/legacy/class-wc-legacy-coupon.php
@@ -65,7 +65,7 @@ abstract class WC_Legacy_Coupon extends WC_Data {
$value = $this->get_id();
break;
case 'exists' :
- $value = ( $this->get_id() > 0 ) ? true : false;
+ $value = $this->get_id() > 0;
break;
case 'coupon_custom_fields' :
$legacy_custom_fields = array();
diff --git a/includes/shortcodes/class-wc-shortcode-checkout.php b/includes/shortcodes/class-wc-shortcode-checkout.php
index 2289d325477..5a4fe2eb334 100644
--- a/includes/shortcodes/class-wc-shortcode-checkout.php
+++ b/includes/shortcodes/class-wc-shortcode-checkout.php
@@ -241,7 +241,7 @@ class WC_Shortcode_Checkout {
} else {
- $non_js_checkout = ! empty( $_POST['woocommerce_checkout_update_totals'] ) ? true : false; // WPCS: input var ok, CSRF ok.
+ $non_js_checkout = ! empty( $_POST['woocommerce_checkout_update_totals'] ); // WPCS: input var ok, CSRF ok.
if ( wc_notice_count( 'error' ) === 0 && $non_js_checkout ) {
wc_add_notice( __( 'The order totals have been updated. Please confirm your order by pressing the "Place order" button at the bottom of the page.', 'woocommerce' ) );
diff --git a/includes/wc-conditional-functions.php b/includes/wc-conditional-functions.php
index 0742e2fc1c8..630e5349c91 100644
--- a/includes/wc-conditional-functions.php
+++ b/includes/wc-conditional-functions.php
@@ -18,7 +18,7 @@ if ( ! defined( 'ABSPATH' ) ) {
* @return bool
*/
function is_woocommerce() {
- return apply_filters( 'is_woocommerce', ( is_shop() || is_product_taxonomy() || is_product() ) ? true : false );
+ return apply_filters( 'is_woocommerce', is_shop() || is_product_taxonomy() || is_product() );
}
if ( ! function_exists( 'is_shop' ) ) {
diff --git a/includes/wc-template-functions.php b/includes/wc-template-functions.php
index a0be45b1172..617499ab525 100644
--- a/includes/wc-template-functions.php
+++ b/includes/wc-template-functions.php
@@ -2456,7 +2456,7 @@ if ( ! function_exists( 'wc_dropdown_variation_attribute_options' ) ) {
$name = $args['name'] ? $args['name'] : 'attribute_' . sanitize_title( $attribute );
$id = $args['id'] ? $args['id'] : sanitize_title( $attribute );
$class = $args['class'];
- $show_option_none = $args['show_option_none'] ? true : false;
+ $show_option_none = (bool) $args['show_option_none'];
$show_option_none_text = $args['show_option_none'] ? $args['show_option_none'] : __( 'Choose an option', 'woocommerce' ); // We'll do our best to hide the placeholder, but we'll need to show something when resetting options.
if ( empty( $options ) && ! empty( $product ) && ! empty( $attribute ) ) {
From b0617a13c4ddba13559eaac1f295c9622b333523 Mon Sep 17 00:00:00 2001
From: Claudio Sanches
Date: Wed, 21 Mar 2018 20:05:19 -0300
Subject: [PATCH 04/21] Removed unnecessary ternary operators
---
includes/abstracts/class-wc-background-process.php | 2 +-
includes/api/legacy/v2/class-wc-api-products.php | 2 +-
includes/api/legacy/v3/class-wc-api-products.php | 2 +-
includes/api/v1/class-wc-rest-products-controller.php | 2 +-
includes/libraries/wp-background-process.php | 2 +-
5 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/includes/abstracts/class-wc-background-process.php b/includes/abstracts/class-wc-background-process.php
index 53d604e280f..d6513632c44 100644
--- a/includes/abstracts/class-wc-background-process.php
+++ b/includes/abstracts/class-wc-background-process.php
@@ -43,7 +43,7 @@ abstract class WC_Background_Process extends WP_Background_Process {
$count = $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(*) FROM {$table} WHERE {$column} LIKE %s", $key ) ); // @codingStandardsIgnoreLine.
- return ( $count > 0 ) ? false : true;
+ return ! ( $count > 0 );
}
/**
diff --git a/includes/api/legacy/v2/class-wc-api-products.php b/includes/api/legacy/v2/class-wc-api-products.php
index 34b10c681f4..59f07d4da2f 100644
--- a/includes/api/legacy/v2/class-wc-api-products.php
+++ b/includes/api/legacy/v2/class-wc-api-products.php
@@ -440,7 +440,7 @@ class WC_API_Products extends WC_API_Resource {
}
$product->delete( true );
- $result = $product->get_id() > 0 ? false : true;
+ $result = ! ( $product->get_id() > 0 );
} else {
$product->delete();
$result = 'trash' === $product->get_status();
diff --git a/includes/api/legacy/v3/class-wc-api-products.php b/includes/api/legacy/v3/class-wc-api-products.php
index c26f0b30bc6..fb663565df4 100644
--- a/includes/api/legacy/v3/class-wc-api-products.php
+++ b/includes/api/legacy/v3/class-wc-api-products.php
@@ -499,7 +499,7 @@ class WC_API_Products extends WC_API_Resource {
}
$product->delete( true );
- $result = $product->get_id() > 0 ? false : true;
+ $result = ! ( $product->get_id() > 0 );
} else {
$product->delete();
$result = 'trash' === $product->get_status();
diff --git a/includes/api/v1/class-wc-rest-products-controller.php b/includes/api/v1/class-wc-rest-products-controller.php
index 18de1e373a8..137ebca40d9 100644
--- a/includes/api/v1/class-wc-rest-products-controller.php
+++ b/includes/api/v1/class-wc-rest-products-controller.php
@@ -1675,7 +1675,7 @@ class WC_REST_Products_V1_Controller extends WC_REST_Posts_Controller {
}
$product->delete( true );
- $result = $product->get_id() > 0 ? false : true;
+ $result = ! ( $product->get_id() > 0 );
} else {
// If we don't support trashing for this type, error out.
if ( ! $supports_trash ) {
diff --git a/includes/libraries/wp-background-process.php b/includes/libraries/wp-background-process.php
index 7f91443bcd3..53d701ed66a 100644
--- a/includes/libraries/wp-background-process.php
+++ b/includes/libraries/wp-background-process.php
@@ -201,7 +201,7 @@ abstract class WP_Background_Process extends WP_Async_Request {
WHERE {$column} LIKE %s
", $key ) );
- return ( $count > 0 ) ? false : true;
+ return ! ( $count > 0 );
}
/**
From ce8033ddf67440626ab20921291cf518037ff445 Mon Sep 17 00:00:00 2001
From: Claudio Sanches
Date: Wed, 21 Mar 2018 20:44:35 -0300
Subject: [PATCH 05/21] Fixed includes/class-wc-post-data.php PHPCS violations
---
includes/class-wc-post-data.php | 214 +++++++++++++++++---------------
1 file changed, 112 insertions(+), 102 deletions(-)
diff --git a/includes/class-wc-post-data.php b/includes/class-wc-post-data.php
index 6659d1c1df1..36085196caa 100644
--- a/includes/class-wc-post-data.php
+++ b/includes/class-wc-post-data.php
@@ -1,19 +1,17 @@
ID, $post->post_type ) && 'product_variation' === $post->post_type && ( $variation = wc_get_product( $post->ID ) ) && $variation->get_parent_id() ) {
- return $variation->get_permalink();
+ if ( isset( $post->ID, $post->post_type ) && 'product_variation' === $post->post_type ) {
+ $variation = wc_get_product( $post->ID );
+
+ if ( $variation && $variation->get_parent_id() ) {
+ return $variation->get_permalink();
+ }
}
return $permalink;
}
@@ -85,7 +87,8 @@ class WC_Post_Data {
/**
* Sync a product.
- * @param int $product_id
+ *
+ * @param int $product_id Product ID.
*/
public static function deferred_product_sync( $product_id ) {
$product = wc_get_product( $product_id );
@@ -98,18 +101,18 @@ class WC_Post_Data {
/**
* Delete transients when terms are set.
*
- * @param int $object_id
- * @param mixed $terms
- * @param array $tt_ids
- * @param string $taxonomy
- * @param mixed $append
- * @param array $old_tt_ids
+ * @param int $object_id Object ID.
+ * @param mixed $terms An array of object terms.
+ * @param array $tt_ids An array of term taxonomy IDs.
+ * @param string $taxonomy Taxonomy slug.
+ * @param mixed $append Whether to append new terms to the old terms.
+ * @param array $old_tt_ids Old array of term taxonomy IDs.
*/
public static function set_object_terms( $object_id, $terms, $tt_ids, $taxonomy, $append, $old_tt_ids ) {
foreach ( array_merge( $tt_ids, $old_tt_ids ) as $id ) {
delete_transient( 'wc_ln_count_' . md5( sanitize_key( $taxonomy ) . sanitize_key( $id ) ) );
}
- if ( in_array( get_post_type( $object_id ), array( 'product', 'product_variation' ) ) ) {
+ if ( in_array( get_post_type( $object_id ), array( 'product', 'product_variation' ), true ) ) {
self::delete_product_query_transients();
}
}
@@ -117,12 +120,12 @@ class WC_Post_Data {
/**
* When a post status changes.
*
- * @param string $new_status
- * @param string $old_status
- * @param object $post
+ * @param string $new_status New status.
+ * @param string $old_status Old status.
+ * @param WP_Post $post Post data.
*/
public static function transition_post_status( $new_status, $old_status, $post ) {
- if ( ( 'publish' === $new_status || 'publish' === $old_status ) && in_array( $post->post_type, array( 'product', 'product_variation' ) ) ) {
+ if ( ( 'publish' === $new_status || 'publish' === $old_status ) && in_array( $post->post_type, array( 'product', 'product_variation' ), true ) ) {
self::delete_product_query_transients();
}
}
@@ -131,20 +134,22 @@ class WC_Post_Data {
* Delete product view transients when needed e.g. when post status changes, or visibility/stock status is modified.
*/
public static function delete_product_query_transients() {
- // Increments the transient version to invalidate cache
+ // Increments the transient version to invalidate cache.
WC_Cache_Helper::get_transient_version( 'product_query', true );
- // If not using an external caching system, we can clear the transients out manually and avoid filling our DB
+ // If not using an external caching system, we can clear the transients out manually and avoid filling our DB.
if ( ! wp_using_ext_object_cache() ) {
global $wpdb;
- $wpdb->query( "
+ $wpdb->query(
+ "
DELETE FROM `$wpdb->options`
WHERE `option_name` LIKE ('\_transient\_wc\_uf\_pid\_%')
OR `option_name` LIKE ('\_transient\_timeout\_wc\_uf\_pid\_%')
OR `option_name` LIKE ('\_transient\_wc\_products\_will\_display\_%')
OR `option_name` LIKE ('\_transient\_timeout\_wc\_products\_will\_display\_%')
- " );
+ "
+ );
}
}
@@ -152,9 +157,9 @@ class WC_Post_Data {
* Handle type changes.
*
* @since 3.0.0
- * @param WC_Product $product
- * @param string $from
- * @param string $to
+ * @param WC_Product $product Product data.
+ * @param string $from Origin type.
+ * @param string $to New type.
*/
public static function product_type_changed( $product, $from, $to ) {
if ( 'variable' === $from && 'variable' !== $to ) {
@@ -166,9 +171,10 @@ class WC_Post_Data {
/**
* When editing a term, check for product attributes.
- * @param id $term_id
- * @param id $tt_id
- * @param string $taxonomy
+ *
+ * @param int $term_id Term ID.
+ * @param int $tt_id Term taxonomy ID.
+ * @param string $taxonomy Taxonomy slug.
*/
public static function edit_term( $term_id, $tt_id, $taxonomy ) {
if ( strpos( $taxonomy, 'pa_' ) === 0 ) {
@@ -180,9 +186,10 @@ class WC_Post_Data {
/**
* When a term is edited, check for product attributes and update variations.
- * @param id $term_id
- * @param id $tt_id
- * @param string $taxonomy
+ *
+ * @param int $term_id Term ID.
+ * @param int $tt_id Term taxonomy ID.
+ * @param string $taxonomy Taxonomy slug.
*/
public static function edited_term( $term_id, $tt_id, $taxonomy ) {
if ( ! is_null( self::$editing_term ) && strpos( $taxonomy, 'pa_' ) === 0 ) {
@@ -201,23 +208,22 @@ class WC_Post_Data {
/**
* Ensure floats are correctly converted to strings based on PHP locale.
*
- * @param null $check
- * @param int $object_id
- * @param string $meta_key
- * @param mixed $meta_value
- * @param mixed $prev_value
+ * @param null $check Whether to allow updating metadata for the given type.
+ * @param int $object_id Object ID.
+ * @param string $meta_key Meta key.
+ * @param mixed $meta_value Meta value. Must be serializable if non-scalar.
+ * @param mixed $prev_value If specified, only update existing metadata entries with the specified value. Otherwise, update all entries.
* @return null|bool
*/
public static function update_order_item_metadata( $check, $object_id, $meta_key, $meta_value, $prev_value ) {
if ( ! empty( $meta_value ) && is_float( $meta_value ) ) {
- // Convert float to string
+ // Convert float to string.
$meta_value = wc_float_to_string( $meta_value );
- // Update meta value with new string
+ // Update meta value with new string.
update_metadata( 'order_item', $object_id, $meta_key, $meta_value, $prev_value );
- // Return
return true;
}
return $check;
@@ -226,28 +232,27 @@ class WC_Post_Data {
/**
* Ensure floats are correctly converted to strings based on PHP locale.
*
- * @param null $check
- * @param int $object_id
- * @param string $meta_key
- * @param mixed $meta_value
- * @param mixed $prev_value
+ * @param null $check Whether to allow updating metadata for the given type.
+ * @param int $object_id Object ID.
+ * @param string $meta_key Meta key.
+ * @param mixed $meta_value Meta value. Must be serializable if non-scalar.
+ * @param mixed $prev_value If specified, only update existing metadata entries with the specified value. Otherwise, update all entries.
* @return null|bool
*/
public static function update_post_metadata( $check, $object_id, $meta_key, $meta_value, $prev_value ) {
// Delete product cache if someone uses meta directly.
- if ( in_array( get_post_type( $object_id ), array( 'product', 'product_variation' ) ) ) {
+ if ( in_array( get_post_type( $object_id ), array( 'product', 'product_variation' ), true ) ) {
wp_cache_delete( 'product-' . $object_id, 'products' );
}
- if ( ! empty( $meta_value ) && is_float( $meta_value ) && in_array( get_post_type( $object_id ), array_merge( wc_get_order_types(), array( 'shop_coupon', 'product', 'product_variation' ) ) ) ) {
+ if ( ! empty( $meta_value ) && is_float( $meta_value ) && in_array( get_post_type( $object_id ), array_merge( wc_get_order_types(), array( 'shop_coupon', 'product', 'product_variation' ) ), true ) ) {
- // Convert float to string
+ // Convert float to string.
$meta_value = wc_float_to_string( $meta_value );
- // Update meta value with new string
+ // Update meta value with new string.
update_metadata( 'post', $object_id, $meta_key, $meta_value, $prev_value );
- // Return
return true;
}
return $check;
@@ -255,10 +260,11 @@ class WC_Post_Data {
/**
* When setting stock level, ensure the stock status is kept in sync.
- * @param int $meta_id
- * @param int $object_id
- * @param string $meta_key
- * @param mixed $meta_value
+ *
+ * @param int $meta_id Meta ID.
+ * @param int $object_id Object ID.
+ * @param string $meta_key Meta key.
+ * @param mixed $meta_value Meta value.
* @deprecated
*/
public static function sync_product_stock_status( $meta_id, $object_id, $meta_key, $meta_value ) {}
@@ -267,7 +273,7 @@ class WC_Post_Data {
* Forces the order posts to have a title in a certain format (containing the date).
* Forces certain product data based on the product's type, e.g. grouped products cannot have a parent.
*
- * @param array $data
+ * @param array $data An array of slashed post data.
* @return array
*/
public static function wp_insert_post_data( $data ) {
@@ -277,13 +283,13 @@ class WC_Post_Data {
$order_title .= ' – ' . date_i18n( 'F j, Y @ h:i A', strtotime( $data['post_date'] ) );
}
$data['post_title'] = $order_title;
- } elseif ( 'product' === $data['post_type'] && isset( $_POST['product-type'] ) ) {
- $product_type = stripslashes( $_POST['product-type'] );
+ } elseif ( 'product' === $data['post_type'] && isset( $_POST['product-type'] ) ) { // WPCS: input var ok, CSRF ok.
+ $product_type = wc_clean( wp_unslash( $_POST['product-type'] ) ); // WPCS: input var ok, CSRF ok.
switch ( $product_type ) {
- case 'grouped' :
- case 'variable' :
+ case 'grouped':
+ case 'variable':
$data['post_parent'] = 0;
- break;
+ break;
}
} elseif ( 'product' === $data['post_type'] && 'auto-draft' === $data['post_status'] ) {
$data['post_title'] = 'AUTO-DRAFT';
@@ -301,7 +307,7 @@ class WC_Post_Data {
* @return array
*/
public static function filter_oembed_response_data( $data, $post ) {
- if ( in_array( $post->post_type, array( 'shop_order', 'shop_coupon' ) ) ) {
+ if ( in_array( $post->post_type, array( 'shop_order', 'shop_coupon' ), true ) ) {
return array();
}
return $data;
@@ -310,7 +316,7 @@ class WC_Post_Data {
/**
* Removes variations etc belonging to a deleted post, and clears transients.
*
- * @param mixed $id ID of post being deleted
+ * @param mixed $id ID of post being deleted.
*/
public static function delete_post( $id ) {
if ( ! current_user_can( 'delete_posts' ) || ! $id ) {
@@ -320,18 +326,19 @@ class WC_Post_Data {
$post_type = get_post_type( $id );
switch ( $post_type ) {
- case 'product' :
+ case 'product':
$data_store = WC_Data_Store::load( 'product-variable' );
$data_store->delete_variations( $id, true );
+ $parent_id = wp_get_post_parent_id( $id );
- if ( $parent_id = wp_get_post_parent_id( $id ) ) {
+ if ( $parent_id ) {
wc_delete_product_transients( $parent_id );
}
break;
- case 'product_variation' :
+ case 'product_variation':
wc_delete_product_transients( wp_get_post_parent_id( $id ) );
break;
- case 'shop_order' :
+ case 'shop_order':
global $wpdb;
$refunds = $wpdb->get_results( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE post_type = 'shop_order_refund' AND post_parent = %d", $id ) );
@@ -346,9 +353,9 @@ class WC_Post_Data {
}
/**
- * woocommerce_trash_post function.
+ * Trash post.
*
- * @param mixed $id
+ * @param mixed $id Post ID.
*/
public static function trash_post( $id ) {
if ( ! $id ) {
@@ -358,7 +365,7 @@ class WC_Post_Data {
$post_type = get_post_type( $id );
// If this is an order, trash any refunds too.
- if ( in_array( $post_type, wc_get_order_types( 'order-count' ) ) ) {
+ if ( in_array( $post_type, wc_get_order_types( 'order-count' ), true ) ) {
global $wpdb;
$refunds = $wpdb->get_results( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE post_type = 'shop_order_refund' AND post_parent = %d", $id ) );
@@ -369,7 +376,7 @@ class WC_Post_Data {
wc_delete_shop_order_transients( $id );
- // If this is a product, trash children variations.
+ // If this is a product, trash children variations.
} elseif ( 'product' === $post_type ) {
$data_store = WC_Data_Store::load( 'product-variable' );
$data_store->delete_variations( $id, false );
@@ -377,9 +384,9 @@ class WC_Post_Data {
}
/**
- * woocommerce_untrash_post function.
+ * Untrash post.
*
- * @param mixed $id
+ * @param mixed $id Post ID.
*/
public static function untrash_post( $id ) {
if ( ! $id ) {
@@ -388,7 +395,7 @@ class WC_Post_Data {
$post_type = get_post_type( $id );
- if ( in_array( $post_type, wc_get_order_types( 'order-count' ) ) ) {
+ if ( in_array( $post_type, wc_get_order_types( 'order-count' ), true ) ) {
global $wpdb;
$refunds = $wpdb->get_results( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE post_type = 'shop_order_refund' AND post_parent = %d", $id ) );
@@ -411,12 +418,12 @@ class WC_Post_Data {
* Before deleting an order, do some cleanup.
*
* @since 3.2.0
- * @param int $order_id
+ * @param int $order_id Order ID.
*/
public static function before_delete_order( $order_id ) {
- if ( in_array( get_post_type( $order_id ), wc_get_order_types() ) ) {
+ if ( in_array( get_post_type( $order_id ), wc_get_order_types(), true ) ) {
// Clean up user.
- $order = wc_get_order( $order_id );
+ $order = wc_get_order( $order_id );
// Check for `get_customer_id`, since this may be e.g. a refund order (which doesn't implement it).
$customer_id = is_callable( array( $order, 'get_customer_id' ) ) ? $order->get_customer_id() : 0;
@@ -444,20 +451,22 @@ class WC_Post_Data {
/**
* Remove item meta on permanent deletion.
*
- * @param int $postid
+ * @param int $postid Post ID.
*/
public static function delete_order_items( $postid ) {
global $wpdb;
- if ( in_array( get_post_type( $postid ), wc_get_order_types() ) ) {
+ if ( in_array( get_post_type( $postid ), wc_get_order_types(), true ) ) {
do_action( 'woocommerce_delete_order_items', $postid );
- $wpdb->query( "
+ $wpdb->query(
+ "
DELETE {$wpdb->prefix}woocommerce_order_items, {$wpdb->prefix}woocommerce_order_itemmeta
FROM {$wpdb->prefix}woocommerce_order_items
JOIN {$wpdb->prefix}woocommerce_order_itemmeta ON {$wpdb->prefix}woocommerce_order_items.order_item_id = {$wpdb->prefix}woocommerce_order_itemmeta.order_item_id
WHERE {$wpdb->prefix}woocommerce_order_items.order_id = '{$postid}';
- " );
+ "
+ ); // WPCS: unprepared SQL ok.
do_action( 'woocommerce_deleted_order_items', $postid );
}
@@ -466,10 +475,10 @@ class WC_Post_Data {
/**
* Remove downloadable permissions on permanent order deletion.
*
- * @param int $postid
+ * @param int $postid Post ID.
*/
public static function delete_order_downloadable_permissions( $postid ) {
- if ( in_array( get_post_type( $postid ), wc_get_order_types() ) ) {
+ if ( in_array( get_post_type( $postid ), wc_get_order_types(), true ) ) {
do_action( 'woocommerce_delete_order_downloadable_permissions', $postid );
$data_store = WC_Data_Store::load( 'customer-download' );
@@ -483,9 +492,9 @@ class WC_Post_Data {
* Update changed downloads.
*
* @deprecated 3.3.0 No action is necessary on changes to download paths since download_id is no longer based on file hash.
- * @param int $product_id product identifier
- * @param int $variation_id optional product variation identifier
- * @param array $downloads newly set files
+ * @param int $product_id Product ID.
+ * @param int $variation_id Variation ID. Optional product variation identifier.
+ * @param array $downloads Newly set files.
*/
public static function process_product_file_download_paths( $product_id, $variation_id, $downloads ) {
wc_deprecated_function( __FUNCTION__, '3.3' );
@@ -493,10 +502,11 @@ class WC_Post_Data {
/**
* Flush meta cache for CRUD objects on direct update.
- * @param int $meta_id
- * @param int $object_id
- * @param string $meta_key
- * @param string $meta_value
+ *
+ * @param int $meta_id Meta ID.
+ * @param int $object_id Object ID.
+ * @param string $meta_key Meta key.
+ * @param string $meta_value Meta value.
*/
public static function flush_object_meta_cache( $meta_id, $object_id, $meta_key, $meta_value ) {
WC_Cache_Helper::incr_cache_prefix( 'object_' . $object_id );
@@ -507,10 +517,10 @@ class WC_Post_Data {
*
* @since 3.3.0
* @param int $object_id Product ID.
- * @param array $terms Terms array.
- * @param array $tt_ids Term ids array.
- * @param string $taxonomy Taxonomy name.
- * @param bool $append Are we appending or setting terms.
+ * @param array $terms Terms array.
+ * @param array $tt_ids Term ids array.
+ * @param string $taxonomy Taxonomy name.
+ * @param bool $append Are we appending or setting terms.
*/
public static function force_default_term( $object_id, $terms, $tt_ids, $taxonomy, $append ) {
if ( ! $append && 'product_cat' === $taxonomy && empty( $tt_ids ) && 'product' === get_post_type( $object_id ) ) {
From 7b1fc4c8e8db51eb4f8d556389a1e7977c8ac93f Mon Sep 17 00:00:00 2001
From: Claudio Sanches
Date: Wed, 21 Mar 2018 20:50:40 -0300
Subject: [PATCH 06/21] Fixed includes/class-wc-post-types.php PHPCS violations
---
includes/class-wc-post-types.php | 407 +++++++++++++++++--------------
1 file changed, 225 insertions(+), 182 deletions(-)
diff --git a/includes/class-wc-post-types.php b/includes/class-wc-post-types.php
index 54408c010db..2849a253d93 100644
--- a/includes/class-wc-post-types.php
+++ b/includes/class-wc-post-types.php
@@ -4,21 +4,16 @@
*
* Registers post types and taxonomies.
*
- * @class WC_Post_types
- * @version 2.5.0
- * @package WooCommerce/Classes/Products
- * @category Class
- * @author WooThemes
+ * @package WooCommerce/Classes/Products
+ * @version 2.5.0
*/
-if ( ! defined( 'ABSPATH' ) ) {
- exit;
-}
+defined( 'ABSPATH' ) || exit;
/**
- * WC_Post_types Class.
+ * Post types Class.
*/
-class WC_Post_types {
+class WC_Post_Types {
/**
* Hook in methods.
@@ -50,37 +45,45 @@ class WC_Post_types {
$permalinks = wc_get_permalink_structure();
- register_taxonomy( 'product_type',
+ register_taxonomy(
+ 'product_type',
apply_filters( 'woocommerce_taxonomy_objects_product_type', array( 'product' ) ),
- apply_filters( 'woocommerce_taxonomy_args_product_type', array(
- 'hierarchical' => false,
- 'show_ui' => false,
- 'show_in_nav_menus' => false,
- 'query_var' => is_admin(),
- 'rewrite' => false,
- 'public' => false,
- ) )
+ apply_filters(
+ 'woocommerce_taxonomy_args_product_type', array(
+ 'hierarchical' => false,
+ 'show_ui' => false,
+ 'show_in_nav_menus' => false,
+ 'query_var' => is_admin(),
+ 'rewrite' => false,
+ 'public' => false,
+ )
+ )
);
- register_taxonomy( 'product_visibility',
+ register_taxonomy(
+ 'product_visibility',
apply_filters( 'woocommerce_taxonomy_objects_product_visibility', array( 'product', 'product_variation' ) ),
- apply_filters( 'woocommerce_taxonomy_args_product_visibility', array(
- 'hierarchical' => false,
- 'show_ui' => false,
- 'show_in_nav_menus' => false,
- 'query_var' => is_admin(),
- 'rewrite' => false,
- 'public' => false,
- ) )
+ apply_filters(
+ 'woocommerce_taxonomy_args_product_visibility', array(
+ 'hierarchical' => false,
+ 'show_ui' => false,
+ 'show_in_nav_menus' => false,
+ 'query_var' => is_admin(),
+ 'rewrite' => false,
+ 'public' => false,
+ )
+ )
);
- register_taxonomy( 'product_cat',
+ register_taxonomy(
+ 'product_cat',
apply_filters( 'woocommerce_taxonomy_objects_product_cat', array( 'product' ) ),
- apply_filters( 'woocommerce_taxonomy_args_product_cat', array(
- 'hierarchical' => true,
- 'update_count_callback' => '_wc_term_recount',
- 'label' => __( 'Categories', 'woocommerce' ),
- 'labels' => array(
+ apply_filters(
+ 'woocommerce_taxonomy_args_product_cat', array(
+ 'hierarchical' => true,
+ 'update_count_callback' => '_wc_term_recount',
+ 'label' => __( 'Categories', 'woocommerce' ),
+ 'labels' => array(
'name' => __( 'Product categories', 'woocommerce' ),
'singular_name' => __( 'Category', 'woocommerce' ),
'menu_name' => _x( 'Categories', 'Admin menu name', 'woocommerce' ),
@@ -94,29 +97,32 @@ class WC_Post_types {
'new_item_name' => __( 'New category name', 'woocommerce' ),
'not_found' => __( 'No categories found', 'woocommerce' ),
),
- 'show_ui' => true,
- 'query_var' => true,
- 'capabilities' => array(
- 'manage_terms' => 'manage_product_terms',
- 'edit_terms' => 'edit_product_terms',
- 'delete_terms' => 'delete_product_terms',
- 'assign_terms' => 'assign_product_terms',
- ),
- 'rewrite' => array(
- 'slug' => $permalinks['category_rewrite_slug'],
- 'with_front' => false,
- 'hierarchical' => true,
- ),
- ) )
+ 'show_ui' => true,
+ 'query_var' => true,
+ 'capabilities' => array(
+ 'manage_terms' => 'manage_product_terms',
+ 'edit_terms' => 'edit_product_terms',
+ 'delete_terms' => 'delete_product_terms',
+ 'assign_terms' => 'assign_product_terms',
+ ),
+ 'rewrite' => array(
+ 'slug' => $permalinks['category_rewrite_slug'],
+ 'with_front' => false,
+ 'hierarchical' => true,
+ ),
+ )
+ )
);
- register_taxonomy( 'product_tag',
+ register_taxonomy(
+ 'product_tag',
apply_filters( 'woocommerce_taxonomy_objects_product_tag', array( 'product' ) ),
- apply_filters( 'woocommerce_taxonomy_args_product_tag', array(
- 'hierarchical' => false,
- 'update_count_callback' => '_wc_term_recount',
- 'label' => __( 'Product tags', 'woocommerce' ),
- 'labels' => array(
+ apply_filters(
+ 'woocommerce_taxonomy_args_product_tag', array(
+ 'hierarchical' => false,
+ 'update_count_callback' => '_wc_term_recount',
+ 'label' => __( 'Product tags', 'woocommerce' ),
+ 'labels' => array(
'name' => __( 'Product tags', 'woocommerce' ),
'singular_name' => __( 'Tag', 'woocommerce' ),
'menu_name' => _x( 'Tags', 'Admin menu name', 'woocommerce' ),
@@ -132,28 +138,31 @@ class WC_Post_types {
'choose_from_most_used' => __( 'Choose from the most used tags', 'woocommerce' ),
'not_found' => __( 'No tags found', 'woocommerce' ),
),
- 'show_ui' => true,
- 'query_var' => true,
- 'capabilities' => array(
- 'manage_terms' => 'manage_product_terms',
- 'edit_terms' => 'edit_product_terms',
- 'delete_terms' => 'delete_product_terms',
- 'assign_terms' => 'assign_product_terms',
- ),
- 'rewrite' => array(
- 'slug' => $permalinks['tag_rewrite_slug'],
- 'with_front' => false,
- ),
- ) )
+ 'show_ui' => true,
+ 'query_var' => true,
+ 'capabilities' => array(
+ 'manage_terms' => 'manage_product_terms',
+ 'edit_terms' => 'edit_product_terms',
+ 'delete_terms' => 'delete_product_terms',
+ 'assign_terms' => 'assign_product_terms',
+ ),
+ 'rewrite' => array(
+ 'slug' => $permalinks['tag_rewrite_slug'],
+ 'with_front' => false,
+ ),
+ )
+ )
);
- register_taxonomy( 'product_shipping_class',
+ register_taxonomy(
+ 'product_shipping_class',
apply_filters( 'woocommerce_taxonomy_objects_product_shipping_class', array( 'product', 'product_variation' ) ),
- apply_filters( 'woocommerce_taxonomy_args_product_shipping_class', array(
- 'hierarchical' => false,
- 'update_count_callback' => '_update_post_term_count',
- 'label' => __( 'Shipping classes', 'woocommerce' ),
- 'labels' => array(
+ apply_filters(
+ 'woocommerce_taxonomy_args_product_shipping_class', array(
+ 'hierarchical' => false,
+ 'update_count_callback' => '_update_post_term_count',
+ 'label' => __( 'Shipping classes', 'woocommerce' ),
+ 'labels' => array(
'name' => __( 'Product shipping classes', 'woocommerce' ),
'singular_name' => __( 'Shipping class', 'woocommerce' ),
'menu_name' => _x( 'Shipping classes', 'Admin menu name', 'woocommerce' ),
@@ -166,27 +175,31 @@ class WC_Post_types {
'add_new_item' => __( 'Add new shipping class', 'woocommerce' ),
'new_item_name' => __( 'New shipping class Name', 'woocommerce' ),
),
- 'show_ui' => false,
- 'show_in_quick_edit' => false,
- 'show_in_nav_menus' => false,
- 'query_var' => is_admin(),
- 'capabilities' => array(
- 'manage_terms' => 'manage_product_terms',
- 'edit_terms' => 'edit_product_terms',
- 'delete_terms' => 'delete_product_terms',
- 'assign_terms' => 'assign_product_terms',
- ),
- 'rewrite' => false,
- ) )
+ 'show_ui' => false,
+ 'show_in_quick_edit' => false,
+ 'show_in_nav_menus' => false,
+ 'query_var' => is_admin(),
+ 'capabilities' => array(
+ 'manage_terms' => 'manage_product_terms',
+ 'edit_terms' => 'edit_product_terms',
+ 'delete_terms' => 'delete_product_terms',
+ 'assign_terms' => 'assign_product_terms',
+ ),
+ 'rewrite' => false,
+ )
+ )
);
global $wc_product_attributes;
$wc_product_attributes = array();
+ $attribute_taxonomies = wc_get_attribute_taxonomies();
- if ( $attribute_taxonomies = wc_get_attribute_taxonomies() ) {
+ if ( $attribute_taxonomies ) {
foreach ( $attribute_taxonomies as $tax ) {
- if ( $name = wc_attribute_taxonomy_name( $tax->attribute_name ) ) {
+ $name = wc_attribute_taxonomy_name( $tax->attribute_name );
+
+ if ( $name ) {
$tax->attribute_public = absint( isset( $tax->attribute_public ) ? $tax->attribute_public : 1 );
$label = ! empty( $tax->attribute_label ) ? $tax->attribute_label : $tax->attribute_name;
$wc_product_attributes[ $name ] = $tax;
@@ -194,28 +207,38 @@ class WC_Post_types {
'hierarchical' => false,
'update_count_callback' => '_update_post_term_count',
'labels' => array(
- 'name' => sprintf( _x( 'Product %s', 'Product Attribute', 'woocommerce' ), $label ),
- 'singular_name' => $label,
- 'search_items' => sprintf( __( 'Search %s', 'woocommerce' ), $label ),
- 'all_items' => sprintf( __( 'All %s', 'woocommerce' ), $label ),
- 'parent_item' => sprintf( __( 'Parent %s', 'woocommerce' ), $label ),
- 'parent_item_colon' => sprintf( __( 'Parent %s:', 'woocommerce' ), $label ),
- 'edit_item' => sprintf( __( 'Edit %s', 'woocommerce' ), $label ),
- 'update_item' => sprintf( __( 'Update %s', 'woocommerce' ), $label ),
- 'add_new_item' => sprintf( __( 'Add new %s', 'woocommerce' ), $label ),
- 'new_item_name' => sprintf( __( 'New %s', 'woocommerce' ), $label ),
- 'not_found' => sprintf( __( 'No "%s" found', 'woocommerce' ), $label ),
- ),
- 'show_ui' => true,
- 'show_in_quick_edit' => false,
- 'show_in_menu' => false,
- 'meta_box_cb' => false,
- 'query_var' => 1 === $tax->attribute_public,
- 'rewrite' => false,
- 'sort' => false,
- 'public' => 1 === $tax->attribute_public,
- 'show_in_nav_menus' => 1 === $tax->attribute_public && apply_filters( 'woocommerce_attribute_show_in_nav_menus', false, $name ),
- 'capabilities' => array(
+ /* translators: %s: attribute name */
+ 'name' => sprintf( _x( 'Product %s', 'Product Attribute', 'woocommerce' ), $label ),
+ 'singular_name' => $label,
+ /* translators: %s: attribute name */
+ 'search_items' => sprintf( __( 'Search %s', 'woocommerce' ), $label ),
+ /* translators: %s: attribute name */
+ 'all_items' => sprintf( __( 'All %s', 'woocommerce' ), $label ),
+ /* translators: %s: attribute name */
+ 'parent_item' => sprintf( __( 'Parent %s', 'woocommerce' ), $label ),
+ /* translators: %s: attribute name */
+ 'parent_item_colon' => sprintf( __( 'Parent %s:', 'woocommerce' ), $label ),
+ /* translators: %s: attribute name */
+ 'edit_item' => sprintf( __( 'Edit %s', 'woocommerce' ), $label ),
+ /* translators: %s: attribute name */
+ 'update_item' => sprintf( __( 'Update %s', 'woocommerce' ), $label ),
+ /* translators: %s: attribute name */
+ 'add_new_item' => sprintf( __( 'Add new %s', 'woocommerce' ), $label ),
+ /* translators: %s: attribute name */
+ 'new_item_name' => sprintf( __( 'New %s', 'woocommerce' ), $label ),
+ /* translators: %s: attribute name */
+ 'not_found' => sprintf( __( 'No "%s" found', 'woocommerce' ), $label ),
+ ),
+ 'show_ui' => true,
+ 'show_in_quick_edit' => false,
+ 'show_in_menu' => false,
+ 'meta_box_cb' => false,
+ 'query_var' => 1 === $tax->attribute_public,
+ 'rewrite' => false,
+ 'sort' => false,
+ 'public' => 1 === $tax->attribute_public,
+ 'show_in_nav_menus' => 1 === $tax->attribute_public && apply_filters( 'woocommerce_attribute_show_in_nav_menus', false, $name ),
+ 'capabilities' => array(
'manage_terms' => 'manage_product_terms',
'edit_terms' => 'edit_product_terms',
'delete_terms' => 'delete_product_terms',
@@ -250,7 +273,7 @@ class WC_Post_types {
do_action( 'woocommerce_register_post_type' );
$permalinks = wc_get_permalink_structure();
- $supports = array( 'title', 'editor', 'excerpt', 'thumbnail', 'custom-fields', 'publicize', 'wpcom-markdown' );
+ $supports = array( 'title', 'editor', 'excerpt', 'thumbnail', 'custom-fields', 'publicize', 'wpcom-markdown' );
if ( 'yes' === get_option( 'woocommerce_enable_reviews', 'yes' ) ) {
$supports[] = 'comments';
@@ -259,7 +282,7 @@ class WC_Post_types {
$shop_page_id = wc_get_page_id( 'shop' );
if ( current_theme_supports( 'woocommerce' ) ) {
- $has_archive = $shop_page_id && get_post( $shop_page_id ) ? urldecode( get_page_uri( $shop_page_id ) ) : 'shop';
+ $has_archive = $shop_page_id && get_post( $shop_page_id ) ? urldecode( get_page_uri( $shop_page_id ) ) : 'shop';
} else {
$has_archive = false;
}
@@ -269,35 +292,37 @@ class WC_Post_types {
update_option( 'woocommerce_queue_flush_rewrite_rules', 'yes' );
}
- register_post_type( 'product',
- apply_filters( 'woocommerce_register_post_type_product',
+ register_post_type(
+ 'product',
+ apply_filters(
+ 'woocommerce_register_post_type_product',
array(
'labels' => array(
- 'name' => __( 'Products', 'woocommerce' ),
- 'singular_name' => __( 'Product', 'woocommerce' ),
- 'all_items' => __( 'All Products', 'woocommerce' ),
- 'menu_name' => _x( 'Products', 'Admin menu name', 'woocommerce' ),
- 'add_new' => __( 'Add New', 'woocommerce' ),
- 'add_new_item' => __( 'Add new product', 'woocommerce' ),
- 'edit' => __( 'Edit', 'woocommerce' ),
- 'edit_item' => __( 'Edit product', 'woocommerce' ),
- 'new_item' => __( 'New product', 'woocommerce' ),
- 'view_item' => __( 'View product', 'woocommerce' ),
- 'view_items' => __( 'View products', 'woocommerce' ),
- 'search_items' => __( 'Search products', 'woocommerce' ),
- 'not_found' => __( 'No products found', 'woocommerce' ),
- 'not_found_in_trash' => __( 'No products found in trash', 'woocommerce' ),
- 'parent' => __( 'Parent product', 'woocommerce' ),
- 'featured_image' => __( 'Product image', 'woocommerce' ),
- 'set_featured_image' => __( 'Set product image', 'woocommerce' ),
- 'remove_featured_image' => __( 'Remove product image', 'woocommerce' ),
- 'use_featured_image' => __( 'Use as product image', 'woocommerce' ),
- 'insert_into_item' => __( 'Insert into product', 'woocommerce' ),
- 'uploaded_to_this_item' => __( 'Uploaded to this product', 'woocommerce' ),
- 'filter_items_list' => __( 'Filter products', 'woocommerce' ),
- 'items_list_navigation' => __( 'Products navigation', 'woocommerce' ),
- 'items_list' => __( 'Products list', 'woocommerce' ),
- ),
+ 'name' => __( 'Products', 'woocommerce' ),
+ 'singular_name' => __( 'Product', 'woocommerce' ),
+ 'all_items' => __( 'All Products', 'woocommerce' ),
+ 'menu_name' => _x( 'Products', 'Admin menu name', 'woocommerce' ),
+ 'add_new' => __( 'Add New', 'woocommerce' ),
+ 'add_new_item' => __( 'Add new product', 'woocommerce' ),
+ 'edit' => __( 'Edit', 'woocommerce' ),
+ 'edit_item' => __( 'Edit product', 'woocommerce' ),
+ 'new_item' => __( 'New product', 'woocommerce' ),
+ 'view_item' => __( 'View product', 'woocommerce' ),
+ 'view_items' => __( 'View products', 'woocommerce' ),
+ 'search_items' => __( 'Search products', 'woocommerce' ),
+ 'not_found' => __( 'No products found', 'woocommerce' ),
+ 'not_found_in_trash' => __( 'No products found in trash', 'woocommerce' ),
+ 'parent' => __( 'Parent product', 'woocommerce' ),
+ 'featured_image' => __( 'Product image', 'woocommerce' ),
+ 'set_featured_image' => __( 'Set product image', 'woocommerce' ),
+ 'remove_featured_image' => __( 'Remove product image', 'woocommerce' ),
+ 'use_featured_image' => __( 'Use as product image', 'woocommerce' ),
+ 'insert_into_item' => __( 'Insert into product', 'woocommerce' ),
+ 'uploaded_to_this_item' => __( 'Uploaded to this product', 'woocommerce' ),
+ 'filter_items_list' => __( 'Filter products', 'woocommerce' ),
+ 'items_list_navigation' => __( 'Products navigation', 'woocommerce' ),
+ 'items_list' => __( 'Products list', 'woocommerce' ),
+ ),
'description' => __( 'This is where you can add new products to your store.', 'woocommerce' ),
'public' => true,
'show_ui' => true,
@@ -306,7 +331,11 @@ class WC_Post_types {
'publicly_queryable' => true,
'exclude_from_search' => false,
'hierarchical' => false, // Hierarchical causes memory issues - WP loads all records!
- 'rewrite' => $permalinks['product_rewrite_slug'] ? array( 'slug' => $permalinks['product_rewrite_slug'], 'with_front' => false, 'feeds' => true ) : false,
+ 'rewrite' => $permalinks['product_rewrite_slug'] ? array(
+ 'slug' => $permalinks['product_rewrite_slug'],
+ 'with_front' => false,
+ 'feeds' => true,
+ ) : false,
'query_var' => true,
'supports' => $supports,
'has_archive' => $has_archive,
@@ -316,8 +345,10 @@ class WC_Post_types {
)
);
- register_post_type( 'product_variation',
- apply_filters( 'woocommerce_register_post_type_product_variation',
+ register_post_type(
+ 'product_variation',
+ apply_filters(
+ 'woocommerce_register_post_type_product_variation',
array(
'label' => __( 'Variations', 'woocommerce' ),
'public' => false,
@@ -331,26 +362,27 @@ class WC_Post_types {
wc_register_order_type(
'shop_order',
- apply_filters( 'woocommerce_register_post_type_shop_order',
+ apply_filters(
+ 'woocommerce_register_post_type_shop_order',
array(
'labels' => array(
- 'name' => __( 'Orders', 'woocommerce' ),
- 'singular_name' => _x( 'Order', 'shop_order post type singular name', 'woocommerce' ),
- 'add_new' => __( 'Add order', 'woocommerce' ),
- 'add_new_item' => __( 'Add new order', 'woocommerce' ),
- 'edit' => __( 'Edit', 'woocommerce' ),
- 'edit_item' => __( 'Edit order', 'woocommerce' ),
- 'new_item' => __( 'New order', 'woocommerce' ),
- 'view_item' => __( 'View order', 'woocommerce' ),
- 'search_items' => __( 'Search orders', 'woocommerce' ),
- 'not_found' => __( 'No orders found', 'woocommerce' ),
- 'not_found_in_trash' => __( 'No orders found in trash', 'woocommerce' ),
- 'parent' => __( 'Parent orders', 'woocommerce' ),
- 'menu_name' => _x( 'Orders', 'Admin menu name', 'woocommerce' ),
- 'filter_items_list' => __( 'Filter orders', 'woocommerce' ),
- 'items_list_navigation' => __( 'Orders navigation', 'woocommerce' ),
- 'items_list' => __( 'Orders list', 'woocommerce' ),
- ),
+ 'name' => __( 'Orders', 'woocommerce' ),
+ 'singular_name' => _x( 'Order', 'shop_order post type singular name', 'woocommerce' ),
+ 'add_new' => __( 'Add order', 'woocommerce' ),
+ 'add_new_item' => __( 'Add new order', 'woocommerce' ),
+ 'edit' => __( 'Edit', 'woocommerce' ),
+ 'edit_item' => __( 'Edit order', 'woocommerce' ),
+ 'new_item' => __( 'New order', 'woocommerce' ),
+ 'view_item' => __( 'View order', 'woocommerce' ),
+ 'search_items' => __( 'Search orders', 'woocommerce' ),
+ 'not_found' => __( 'No orders found', 'woocommerce' ),
+ 'not_found_in_trash' => __( 'No orders found in trash', 'woocommerce' ),
+ 'parent' => __( 'Parent orders', 'woocommerce' ),
+ 'menu_name' => _x( 'Orders', 'Admin menu name', 'woocommerce' ),
+ 'filter_items_list' => __( 'Filter orders', 'woocommerce' ),
+ 'items_list_navigation' => __( 'Orders navigation', 'woocommerce' ),
+ 'items_list' => __( 'Orders list', 'woocommerce' ),
+ ),
'description' => __( 'This is where store orders are stored.', 'woocommerce' ),
'public' => false,
'show_ui' => true,
@@ -371,7 +403,8 @@ class WC_Post_types {
wc_register_order_type(
'shop_order_refund',
- apply_filters( 'woocommerce_register_post_type_shop_order_refund',
+ apply_filters(
+ 'woocommerce_register_post_type_shop_order_refund',
array(
'label' => __( 'Refunds', 'woocommerce' ),
'capability_type' => 'shop_order',
@@ -390,28 +423,30 @@ class WC_Post_types {
)
);
- if ( 'yes' == get_option( 'woocommerce_enable_coupons' ) ) {
- register_post_type( 'shop_coupon',
- apply_filters( 'woocommerce_register_post_type_shop_coupon',
+ if ( 'yes' === get_option( 'woocommerce_enable_coupons' ) ) {
+ register_post_type(
+ 'shop_coupon',
+ apply_filters(
+ 'woocommerce_register_post_type_shop_coupon',
array(
'labels' => array(
- 'name' => __( 'Coupons', 'woocommerce' ),
- 'singular_name' => __( 'Coupon', 'woocommerce' ),
- 'menu_name' => _x( 'Coupons', 'Admin menu name', 'woocommerce' ),
- 'add_new' => __( 'Add coupon', 'woocommerce' ),
- 'add_new_item' => __( 'Add new coupon', 'woocommerce' ),
- 'edit' => __( 'Edit', 'woocommerce' ),
- 'edit_item' => __( 'Edit coupon', 'woocommerce' ),
- 'new_item' => __( 'New coupon', 'woocommerce' ),
- 'view_item' => __( 'View coupon', 'woocommerce' ),
- 'search_items' => __( 'Search coupons', 'woocommerce' ),
- 'not_found' => __( 'No coupons found', 'woocommerce' ),
- 'not_found_in_trash' => __( 'No coupons found in trash', 'woocommerce' ),
- 'parent' => __( 'Parent coupon', 'woocommerce' ),
- 'filter_items_list' => __( 'Filter coupons', 'woocommerce' ),
- 'items_list_navigation' => __( 'Coupons navigation', 'woocommerce' ),
- 'items_list' => __( 'Coupons list', 'woocommerce' ),
- ),
+ 'name' => __( 'Coupons', 'woocommerce' ),
+ 'singular_name' => __( 'Coupon', 'woocommerce' ),
+ 'menu_name' => _x( 'Coupons', 'Admin menu name', 'woocommerce' ),
+ 'add_new' => __( 'Add coupon', 'woocommerce' ),
+ 'add_new_item' => __( 'Add new coupon', 'woocommerce' ),
+ 'edit' => __( 'Edit', 'woocommerce' ),
+ 'edit_item' => __( 'Edit coupon', 'woocommerce' ),
+ 'new_item' => __( 'New coupon', 'woocommerce' ),
+ 'view_item' => __( 'View coupon', 'woocommerce' ),
+ 'search_items' => __( 'Search coupons', 'woocommerce' ),
+ 'not_found' => __( 'No coupons found', 'woocommerce' ),
+ 'not_found_in_trash' => __( 'No coupons found in trash', 'woocommerce' ),
+ 'parent' => __( 'Parent coupon', 'woocommerce' ),
+ 'filter_items_list' => __( 'Filter coupons', 'woocommerce' ),
+ 'items_list_navigation' => __( 'Coupons navigation', 'woocommerce' ),
+ 'items_list' => __( 'Coupons list', 'woocommerce' ),
+ ),
'description' => __( 'This is where you can add new coupons that customers can use in your store.', 'woocommerce' ),
'public' => false,
'show_ui' => true,
@@ -439,7 +474,8 @@ class WC_Post_types {
*/
public static function register_post_status() {
- $order_statuses = apply_filters( 'woocommerce_register_shop_order_post_statuses',
+ $order_statuses = apply_filters(
+ 'woocommerce_register_shop_order_post_statuses',
array(
'wc-pending' => array(
'label' => _x( 'Pending payment', 'Order status', 'woocommerce' ),
@@ -447,6 +483,7 @@ class WC_Post_types {
'exclude_from_search' => false,
'show_in_admin_all_list' => true,
'show_in_admin_status_list' => true,
+ /* translators: %s: number of orders */
'label_count' => _n_noop( 'Pending payment (%s)', 'Pending payment (%s)', 'woocommerce' ),
),
'wc-processing' => array(
@@ -455,6 +492,7 @@ class WC_Post_types {
'exclude_from_search' => false,
'show_in_admin_all_list' => true,
'show_in_admin_status_list' => true,
+ /* translators: %s: number of orders */
'label_count' => _n_noop( 'Processing (%s)', 'Processing (%s)', 'woocommerce' ),
),
'wc-on-hold' => array(
@@ -463,6 +501,7 @@ class WC_Post_types {
'exclude_from_search' => false,
'show_in_admin_all_list' => true,
'show_in_admin_status_list' => true,
+ /* translators: %s: number of orders */
'label_count' => _n_noop( 'On hold (%s)', 'On hold (%s)', 'woocommerce' ),
),
'wc-completed' => array(
@@ -471,6 +510,7 @@ class WC_Post_types {
'exclude_from_search' => false,
'show_in_admin_all_list' => true,
'show_in_admin_status_list' => true,
+ /* translators: %s: number of orders */
'label_count' => _n_noop( 'Completed (%s)', 'Completed (%s)', 'woocommerce' ),
),
'wc-cancelled' => array(
@@ -479,6 +519,7 @@ class WC_Post_types {
'exclude_from_search' => false,
'show_in_admin_all_list' => true,
'show_in_admin_status_list' => true,
+ /* translators: %s: number of orders */
'label_count' => _n_noop( 'Cancelled (%s)', 'Cancelled (%s)', 'woocommerce' ),
),
'wc-refunded' => array(
@@ -487,6 +528,7 @@ class WC_Post_types {
'exclude_from_search' => false,
'show_in_admin_all_list' => true,
'show_in_admin_status_list' => true,
+ /* translators: %s: number of orders */
'label_count' => _n_noop( 'Refunded (%s)', 'Refunded (%s)', 'woocommerce' ),
),
'wc-failed' => array(
@@ -495,6 +537,7 @@ class WC_Post_types {
'exclude_from_search' => false,
'show_in_admin_all_list' => true,
'show_in_admin_status_list' => true,
+ /* translators: %s: number of orders */
'label_count' => _n_noop( 'Failed (%s)', 'Failed (%s)', 'woocommerce' ),
),
)
@@ -536,7 +579,7 @@ class WC_Post_types {
/**
* Added product for Jetpack related posts.
*
- * @param array $post_types
+ * @param array $post_types Post types.
* @return array
*/
public static function rest_api_allowed_post_types( $post_types ) {
From 39f1c3e8fc25083d0b1d87ef3c45b95f506977c0 Mon Sep 17 00:00:00 2001
From: Claudio Sanches
Date: Wed, 21 Mar 2018 20:53:59 -0300
Subject: [PATCH 07/21] Fixed coding standards
---
includes/class-wc-shipping-zone.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/includes/class-wc-shipping-zone.php b/includes/class-wc-shipping-zone.php
index 43c56c2b5d6..cabfb93739b 100644
--- a/includes/class-wc-shipping-zone.php
+++ b/includes/class-wc-shipping-zone.php
@@ -2,7 +2,7 @@
/**
* Represents a single shipping zone
*
- * @since 2.6.0
+ * @since 2.6.0
* @version 3.0.0
* @package WooCommerce/Classes
*/
From 996d3decfe4627b242b1a4b6caa20538a8765c09 Mon Sep 17 00:00:00 2001
From: Claudio Sanches
Date: Wed, 21 Mar 2018 20:54:10 -0300
Subject: [PATCH 08/21] Fixed file and class dockblock
---
includes/class-wc-shipping.php | 10 ++++------
1 file changed, 4 insertions(+), 6 deletions(-)
diff --git a/includes/class-wc-shipping.php b/includes/class-wc-shipping.php
index e2f8c198dd9..3b93e5027c6 100644
--- a/includes/class-wc-shipping.php
+++ b/includes/class-wc-shipping.php
@@ -1,12 +1,11 @@
Date: Wed, 21 Mar 2018 20:58:20 -0300
Subject: [PATCH 09/21] Fixed includes/class-wc-shipping-rate.php PHPCS
violations
---
includes/class-wc-shipping-rate.php | 57 ++++++++++++++---------------
1 file changed, 28 insertions(+), 29 deletions(-)
diff --git a/includes/class-wc-shipping-rate.php b/includes/class-wc-shipping-rate.php
index da476dfa61c..06dc919123c 100644
--- a/includes/class-wc-shipping-rate.php
+++ b/includes/class-wc-shipping-rate.php
@@ -1,18 +1,17 @@
set_id( $id );
@@ -62,7 +61,7 @@ class WC_Shipping_Rate {
* Magic methods to support direct access to props.
*
* @since 3.2.0
- * @param string $key
+ * @param string $key Key.
* @return bool
*/
public function __isset( $key ) {
@@ -73,7 +72,7 @@ class WC_Shipping_Rate {
* Magic methods to support direct access to props.
*
* @since 3.2.0
- * @param string $key
+ * @param string $key Key.
* @return mixed
*/
public function __get( $key ) {
@@ -90,8 +89,8 @@ class WC_Shipping_Rate {
* Magic methods to support direct access to props.
*
* @since 3.2.0
- * @param string $key
- * @param mixed $value
+ * @param string $key Key.
+ * @param mixed $value Value.
*/
public function __set( $key, $value ) {
if ( is_callable( array( $this, "set_{$key}" ) ) ) {
@@ -105,7 +104,7 @@ class WC_Shipping_Rate {
* Set ID for the rate. This is usually a combination of the method and instance IDs.
*
* @since 3.2.0
- * @param string $id
+ * @param string $id Shipping rate ID.
*/
public function set_id( $id ) {
$this->data['id'] = (string) $id;
@@ -115,7 +114,7 @@ class WC_Shipping_Rate {
* Set shipping method ID the rate belongs to.
*
* @since 3.2.0
- * @param string $method_id
+ * @param string $method_id Shipping method ID.
*/
public function set_method_id( $method_id ) {
$this->data['method_id'] = (string) $method_id;
@@ -125,7 +124,7 @@ class WC_Shipping_Rate {
* Set instance ID the rate belongs to.
*
* @since 3.2.0
- * @param int $instance_id
+ * @param int $instance_id Instance ID.
*/
public function set_instance_id( $instance_id ) {
$this->data['instance_id'] = absint( $instance_id );
@@ -135,7 +134,7 @@ class WC_Shipping_Rate {
* Set rate label.
*
* @since 3.2.0
- * @param string $method_id
+ * @param string $label Shipping rate label.
*/
public function set_label( $label ) {
$this->data['label'] = (string) $label;
@@ -146,7 +145,7 @@ class WC_Shipping_Rate {
*
* @todo 4.0 Prevent negative value being set. #19293
* @since 3.2.0
- * @param string $cost
+ * @param string $cost Shipping rate cost.
*/
public function set_cost( $cost ) {
$this->data['cost'] = $cost;
@@ -156,7 +155,7 @@ class WC_Shipping_Rate {
* Set rate taxes.
*
* @since 3.2.0
- * @param array $taxes
+ * @param array $taxes List of taxes applied to shipping rate.
*/
public function set_taxes( $taxes ) {
$this->data['taxes'] = ! empty( $taxes ) && is_array( $taxes ) ? $taxes : array();
@@ -227,15 +226,15 @@ class WC_Shipping_Rate {
* @return array
*/
public function get_shipping_tax() {
- return apply_filters( 'woocommerce_get_shipping_tax', sizeof( $this->taxes ) > 0 && ! WC()->customer->get_is_vat_exempt() ? array_sum( $this->taxes ) : 0, $this );
+ return apply_filters( 'woocommerce_get_shipping_tax', count( $this->taxes ) > 0 && ! WC()->customer->get_is_vat_exempt() ? array_sum( $this->taxes ) : 0, $this );
}
/**
* Add some meta data for this rate.
*
* @since 2.6.0
- * @param string $key
- * @param string $value
+ * @param string $key Key.
+ * @param string $value Value.
*/
public function add_meta_data( $key, $value ) {
$this->meta_data[ wc_clean( $key ) ] = wc_clean( $value );
From e79012e7e31c982f5f59f49cd5bd1996b0030ded Mon Sep 17 00:00:00 2001
From: Claudio Sanches
Date: Thu, 22 Mar 2018 12:06:36 -0300
Subject: [PATCH 10/21] Fixed a typo
---
includes/class-wc-payment-gateways.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/includes/class-wc-payment-gateways.php b/includes/class-wc-payment-gateways.php
index 0d75bf2f46c..751f5c7441e 100644
--- a/includes/class-wc-payment-gateways.php
+++ b/includes/class-wc-payment-gateways.php
@@ -108,7 +108,7 @@ class WC_Payment_Gateways {
$load_gateway = is_string( $gateway ) ? new $gateway() : $gateway;
if ( isset( $ordering[ $load_gateway->id ] ) && is_numeric( $ordering[ $load_gateway->id ] ) ) {
- // Add in .
+ // Add in position.
$this->payment_gateways[ $ordering[ $load_gateway->id ] ] = $load_gateway;
} else {
// Add to end of the array.
From a529e1fdf3cf3d7dc9a1aea96e006156a11c0bfa Mon Sep 17 00:00:00 2001
From: Claudio Sanches
Date: Thu, 22 Mar 2018 14:54:16 -0300
Subject: [PATCH 11/21] Fixed includes/class-wc-emails.php PHPCS violations
---
includes/class-wc-emails.php | 295 +++++++++++++++++++++--------------
1 file changed, 177 insertions(+), 118 deletions(-)
diff --git a/includes/class-wc-emails.php b/includes/class-wc-emails.php
index 0ebf746b5c5..b1ef004ed9e 100644
--- a/includes/class-wc-emails.php
+++ b/includes/class-wc-emails.php
@@ -1,32 +1,40 @@
push_to_queue( array(
- 'filter' => current_filter(),
- 'args' => func_get_args(),
- ) );
+ self::$background_emailer->push_to_queue(
+ array(
+ 'filter' => current_filter(),
+ 'args' => func_get_args(),
+ )
+ );
} else {
call_user_func_array( array( __CLASS__, 'send_transactional_email' ), func_get_args() );
}
@@ -150,19 +162,18 @@ class WC_Emails {
do_action_ref_array( current_filter() . '_notification', $args );
} catch ( Exception $e ) {
if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) {
- trigger_error( 'Transactional email triggered fatal error for callback ' . current_filter(), E_USER_WARNING );
+ trigger_error( 'Transactional email triggered fatal error for callback ' . current_filter(), E_USER_WARNING ); // phpcs:ignore WordPress.XSS.EscapeOutput.OutputNotEscaped, WordPress.PHP.DevelopmentFunctions.error_log_trigger_error
}
}
}
/**
* Constructor for the email class hooks in all emails that can be sent.
- *
*/
public function __construct() {
$this->init();
- // Email Header, Footer and content hooks
+ // Email Header, Footer and content hooks.
add_action( 'woocommerce_email_header', array( $this, 'email_header' ) );
add_action( 'woocommerce_email_footer', array( $this, 'email_footer' ) );
add_action( 'woocommerce_email_order_details', array( $this, 'order_downloads' ), 10, 4 );
@@ -171,16 +182,16 @@ class WC_Emails {
add_action( 'woocommerce_email_customer_details', array( $this, 'customer_details' ), 10, 3 );
add_action( 'woocommerce_email_customer_details', array( $this, 'email_addresses' ), 20, 3 );
- // Hooks for sending emails during store events
+ // Hooks for sending emails during store events.
add_action( 'woocommerce_low_stock_notification', array( $this, 'low_stock' ) );
add_action( 'woocommerce_no_stock_notification', array( $this, 'no_stock' ) );
add_action( 'woocommerce_product_on_backorder_notification', array( $this, 'backorder' ) );
add_action( 'woocommerce_created_customer_notification', array( $this, 'customer_new_account' ), 10, 3 );
// Hook for replacing {site_title} in email-footer.
- add_filter( 'woocommerce_email_footer_text' , array( $this, 'email_footer_replace_site_title' ) );
+ add_filter( 'woocommerce_email_footer_text', array( $this, 'email_footer_replace_site_title' ) );
- // Let 3rd parties unhook the above via this hook
+ // Let 3rd parties unhook the above via this hook.
do_action( 'woocommerce_email', $this );
}
@@ -188,26 +199,26 @@ class WC_Emails {
* Init email classes.
*/
public function init() {
- // Include email classes
- include_once( dirname( __FILE__ ) . '/emails/class-wc-email.php' );
+ // Include email classes.
+ include_once dirname( __FILE__ ) . '/emails/class-wc-email.php';
- $this->emails['WC_Email_New_Order'] = include( 'emails/class-wc-email-new-order.php' );
- $this->emails['WC_Email_Cancelled_Order'] = include( 'emails/class-wc-email-cancelled-order.php' );
- $this->emails['WC_Email_Failed_Order'] = include( 'emails/class-wc-email-failed-order.php' );
- $this->emails['WC_Email_Customer_On_Hold_Order'] = include( 'emails/class-wc-email-customer-on-hold-order.php' );
- $this->emails['WC_Email_Customer_Processing_Order'] = include( 'emails/class-wc-email-customer-processing-order.php' );
- $this->emails['WC_Email_Customer_Completed_Order'] = include( 'emails/class-wc-email-customer-completed-order.php' );
- $this->emails['WC_Email_Customer_Refunded_Order'] = include( 'emails/class-wc-email-customer-refunded-order.php' );
- $this->emails['WC_Email_Customer_Invoice'] = include( 'emails/class-wc-email-customer-invoice.php' );
- $this->emails['WC_Email_Customer_Note'] = include( 'emails/class-wc-email-customer-note.php' );
- $this->emails['WC_Email_Customer_Reset_Password'] = include( 'emails/class-wc-email-customer-reset-password.php' );
- $this->emails['WC_Email_Customer_New_Account'] = include( 'emails/class-wc-email-customer-new-account.php' );
+ $this->emails['WC_Email_New_Order'] = include 'emails/class-wc-email-new-order.php';
+ $this->emails['WC_Email_Cancelled_Order'] = include 'emails/class-wc-email-cancelled-order.php';
+ $this->emails['WC_Email_Failed_Order'] = include 'emails/class-wc-email-failed-order.php';
+ $this->emails['WC_Email_Customer_On_Hold_Order'] = include 'emails/class-wc-email-customer-on-hold-order.php';
+ $this->emails['WC_Email_Customer_Processing_Order'] = include 'emails/class-wc-email-customer-processing-order.php';
+ $this->emails['WC_Email_Customer_Completed_Order'] = include 'emails/class-wc-email-customer-completed-order.php';
+ $this->emails['WC_Email_Customer_Refunded_Order'] = include 'emails/class-wc-email-customer-refunded-order.php';
+ $this->emails['WC_Email_Customer_Invoice'] = include 'emails/class-wc-email-customer-invoice.php';
+ $this->emails['WC_Email_Customer_Note'] = include 'emails/class-wc-email-customer-note.php';
+ $this->emails['WC_Email_Customer_Reset_Password'] = include 'emails/class-wc-email-customer-reset-password.php';
+ $this->emails['WC_Email_Customer_New_Account'] = include 'emails/class-wc-email-customer-new-account.php';
$this->emails = apply_filters( 'woocommerce_email_classes', $this->emails );
- // include css inliner
+ // include css inliner.
if ( ! class_exists( 'Emogrifier' ) && class_exists( 'DOMDocument' ) ) {
- include_once( dirname( __FILE__ ) . '/libraries/class-emogrifier.php' );
+ include_once dirname( __FILE__ ) . '/libraries/class-emogrifier.php';
}
}
@@ -241,7 +252,7 @@ class WC_Emails {
/**
* Get the email header.
*
- * @param mixed $email_heading heading for the email
+ * @param mixed $email_heading Heading for the email.
*/
public function email_header( $email_heading ) {
wc_get_template( 'emails/email-header.php', array( 'email_heading' => $email_heading ) );
@@ -280,7 +291,7 @@ class WC_Emails {
do_action( 'woocommerce_email_header', $email_heading, null );
- echo wpautop( wptexturize( $message ) );
+ echo wpautop( wptexturize( $message ) ); // WPCS: XSS ok.
do_action( 'woocommerce_email_footer', null );
@@ -293,15 +304,15 @@ class WC_Emails {
/**
* Send the email.
*
- * @param mixed $to
- * @param mixed $subject
- * @param mixed $message
- * @param string $headers (default: "Content-Type: text/html\r\n")
- * @param string $attachments (default: "")
+ * @param mixed $to Receiver.
+ * @param mixed $subject Email subject.
+ * @param mixed $message Message.
+ * @param string $headers Email headers (default: "Content-Type: text/html\r\n").
+ * @param string $attachments Attachments (default: "").
* @return bool
*/
- public function send( $to, $subject, $message, $headers = "Content-Type: text/html\r\n", $attachments = "" ) {
- // Send
+ public function send( $to, $subject, $message, $headers = "Content-Type: text/html\r\n", $attachments = '' ) {
+ // Send.
$email = new WC_Email();
return $email->send( $to, $subject, $message, $headers, $attachments );
}
@@ -309,7 +320,7 @@ class WC_Emails {
/**
* Prepare and send the customer invoice email on demand.
*
- * @param int|WC_Order $order
+ * @param int|WC_Order $order Order instance or ID.
*/
public function customer_invoice( $order ) {
$email = $this->emails['WC_Email_Customer_Invoice'];
@@ -324,9 +335,9 @@ class WC_Emails {
/**
* Customer new account welcome email.
*
- * @param int $customer_id
- * @param array $new_customer_data
- * @param bool $password_generated
+ * @param int $customer_id Customer ID.
+ * @param array $new_customer_data New customer data.
+ * @param bool $password_generated If password is generated.
*/
public function customer_new_account( $customer_id, $new_customer_data = array(), $password_generated = false ) {
if ( ! $customer_id ) {
@@ -342,16 +353,30 @@ class WC_Emails {
/**
* Show the order details table
*
- * @param WC_Order $order
- * @param bool $sent_to_admin
- * @param bool $plain_text
- * @param string $email
+ * @param WC_Order $order Order instance.
+ * @param bool $sent_to_admin If should sent to admin.
+ * @param bool $plain_text If is plain text email.
+ * @param string $email Email address.
*/
public function order_details( $order, $sent_to_admin = false, $plain_text = false, $email = '' ) {
if ( $plain_text ) {
- wc_get_template( 'emails/plain/email-order-details.php', array( 'order' => $order, 'sent_to_admin' => $sent_to_admin, 'plain_text' => $plain_text, 'email' => $email ) );
+ wc_get_template(
+ 'emails/plain/email-order-details.php', array(
+ 'order' => $order,
+ 'sent_to_admin' => $sent_to_admin,
+ 'plain_text' => $plain_text,
+ 'email' => $email,
+ )
+ );
} else {
- wc_get_template( 'emails/email-order-details.php', array( 'order' => $order, 'sent_to_admin' => $sent_to_admin, 'plain_text' => $plain_text, 'email' => $email ) );
+ wc_get_template(
+ 'emails/email-order-details.php', array(
+ 'order' => $order,
+ 'sent_to_admin' => $sent_to_admin,
+ 'plain_text' => $plain_text,
+ 'email' => $email,
+ )
+ );
}
}
@@ -359,10 +384,10 @@ class WC_Emails {
* Show order downloads in a table.
*
* @since 3.2.0
- * @param WC_Order $order
- * @param bool $sent_to_admin
- * @param bool $plain_text
- * @param string $email
+ * @param WC_Order $order Order instance.
+ * @param bool $sent_to_admin If should sent to admin.
+ * @param bool $plain_text If is plain text email.
+ * @param string $email Email address.
*/
public function order_downloads( $order, $sent_to_admin = false, $plain_text = false, $email = '' ) {
$show_downloads = $order->has_downloadable_item() && $order->is_download_permitted() && ! $sent_to_admin;
@@ -372,25 +397,45 @@ class WC_Emails {
}
$downloads = $order->get_downloadable_items();
- $columns = apply_filters( 'woocommerce_email_downloads_columns', array(
- 'download-product' => __( 'Product', 'woocommerce' ),
- 'download-expires' => __( 'Expires', 'woocommerce' ),
- 'download-file' => __( 'Download', 'woocommerce' ),
- ) );
+ $columns = apply_filters(
+ 'woocommerce_email_downloads_columns', array(
+ 'download-product' => __( 'Product', 'woocommerce' ),
+ 'download-expires' => __( 'Expires', 'woocommerce' ),
+ 'download-file' => __( 'Download', 'woocommerce' ),
+ )
+ );
if ( $plain_text ) {
- wc_get_template( 'emails/plain/email-downloads.php', array( 'order' => $order, 'sent_to_admin' => $sent_to_admin, 'plain_text' => $plain_text, 'email' => $email, 'downloads' => $downloads, 'columns' => $columns ) );
+ wc_get_template(
+ 'emails/plain/email-downloads.php', array(
+ 'order' => $order,
+ 'sent_to_admin' => $sent_to_admin,
+ 'plain_text' => $plain_text,
+ 'email' => $email,
+ 'downloads' => $downloads,
+ 'columns' => $columns,
+ )
+ );
} else {
- wc_get_template( 'emails/email-downloads.php', array( 'order' => $order, 'sent_to_admin' => $sent_to_admin, 'plain_text' => $plain_text, 'email' => $email, 'downloads' => $downloads, 'columns' => $columns ) );
+ wc_get_template(
+ 'emails/email-downloads.php', array(
+ 'order' => $order,
+ 'sent_to_admin' => $sent_to_admin,
+ 'plain_text' => $plain_text,
+ 'email' => $email,
+ 'downloads' => $downloads,
+ 'columns' => $columns,
+ )
+ );
}
}
/**
* Add order meta to email templates.
*
- * @param mixed $order
- * @param bool $sent_to_admin (default: false)
- * @param bool $plain_text (default: false)
+ * @param WC_Order $order Order instance.
+ * @param bool $sent_to_admin If should sent to admin.
+ * @param bool $plain_text If is plain text email.
*/
public function order_meta( $order, $sent_to_admin = false, $plain_text = false ) {
$fields = apply_filters( 'woocommerce_email_order_meta_fields', array(), $sent_to_admin, $order );
@@ -421,14 +466,14 @@ class WC_Emails {
foreach ( $fields as $field ) {
if ( isset( $field['label'] ) && isset( $field['value'] ) && $field['value'] ) {
- echo $field['label'] . ': ' . $field['value'] . "\n";
+ echo $field['label'] . ': ' . $field['value'] . "\n"; // WPCS: XSS ok.
}
}
} else {
foreach ( $fields as $field ) {
if ( isset( $field['label'] ) && isset( $field['value'] ) && $field['value'] ) {
- echo '' . $field['label'] . ': ' . $field['value'] . '
';
+ echo '' . $field['label'] . ': ' . $field['value'] . '
'; // WPCS: XSS ok.
}
}
}
@@ -437,7 +482,8 @@ class WC_Emails {
/**
* Is customer detail field valid?
- * @param array $field
+ *
+ * @param array $field Field data to check if is valid.
* @return boolean
*/
public function customer_detail_field_is_valid( $field ) {
@@ -449,10 +495,9 @@ class WC_Emails {
*
* In versions prior to 3.2 this was used for notes, phone and email but this data has moved.
*
- * @param WC_Order $order
- * @param bool $sent_to_admin (default: false)
- * @param bool $plain_text (default: false)
- * @return string
+ * @param WC_Order $order Order instance.
+ * @param bool $sent_to_admin If should sent to admin.
+ * @param bool $plain_text If is plain text email.
*/
public function customer_details( $order, $sent_to_admin = false, $plain_text = false ) {
if ( ! is_a( $order, 'WC_Order' ) ) {
@@ -473,23 +518,34 @@ class WC_Emails {
/**
* Get the email addresses.
*
- * @param WC_Order $order
- * @param bool $sent_to_admin
- * @param bool $plain_text
+ * @param WC_Order $order Order instance.
+ * @param bool $sent_to_admin If should sent to admin.
+ * @param bool $plain_text If is plain text email.
*/
public function email_addresses( $order, $sent_to_admin = false, $plain_text = false ) {
if ( ! is_a( $order, 'WC_Order' ) ) {
return;
}
if ( $plain_text ) {
- wc_get_template( 'emails/plain/email-addresses.php', array( 'order' => $order, 'sent_to_admin' => $sent_to_admin ) );
+ wc_get_template(
+ 'emails/plain/email-addresses.php', array(
+ 'order' => $order,
+ 'sent_to_admin' => $sent_to_admin,
+ )
+ );
} else {
- wc_get_template( 'emails/email-addresses.php', array( 'order' => $order, 'sent_to_admin' => $sent_to_admin ) );
+ wc_get_template(
+ 'emails/email-addresses.php', array(
+ 'order' => $order,
+ 'sent_to_admin' => $sent_to_admin,
+ )
+ );
}
}
/**
* Get blog name formatted for emails.
+ *
* @return string
*/
private function get_blogname() {
@@ -499,7 +555,7 @@ class WC_Emails {
/**
* Low stock notification email.
*
- * @param WC_Product $product
+ * @param WC_Product $product Product instance.
*/
public function low_stock( $product ) {
if ( 'no' === get_option( 'woocommerce_notify_low_stock', 'yes' ) ) {
@@ -507,8 +563,8 @@ class WC_Emails {
}
$subject = sprintf( '[%s] %s', $this->get_blogname(), __( 'Product low in stock', 'woocommerce' ) );
- /* translators: 1: product name 2: items in stock */
$message = sprintf(
+ /* translators: 1: product name 2: items in stock */
__( '%1$s is low in stock. There are %2$d left.', 'woocommerce' ),
html_entity_decode( strip_tags( $product->get_formatted_name() ), ENT_QUOTES, get_bloginfo( 'charset' ) ),
html_entity_decode( strip_tags( $product->get_stock_quantity() ) )
@@ -526,7 +582,7 @@ class WC_Emails {
/**
* No stock notification email.
*
- * @param WC_Product $product
+ * @param WC_Product $product Product instance.
*/
public function no_stock( $product ) {
if ( 'no' === get_option( 'woocommerce_notify_no_stock', 'yes' ) ) {
@@ -549,14 +605,16 @@ class WC_Emails {
/**
* Backorder notification email.
*
- * @param array $args
+ * @param array $args Arguments.
*/
public function backorder( $args ) {
- $args = wp_parse_args( $args, array(
- 'product' => '',
- 'quantity' => '',
- 'order_id' => '',
- ) );
+ $args = wp_parse_args(
+ $args, array(
+ 'product' => '',
+ 'quantity' => '',
+ 'order_id' => '',
+ )
+ );
$order = wc_get_order( $args['order_id'] );
if (
@@ -569,8 +627,9 @@ class WC_Emails {
}
$subject = sprintf( '[%s] %s', $this->get_blogname(), __( 'Product backorder', 'woocommerce' ) );
+ /* translators: 1: product quantity 2: product name 3: order number */
$message = sprintf( __( '%1$s units of %2$s have been backordered in order #%3$s.', 'woocommerce' ), $args['quantity'], html_entity_decode( strip_tags( $args['product']->get_formatted_name() ), ENT_QUOTES, get_bloginfo( 'charset' ) ), $order->get_order_number() );
-
+
wp_mail(
apply_filters( 'woocommerce_email_recipient_backorder', get_option( 'woocommerce_stock_email_recipient' ), $args ),
apply_filters( 'woocommerce_email_subject_backorder', $subject, $args ),
@@ -587,9 +646,9 @@ class WC_Emails {
* @see WC_Structured_Data::generate_order_data()
*
* @since 2.6.0
- * @param mixed $order
- * @param bool $sent_to_admin (default: false)
- * @param bool $plain_text (default: false)
+ * @param WC_Order $order Order instance.
+ * @param bool $sent_to_admin If should sent to admin.
+ * @param bool $plain_text If is plain text email.
*/
public function order_schema_markup( $order, $sent_to_admin = false, $plain_text = false ) {
wc_deprecated_function( 'WC_Emails::order_schema_markup', '3.0', 'WC_Structured_Data::generate_order_data' );
From 809ca5e0fcf62f10d270bb90efa22b02f2853913 Mon Sep 17 00:00:00 2001
From: Claudio Sanches
Date: Thu, 22 Mar 2018 15:07:06 -0300
Subject: [PATCH 12/21] Fixed includes/class-wc-product-attribute.php PHPCS
violations
---
includes/class-wc-product-attribute.php | 87 ++++++++++++-------------
1 file changed, 43 insertions(+), 44 deletions(-)
diff --git a/includes/class-wc-product-attribute.php b/includes/class-wc-product-attribute.php
index 4dc117dede3..bf68696f171 100644
--- a/includes/class-wc-product-attribute.php
+++ b/includes/class-wc-product-attribute.php
@@ -1,18 +1,19 @@
data, array(
- 'is_visible' => $this->get_visible() ? 1 : 0,
- 'is_variation' => $this->get_variation() ? 1 : 0,
- 'is_taxonomy' => $this->is_taxonomy() ? 1 : 0,
- 'value' => $this->is_taxonomy() ? '' : wc_implode_text_attributes( $this->get_options() ),
- ) );
+ return array_merge(
+ $this->data, array(
+ 'is_visible' => $this->get_visible() ? 1 : 0,
+ 'is_variation' => $this->get_variation() ? 1 : 0,
+ 'is_taxonomy' => $this->is_taxonomy() ? 1 : 0,
+ 'value' => $this->is_taxonomy() ? '' : wc_implode_text_attributes( $this->get_options() ),
+ )
+ );
}
/*
@@ -139,7 +142,7 @@ class WC_Product_Attribute implements ArrayAccess {
/**
* Set ID (this is the attribute ID).
*
- * @param int $value
+ * @param int $value Attribute ID.
*/
public function set_id( $value ) {
$this->data['id'] = absint( $value );
@@ -148,7 +151,7 @@ class WC_Product_Attribute implements ArrayAccess {
/**
* Set name (this is the attribute name or taxonomy).
*
- * @param int $value
+ * @param int $value Attribute name.
*/
public function set_name( $value ) {
$this->data['name'] = $value;
@@ -157,7 +160,7 @@ class WC_Product_Attribute implements ArrayAccess {
/**
* Set options.
*
- * @param array $value
+ * @param array $value Attribute options.
*/
public function set_options( $value ) {
$this->data['options'] = $value;
@@ -166,7 +169,7 @@ class WC_Product_Attribute implements ArrayAccess {
/**
* Set position.
*
- * @param int $value
+ * @param int $value Attribute position.
*/
public function set_position( $value ) {
$this->data['position'] = absint( $value );
@@ -175,7 +178,7 @@ class WC_Product_Attribute implements ArrayAccess {
/**
* Set if visible.
*
- * @param bool $value
+ * @param bool $value If is visible on Product's additional info tab.
*/
public function set_visible( $value ) {
$this->data['visible'] = wc_string_to_bool( $value );
@@ -184,7 +187,7 @@ class WC_Product_Attribute implements ArrayAccess {
/**
* Set if variation.
*
- * @param bool $value
+ * @param bool $value If is used for variations.
*/
public function set_variation( $value ) {
$this->data['variation'] = wc_string_to_bool( $value );
@@ -257,26 +260,22 @@ class WC_Product_Attribute implements ArrayAccess {
*/
/**
- * offsetGet.
+ * OffsetGet.
*
- * @param string $offset
+ * @param string $offset Offset.
* @return mixed
*/
public function offsetGet( $offset ) {
switch ( $offset ) {
- case 'is_variation' :
+ case 'is_variation':
return $this->get_variation() ? 1 : 0;
- break;
- case 'is_visible' :
+ case 'is_visible':
return $this->get_visible() ? 1 : 0;
- break;
- case 'is_taxonomy' :
+ case 'is_taxonomy':
return $this->is_taxonomy() ? 1 : 0;
- break;
- case 'value' :
+ case 'value':
return $this->is_taxonomy() ? '' : wc_implode_text_attributes( $this->get_options() );
- break;
- default :
+ default:
if ( is_callable( array( $this, "get_$offset" ) ) ) {
return $this->{"get_$offset"}();
}
@@ -286,23 +285,23 @@ class WC_Product_Attribute implements ArrayAccess {
}
/**
- * offsetSet.
+ * OffsetSet.
*
- * @param string $offset
- * @param mixed $value
+ * @param string $offset Offset.
+ * @param mixed $value Value.
*/
public function offsetSet( $offset, $value ) {
switch ( $offset ) {
- case 'is_variation' :
+ case 'is_variation':
$this->set_variation( $value );
break;
- case 'is_visible' :
+ case 'is_visible':
$this->set_visible( $value );
break;
- case 'value' :
+ case 'value':
$this->set_options( $value );
break;
- default :
+ default:
if ( is_callable( array( $this, "set_$offset" ) ) ) {
return $this->{"set_$offset"}( $value );
}
@@ -311,19 +310,19 @@ class WC_Product_Attribute implements ArrayAccess {
}
/**
- * offsetUnset.
+ * OffsetUnset.
*
- * @param string $offset
+ * @param string $offset Offset.
*/
public function offsetUnset( $offset ) {}
/**
- * offsetExists.
+ * OffsetExists.
*
- * @param string $offset
+ * @param string $offset Offset.
* @return bool
*/
public function offsetExists( $offset ) {
- return in_array( $offset, array_merge( array( 'is_variation', 'is_visible', 'is_taxonomy', 'value' ), array_keys( $this->data ) ) );
+ return in_array( $offset, array_merge( array( 'is_variation', 'is_visible', 'is_taxonomy', 'value' ), array_keys( $this->data ) ), true );
}
}
From 475e0c734fc6c90cd9b9ac026633010d310ce62f Mon Sep 17 00:00:00 2001
From: Claudio Sanches
Date: Thu, 22 Mar 2018 15:10:22 -0300
Subject: [PATCH 13/21] Fixed includes/class-wc-product-download.php PHPCS
violations
---
includes/class-wc-product-download.php | 81 ++++++++++++++++----------
1 file changed, 51 insertions(+), 30 deletions(-)
diff --git a/includes/class-wc-product-download.php b/includes/class-wc-product-download.php
index 2dd49f7ee37..d4f3db702f1 100644
--- a/includes/class-wc-product-download.php
+++ b/includes/class-wc-product-download.php
@@ -1,31 +1,34 @@
'',
- 'name' => '',
- 'file' => '',
+ 'id' => '',
+ 'name' => '',
+ 'file' => '',
);
/**
* Returns all data for this object.
+ *
* @return array
*/
public function get_data() {
@@ -34,6 +37,7 @@ class WC_Product_Download implements ArrayAccess {
/**
* Get allowed mime types.
+ *
* @return array
*/
public function get_allowed_mime_types() {
@@ -42,6 +46,7 @@ class WC_Product_Download implements ArrayAccess {
/**
* Get type of file path set.
+ *
* @param string $file_path optional.
* @return string absolute, relative, or shortcode.
*/
@@ -58,6 +63,7 @@ class WC_Product_Download implements ArrayAccess {
/**
* Get file type.
+ *
* @return string
*/
public function get_file_type() {
@@ -67,26 +73,29 @@ class WC_Product_Download implements ArrayAccess {
/**
* Get file extension.
+ *
* @return string
*/
public function get_file_extension() {
- $parsed_url = parse_url( $this->get_file(), PHP_URL_PATH );
+ $parsed_url = wp_parse_url( $this->get_file(), PHP_URL_PATH );
return pathinfo( $parsed_url, PATHINFO_EXTENSION );
}
/**
* Check if file is allowed.
+ *
* @return boolean
*/
public function is_allowed_filetype() {
if ( 'relative' !== $this->get_type_of_file_path() ) {
return true;
}
- return ! $this->get_file_extension() || in_array( $this->get_file_type(), $this->get_allowed_mime_types() );
+ return ! $this->get_file_extension() || in_array( $this->get_file_type(), $this->get_allowed_mime_types(), true );
}
/**
* Validate file exists.
+ *
* @return boolean
*/
public function file_exists() {
@@ -110,7 +119,8 @@ class WC_Product_Download implements ArrayAccess {
/**
* Set ID.
- * @param string $value
+ *
+ * @param string $value Download ID.
*/
public function set_id( $value ) {
$this->data['id'] = wc_clean( $value );
@@ -118,7 +128,8 @@ class WC_Product_Download implements ArrayAccess {
/**
* Set name.
- * @param string $value
+ *
+ * @param string $value Download name.
*/
public function set_name( $value ) {
$this->data['name'] = wc_clean( $value );
@@ -126,8 +137,9 @@ class WC_Product_Download implements ArrayAccess {
/**
* Set previous_hash.
+ *
* @deprecated 3.3.0 No longer using filename based hashing to keep track of files.
- * @param string $value
+ * @param string $value Previous hash.
*/
public function set_previous_hash( $value ) {
wc_deprecated_function( __FUNCTION__, '3.3' );
@@ -136,11 +148,12 @@ class WC_Product_Download implements ArrayAccess {
/**
* Set file.
- * @param string $value
+ *
+ * @param string $value File.
*/
public function set_file( $value ) {
switch ( $this->get_type_of_file_path( $value ) ) {
- case 'absolute' :
+ case 'absolute':
$this->data['file'] = esc_url_raw( $value );
break;
default:
@@ -157,6 +170,7 @@ class WC_Product_Download implements ArrayAccess {
/**
* Get id.
+ *
* @return string
*/
public function get_id() {
@@ -165,6 +179,7 @@ class WC_Product_Download implements ArrayAccess {
/**
* Get name.
+ *
* @return string
*/
public function get_name() {
@@ -173,6 +188,7 @@ class WC_Product_Download implements ArrayAccess {
/**
* Get previous_hash.
+ *
* @deprecated 3.3.0 No longer using filename based hashing to keep track of files.
* @return string
*/
@@ -183,6 +199,7 @@ class WC_Product_Download implements ArrayAccess {
/**
* Get file.
+ *
* @return string
*/
public function get_file() {
@@ -196,13 +213,14 @@ class WC_Product_Download implements ArrayAccess {
*/
/**
- * offsetGet
- * @param string $offset
+ * OffsetGet.
+ *
+ * @param string $offset Offset.
* @return mixed
*/
public function offsetGet( $offset ) {
switch ( $offset ) {
- default :
+ default:
if ( is_callable( array( $this, "get_$offset" ) ) ) {
return $this->{"get_$offset"}();
}
@@ -212,13 +230,14 @@ class WC_Product_Download implements ArrayAccess {
}
/**
- * offsetSet
- * @param string $offset
- * @param mixed $value
+ * OffsetSet.
+ *
+ * @param string $offset Offset.
+ * @param mixed $value Value.
*/
public function offsetSet( $offset, $value ) {
switch ( $offset ) {
- default :
+ default:
if ( is_callable( array( $this, "set_$offset" ) ) ) {
return $this->{"set_$offset"}( $value );
}
@@ -227,17 +246,19 @@ class WC_Product_Download implements ArrayAccess {
}
/**
- * offsetUnset
- * @param string $offset
+ * OffsetUnset.
+ *
+ * @param string $offset Offset.
*/
public function offsetUnset( $offset ) {}
/**
- * offsetExists
- * @param string $offset
+ * OffsetExists.
+ *
+ * @param string $offset Offset.
* @return bool
*/
public function offsetExists( $offset ) {
- return in_array( $offset, array_keys( $this->data ) );
+ return in_array( $offset, array_keys( $this->data ), true );
}
}
From 6eada732b88f34bc37669eca6c9b66010c8d5611 Mon Sep 17 00:00:00 2001
From: Claudio Sanches
Date: Thu, 22 Mar 2018 15:26:09 -0300
Subject: [PATCH 14/21] Fixed includes/class-wc-product-external.php PHPCS
violations
---
includes/class-wc-product-external.php | 28 +++++++++++++-------------
1 file changed, 14 insertions(+), 14 deletions(-)
diff --git a/includes/class-wc-product-external.php b/includes/class-wc-product-external.php
index 114059d9907..6083f89584f 100644
--- a/includes/class-wc-product-external.php
+++ b/includes/class-wc-product-external.php
@@ -1,18 +1,17 @@
set_prop( 'manage_stock', false );
@@ -111,7 +111,7 @@ class WC_Product_External extends WC_Product {
*
* @since 3.0.0
*
- * @param string $stock_status
+ * @param string $stock_status Stock status.
*/
public function set_stock_status( $stock_status = '' ) {
$this->set_prop( 'stock_status', 'instock' );
From 73a56469ef4285d7a903971ceafd3d032754b5a6 Mon Sep 17 00:00:00 2001
From: Claudio Sanches
Date: Thu, 22 Mar 2018 15:36:07 -0300
Subject: [PATCH 15/21] Fixed includes/class-wc-product-factory.php PHPCS
violations
---
includes/class-wc-product-factory.php | 38 +++++++++++++--------------
1 file changed, 19 insertions(+), 19 deletions(-)
diff --git a/includes/class-wc-product-factory.php b/includes/class-wc-product-factory.php
index 8626900b0f0..7b60c6eae2f 100644
--- a/includes/class-wc-product-factory.php
+++ b/includes/class-wc-product-factory.php
@@ -1,31 +1,31 @@
get_product_id( $product_id ) ) {
+ $product_id = $this->get_product_id( $product_id );
+
+ if ( ! $product_id ) {
return false;
}
@@ -53,8 +53,8 @@ class WC_Product_Factory {
* Gets a product classname and allows filtering. Returns WC_Product_Simple if the class does not exist.
*
* @since 3.0.0
- * @param int $product_id
- * @param string $product_type
+ * @param int $product_id Product ID.
+ * @param string $product_type Product type.
* @return string
*/
public static function get_product_classname( $product_id, $product_type ) {
@@ -71,7 +71,7 @@ class WC_Product_Factory {
* Get the product type for a product.
*
* @since 3.0.0
- * @param int $product_id
+ * @param int $product_id Product ID.
* @return string|false
*/
public static function get_product_type( $product_id ) {
@@ -87,7 +87,7 @@ class WC_Product_Factory {
/**
* Create a WC coding standards compliant class name e.g. WC_Product_Type_Class instead of WC_Product_type-class.
*
- * @param string $product_type
+ * @param string $product_type Product type.
* @return string|false
*/
public static function get_classname_from_product_type( $product_type ) {
@@ -97,8 +97,8 @@ class WC_Product_Factory {
/**
* Get the product ID depending on what was passed.
*
- * @since 3.0.0
- * @param mixed $product
+ * @since 3.0.0
+ * @param WC_Product|WP_Post|int|bool $product Product instance, post instance, numeric or false to use global $post.
* @return int|bool false on failure
*/
private function get_product_id( $product ) {
From dfeb867a04d862d3203591d5db28f257b351cffb Mon Sep 17 00:00:00 2001
From: Claudio Sanches
Date: Thu, 22 Mar 2018 15:37:29 -0300
Subject: [PATCH 16/21] Fixed includes/class-wc-product-grouped.php PHPCS
violations
---
includes/class-wc-product-grouped.php | 25 +++++++++----------------
1 file changed, 9 insertions(+), 16 deletions(-)
diff --git a/includes/class-wc-product-grouped.php b/includes/class-wc-product-grouped.php
index cf350f2d8c3..80b11b3dd7a 100644
--- a/includes/class-wc-product-grouped.php
+++ b/includes/class-wc-product-grouped.php
@@ -1,22 +1,17 @@
Date: Thu, 22 Mar 2018 15:41:53 -0300
Subject: [PATCH 17/21] Fixed includes/class-wc-product-query.php PHPCS
violations
---
includes/class-wc-product-query.php | 92 +++++++++++++++--------------
1 file changed, 48 insertions(+), 44 deletions(-)
diff --git a/includes/class-wc-product-query.php b/includes/class-wc-product-query.php
index 59244506cbe..d6780241cb0 100644
--- a/includes/class-wc-product-query.php
+++ b/includes/class-wc-product-query.php
@@ -1,73 +1,77 @@
array( 'draft', 'pending', 'private', 'publish' ),
- 'type' => array_merge( array_keys( wc_get_product_types() ) ),
- 'limit' => get_option( 'posts_per_page' ),
- 'include' => array(),
- 'date_created' => '',
- 'date_modified' => '',
- 'featured' => '',
- 'visibility' => '',
- 'sku' => '',
- 'price' => '',
- 'regular_price' => '',
- 'sale_price' => '',
- 'date_on_sale_from' => '',
- 'date_on_sale_to' => '',
- 'total_sales' => '',
- 'tax_status' => '',
- 'tax_class' => '',
- 'manage_stock' => '',
- 'stock_quantity' => '',
- 'stock_status' => '',
- 'backorders' => '',
- 'sold_individually' => '',
- 'weight' => '',
- 'length' => '',
- 'width' => '',
- 'height' => '',
- 'reviews_allowed' => '',
- 'virtual' => '',
- 'downloadable' => '',
- 'category' => array(),
- 'tag' => array(),
- 'shipping_class' => array(),
- 'download_limit' => '',
- 'download_expiry' => '',
- 'average_rating' => '',
- 'review_count' => '',
+ 'status' => array( 'draft', 'pending', 'private', 'publish' ),
+ 'type' => array_merge( array_keys( wc_get_product_types() ) ),
+ 'limit' => get_option( 'posts_per_page' ),
+ 'include' => array(),
+ 'date_created' => '',
+ 'date_modified' => '',
+ 'featured' => '',
+ 'visibility' => '',
+ 'sku' => '',
+ 'price' => '',
+ 'regular_price' => '',
+ 'sale_price' => '',
+ 'date_on_sale_from' => '',
+ 'date_on_sale_to' => '',
+ 'total_sales' => '',
+ 'tax_status' => '',
+ 'tax_class' => '',
+ 'manage_stock' => '',
+ 'stock_quantity' => '',
+ 'stock_status' => '',
+ 'backorders' => '',
+ 'sold_individually' => '',
+ 'weight' => '',
+ 'length' => '',
+ 'width' => '',
+ 'height' => '',
+ 'reviews_allowed' => '',
+ 'virtual' => '',
+ 'downloadable' => '',
+ 'category' => array(),
+ 'tag' => array(),
+ 'shipping_class' => array(),
+ 'download_limit' => '',
+ 'download_expiry' => '',
+ 'average_rating' => '',
+ 'review_count' => '',
)
);
}
/**
* Get products matching the current query vars.
+ *
* @return array|object of WC_Product objects
*/
public function get_products() {
- $args = apply_filters( 'woocommerce_product_object_query_args', $this->get_query_vars() );
+ $args = apply_filters( 'woocommerce_product_object_query_args', $this->get_query_vars() );
$results = WC_Data_Store::load( 'product' )->query( $args );
return apply_filters( 'woocommerce_product_object_query', $results, $args );
}
From 8470a691a727cfc46e4fc0f37627bed608c1e43d Mon Sep 17 00:00:00 2001
From: Claudio Sanches
Date: Thu, 22 Mar 2018 15:43:51 -0300
Subject: [PATCH 18/21] Fixed includes/class-wc-product-simple.php PHPCS
violations
---
includes/class-wc-product-simple.php | 21 ++++++++++-----------
1 file changed, 10 insertions(+), 11 deletions(-)
diff --git a/includes/class-wc-product-simple.php b/includes/class-wc-product-simple.php
index 742166d46de..e736b4064c0 100644
--- a/includes/class-wc-product-simple.php
+++ b/includes/class-wc-product-simple.php
@@ -1,33 +1,32 @@
supports[] = 'ajax_add_to_cart';
+ $this->supports[] = 'ajax_add_to_cart';
parent::__construct( $product );
}
/**
* Get internal type.
+ *
* @return string
*/
public function get_type() {
From b2e33b3fb99a8e20041f5f807574d057454ef9e7 Mon Sep 17 00:00:00 2001
From: Claudio Sanches
Date: Thu, 22 Mar 2018 15:47:50 -0300
Subject: [PATCH 19/21] Fixed includes/class-wc-product-variable.php PHPCS
violations
---
includes/class-wc-product-variable.php | 148 ++++++++++++-------------
1 file changed, 69 insertions(+), 79 deletions(-)
diff --git a/includes/class-wc-product-variable.php b/includes/class-wc-product-variable.php
index 4123c5d876b..c737207b5ad 100644
--- a/includes/class-wc-product-variable.php
+++ b/includes/class-wc-product-variable.php
@@ -1,17 +1,17 @@
get_children() as $child_id ) {
$variation = wc_get_product( $child_id );
- // Hide out of stock variations if 'Hide out of stock items from the catalog' is checked
+ // Hide out of stock variations if 'Hide out of stock items from the catalog' is checked.
if ( ! $variation || ! $variation->exists() || ( 'yes' === get_option( 'woocommerce_hide_out_of_stock_items' ) && ! $variation->is_in_stock() ) ) {
continue;
}
@@ -299,10 +289,9 @@ class WC_Product_Variable extends WC_Product {
/**
* Returns an array of data for a variation. Used in the add to cart form.
+ *
* @since 2.4.0
- *
- * @param WC_Product $variation Variation product object or ID
- *
+ * @param WC_Product $variation Variation product object or ID.
* @return array|bool
*/
public function get_available_variation( $variation ) {
@@ -313,34 +302,36 @@ class WC_Product_Variable extends WC_Product {
return false;
}
// See if prices should be shown for each variation after selection.
- $show_variation_price = apply_filters( 'woocommerce_show_variation_price', $variation->get_price() === "" || $this->get_variation_sale_price( 'min' ) !== $this->get_variation_sale_price( 'max' ) || $this->get_variation_regular_price( 'min' ) !== $this->get_variation_regular_price( 'max' ), $this, $variation );
+ $show_variation_price = apply_filters( 'woocommerce_show_variation_price', $variation->get_price() === '' || $this->get_variation_sale_price( 'min' ) !== $this->get_variation_sale_price( 'max' ) || $this->get_variation_regular_price( 'min' ) !== $this->get_variation_regular_price( 'max' ), $this, $variation );
- return apply_filters( 'woocommerce_available_variation', array(
- 'attributes' => $variation->get_variation_attributes(),
- 'availability_html' => wc_get_stock_html( $variation ),
- 'backorders_allowed' => $variation->backorders_allowed(),
- 'dimensions' => $variation->get_dimensions( false ),
- 'dimensions_html' => wc_format_dimensions( $variation->get_dimensions( false ) ),
- 'display_price' => wc_get_price_to_display( $variation ),
- 'display_regular_price' => wc_get_price_to_display( $variation, array( 'price' => $variation->get_regular_price() ) ),
- 'image' => wc_get_product_attachment_props( $variation->get_image_id() ),
- 'image_id' => $variation->get_image_id(),
- 'is_downloadable' => $variation->is_downloadable(),
- 'is_in_stock' => $variation->is_in_stock(),
- 'is_purchasable' => $variation->is_purchasable(),
- 'is_sold_individually' => $variation->is_sold_individually() ? 'yes' : 'no',
- 'is_virtual' => $variation->is_virtual(),
- 'max_qty' => 0 < $variation->get_max_purchase_quantity() ? $variation->get_max_purchase_quantity() : '',
- 'min_qty' => $variation->get_min_purchase_quantity(),
- 'price_html' => $show_variation_price ? '' . $variation->get_price_html() . '' : '',
- 'sku' => $variation->get_sku(),
- 'variation_description' => wc_format_content( $variation->get_description() ),
- 'variation_id' => $variation->get_id(),
- 'variation_is_active' => $variation->variation_is_active(),
- 'variation_is_visible' => $variation->variation_is_visible(),
- 'weight' => $variation->get_weight(),
- 'weight_html' => wc_format_weight( $variation->get_weight() ),
- ), $this, $variation );
+ return apply_filters(
+ 'woocommerce_available_variation', array(
+ 'attributes' => $variation->get_variation_attributes(),
+ 'availability_html' => wc_get_stock_html( $variation ),
+ 'backorders_allowed' => $variation->backorders_allowed(),
+ 'dimensions' => $variation->get_dimensions( false ),
+ 'dimensions_html' => wc_format_dimensions( $variation->get_dimensions( false ) ),
+ 'display_price' => wc_get_price_to_display( $variation ),
+ 'display_regular_price' => wc_get_price_to_display( $variation, array( 'price' => $variation->get_regular_price() ) ),
+ 'image' => wc_get_product_attachment_props( $variation->get_image_id() ),
+ 'image_id' => $variation->get_image_id(),
+ 'is_downloadable' => $variation->is_downloadable(),
+ 'is_in_stock' => $variation->is_in_stock(),
+ 'is_purchasable' => $variation->is_purchasable(),
+ 'is_sold_individually' => $variation->is_sold_individually() ? 'yes' : 'no',
+ 'is_virtual' => $variation->is_virtual(),
+ 'max_qty' => 0 < $variation->get_max_purchase_quantity() ? $variation->get_max_purchase_quantity() : '',
+ 'min_qty' => $variation->get_min_purchase_quantity(),
+ 'price_html' => $show_variation_price ? '' . $variation->get_price_html() . '' : '',
+ 'sku' => $variation->get_sku(),
+ 'variation_description' => wc_format_content( $variation->get_description() ),
+ 'variation_id' => $variation->get_id(),
+ 'variation_is_active' => $variation->variation_is_active(),
+ 'variation_is_visible' => $variation->variation_is_visible(),
+ 'weight' => $variation->get_weight(),
+ 'weight_html' => wc_format_weight( $variation->get_weight() ),
+ ), $this, $variation
+ );
}
/*
@@ -353,8 +344,7 @@ class WC_Product_Variable extends WC_Product {
* Sets an array of variation attributes.
*
* @since 3.0.0
- *
- * @param array
+ * @param array $variation_attributes Attributes list.
*/
public function set_variation_attributes( $variation_attributes ) {
$this->variation_attributes = $variation_attributes;
@@ -364,8 +354,7 @@ class WC_Product_Variable extends WC_Product {
* Sets an array of children for the product.
*
* @since 3.0.0
- *
- * @param array
+ * @param array $children Childre products.
*/
public function set_children( $children ) {
$this->children = array_filter( wp_parse_id_list( (array) $children ) );
@@ -375,8 +364,7 @@ class WC_Product_Variable extends WC_Product {
* Sets an array of visible children only.
*
* @since 3.0.0
- *
- * @param array
+ * @param array $visible_children List of visible children products.
*/
public function set_visible_children( $visible_children ) {
$this->visible_children = array_filter( wp_parse_id_list( (array) $visible_children ) );
@@ -390,6 +378,7 @@ class WC_Product_Variable extends WC_Product {
/**
* Ensure properties are set correctly before save.
+ *
* @since 3.0.0
*/
public function validate_props() {
@@ -454,8 +443,7 @@ class WC_Product_Variable extends WC_Product {
/**
* Returns whether or not the product is on sale.
*
- * @param string $context What the value is for. Valid values are view and edit.
- *
+ * @param string $context What the value is for. Valid values are view and edit. What the value is for. Valid values are view and edit.
* @return bool
*/
public function is_on_sale( $context = 'view' ) {
@@ -467,6 +455,7 @@ class WC_Product_Variable extends WC_Product {
/**
* Is a child in stock?
+ *
* @return boolean
*/
public function child_is_in_stock() {
@@ -485,6 +474,7 @@ class WC_Product_Variable extends WC_Product {
/**
* Does a child have a weight set?
+ *
* @return boolean
*/
public function child_has_weight() {
@@ -501,6 +491,7 @@ class WC_Product_Variable extends WC_Product {
/**
* Does a child have dimensions set?
+ *
* @return boolean
*/
public function child_has_dimensions() {
@@ -555,8 +546,7 @@ class WC_Product_Variable extends WC_Product {
* upwards (from child to parent) when the variation is saved.
*
* @param WC_Product|int $product Product object or ID for which you wish to sync.
- * @param bool $save If true, the product object will be saved to the DB before returning it.
- *
+ * @param bool $save If true, the product object will be saved to the DB before returning it.
* @return WC_Product Synced product object.
*/
public static function sync( $product, $save = true ) {
@@ -575,10 +565,12 @@ class WC_Product_Variable extends WC_Product {
$product->save();
}
- wc_do_deprecated_action( 'woocommerce_variable_product_sync', array(
- $product->get_id(),
- $product->get_visible_children()
- ), '3.0', 'woocommerce_variable_product_sync_data, woocommerce_new_product or woocommerce_update_product' );
+ wc_do_deprecated_action(
+ 'woocommerce_variable_product_sync', array(
+ $product->get_id(),
+ $product->get_visible_children(),
+ ), '3.0', 'woocommerce_variable_product_sync_data, woocommerce_new_product or woocommerce_update_product'
+ );
}
return $product;
@@ -588,8 +580,7 @@ class WC_Product_Variable extends WC_Product {
* Sync parent stock status with the status of all children and save.
*
* @param WC_Product|int $product Product object or ID for which you wish to sync.
- * @param bool $save If true, the product object will be saved to the DB before returning it.
- *
+ * @param bool $save If true, the product object will be saved to the DB before returning it.
* @return WC_Product Synced product object.
*/
public static function sync_stock_status( $product, $save = true ) {
@@ -611,8 +602,7 @@ class WC_Product_Variable extends WC_Product {
/**
* Sort an associativate array of $variation_id => $price pairs in order of min and max prices.
*
- * @param array $prices Associativate array of $variation_id => $price pairs
- *
+ * @param array $prices Associativate array of $variation_id => $price pairs.
* @return array
*/
protected function sort_variation_prices( $prices ) {
From 930591808bfacb8fe556c84aad8f1f2f9002e737 Mon Sep 17 00:00:00 2001
From: Claudio Sanches
Date: Thu, 22 Mar 2018 15:49:01 -0300
Subject: [PATCH 20/21] Fixed includes/class-wc-product-variation.php PHPCS
violations
---
includes/class-wc-product-variation.php | 44 ++++++++++++-------------
1 file changed, 22 insertions(+), 22 deletions(-)
diff --git a/includes/class-wc-product-variation.php b/includes/class-wc-product-variation.php
index 45f57473db1..f87d895daec 100644
--- a/includes/class-wc-product-variation.php
+++ b/includes/class-wc-product-variation.php
@@ -1,24 +1,17 @@
get_variation_attributes() );
+ $data_keys = array_map( 'wc_variation_attribute_name', wp_list_pluck( $item_object['item_meta_array'], 'key' ) );
+ $data_values = wp_list_pluck( $item_object['item_meta_array'], 'value' );
+ $data = array_intersect_key( array_combine( $data_keys, $data_values ), $this->get_variation_attributes() );
} else {
- $data = $this->get_variation_attributes();
+ $data = $this->get_variation_attributes();
}
return add_query_arg( array_map( 'urlencode', array_filter( $data ) ), $url );
@@ -182,7 +175,14 @@ class WC_Product_Variation extends WC_Product_Simple {
* @return string
*/
public function add_to_cart_url() {
- $url = $this->is_purchasable() ? remove_query_arg( 'added-to-cart', add_query_arg( array( 'variation_id' => $this->get_id(), 'add-to-cart' => $this->get_parent_id() ), $this->get_permalink() ) ) : $this->get_permalink();
+ $url = $this->is_purchasable() ? remove_query_arg(
+ 'added-to-cart', add_query_arg(
+ array(
+ 'variation_id' => $this->get_id(),
+ 'add-to-cart' => $this->get_parent_id(),
+ ), $this->get_permalink()
+ )
+ ) : $this->get_permalink();
return apply_filters( 'woocommerce_product_add_to_cart_url', $url, $this );
}
@@ -504,7 +504,7 @@ class WC_Product_Variation extends WC_Product_Simple {
* @return array valid tax classes
*/
protected function get_valid_tax_classes() {
- $valid_classes = WC_Tax::get_tax_class_slugs();
+ $valid_classes = WC_Tax::get_tax_class_slugs();
$valid_classes[] = 'parent';
return $valid_classes;
From 027789271db8977be235a1b703514701afa18f6f Mon Sep 17 00:00:00 2001
From: Claudio Sanches
Date: Thu, 22 Mar 2018 16:01:03 -0300
Subject: [PATCH 21/21] Fixed includes/class-wc-frontend-scripts.php PHPCS
violations
---
includes/class-wc-frontend-scripts.php | 320 +++++++++++++------------
1 file changed, 164 insertions(+), 156 deletions(-)
diff --git a/includes/class-wc-frontend-scripts.php b/includes/class-wc-frontend-scripts.php
index 30bc4cd0f3a..48777f8ef4a 100644
--- a/includes/class-wc-frontend-scripts.php
+++ b/includes/class-wc-frontend-scripts.php
@@ -2,11 +2,8 @@
/**
* Handle frontend scripts
*
- * @class WC_Frontend_Scripts
- * @version 2.3.0
- * @package WooCommerce/Classes/
- * @category Class
- * @author WooThemes
+ * @package WooCommerce/Classes
+ * @version 2.3.0
*/
if ( ! defined( 'ABSPATH' ) ) {
@@ -14,24 +11,27 @@ if ( ! defined( 'ABSPATH' ) ) {
}
/**
- * WC_Frontend_Scripts Class.
+ * Frontend scripts class.
*/
class WC_Frontend_Scripts {
/**
* Contains an array of script handles registered by WC.
+ *
* @var array
*/
private static $scripts = array();
/**
* Contains an array of script handles registered by WC.
+ *
* @var array
*/
private static $styles = array();
/**
* Contains an array of script handles localized by WC.
+ *
* @var array
*/
private static $wp_localize_scripts = array();
@@ -51,36 +51,37 @@ class WC_Frontend_Scripts {
* @return array
*/
public static function get_styles() {
- return apply_filters( 'woocommerce_enqueue_styles', array(
- 'woocommerce-layout' => array(
- 'src' => self::get_asset_url( 'assets/css/woocommerce-layout.css' ),
- 'deps' => '',
- 'version' => WC_VERSION,
- 'media' => 'all',
- 'has_rtl' => true,
- ),
- 'woocommerce-smallscreen' => array(
- 'src' => self::get_asset_url( 'assets/css/woocommerce-smallscreen.css' ),
- 'deps' => 'woocommerce-layout',
- 'version' => WC_VERSION,
- 'media' => 'only screen and (max-width: ' . apply_filters( 'woocommerce_style_smallscreen_breakpoint', $breakpoint = '768px' ) . ')',
- 'has_rtl' => true,
- ),
- 'woocommerce-general' => array(
- 'src' => self::get_asset_url( 'assets/css/woocommerce.css' ),
- 'deps' => '',
- 'version' => WC_VERSION,
- 'media' => 'all',
- 'has_rtl' => true,
- ),
- ) );
+ return apply_filters(
+ 'woocommerce_enqueue_styles', array(
+ 'woocommerce-layout' => array(
+ 'src' => self::get_asset_url( 'assets/css/woocommerce-layout.css' ),
+ 'deps' => '',
+ 'version' => WC_VERSION,
+ 'media' => 'all',
+ 'has_rtl' => true,
+ ),
+ 'woocommerce-smallscreen' => array(
+ 'src' => self::get_asset_url( 'assets/css/woocommerce-smallscreen.css' ),
+ 'deps' => 'woocommerce-layout',
+ 'version' => WC_VERSION,
+ 'media' => 'only screen and (max-width: ' . apply_filters( 'woocommerce_style_smallscreen_breakpoint', '768px' ) . ')',
+ 'has_rtl' => true,
+ ),
+ 'woocommerce-general' => array(
+ 'src' => self::get_asset_url( 'assets/css/woocommerce.css' ),
+ 'deps' => '',
+ 'version' => WC_VERSION,
+ 'media' => 'all',
+ 'has_rtl' => true,
+ ),
+ )
+ );
}
/**
* Return asset URL.
*
- * @param string $path
- *
+ * @param string $path Assets path.
* @return string
*/
private static function get_asset_url( $path ) {
@@ -91,12 +92,11 @@ class WC_Frontend_Scripts {
* Register a script for use.
*
* @uses wp_register_script()
- * @access private
- * @param string $handle
- * @param string $path
- * @param string[] $deps
- * @param string $version
- * @param boolean $in_footer
+ * @param string $handle Name of the script. Should be unique.
+ * @param string $path Full URL of the script, or path of the script relative to the WordPress root directory.
+ * @param string[] $deps An array of registered script handles this script depends on.
+ * @param string $version String specifying script version number, if it has one, which is added to the URL as a query string for cache busting purposes. If version is set to false, a version number is automatically added equal to current installed WordPress version. If set to null, no version is added.
+ * @param boolean $in_footer Whether to enqueue the script before
. Default 'false'.
*/
private static function register_script( $handle, $path, $deps = array( 'jquery' ), $version = WC_VERSION, $in_footer = true ) {
self::$scripts[] = $handle;
@@ -107,15 +107,14 @@ class WC_Frontend_Scripts {
* Register and enqueue a script for use.
*
* @uses wp_enqueue_script()
- * @access private
- * @param string $handle
- * @param string $path
- * @param string[] $deps
- * @param string $version
- * @param boolean $in_footer
+ * @param string $handle Name of the script. Should be unique.
+ * @param string $path Full URL of the script, or path of the script relative to the WordPress root directory.
+ * @param string[] $deps An array of registered script handles this script depends on.
+ * @param string $version String specifying script version number, if it has one, which is added to the URL as a query string for cache busting purposes. If version is set to false, a version number is automatically added equal to current installed WordPress version. If set to null, no version is added.
+ * @param boolean $in_footer Whether to enqueue the script before instead of in the
. Default 'false'.
*/
private static function enqueue_script( $handle, $path = '', $deps = array( 'jquery' ), $version = WC_VERSION, $in_footer = true ) {
- if ( ! in_array( $handle, self::$scripts ) && $path ) {
+ if ( ! in_array( $handle, self::$scripts, true ) && $path ) {
self::register_script( $handle, $path, $deps, $version, $in_footer );
}
wp_enqueue_script( $handle );
@@ -125,13 +124,12 @@ class WC_Frontend_Scripts {
* Register a style for use.
*
* @uses wp_register_style()
- * @access private
- * @param string $handle
- * @param string $path
- * @param string[] $deps
- * @param string $version
- * @param string $media
- * @param boolean $has_rtl
+ * @param string $handle Name of the stylesheet. Should be unique.
+ * @param string $path Full URL of the stylesheet, or path of the stylesheet relative to the WordPress root directory.
+ * @param string[] $deps An array of registered stylesheet handles this stylesheet depends on.
+ * @param string $version String specifying stylesheet version number, if it has one, which is added to the URL as a query string for cache busting purposes. If version is set to false, a version number is automatically added equal to current installed WordPress version. If set to null, no version is added.
+ * @param string $media The media for which this stylesheet has been defined. Accepts media types like 'all', 'print' and 'screen', or media queries like '(orientation: portrait)' and '(max-width: 640px)'.
+ * @param boolean $has_rtl If has RTL version to load too.
*/
private static function register_style( $handle, $path, $deps = array(), $version = WC_VERSION, $media = 'all', $has_rtl = false ) {
self::$styles[] = $handle;
@@ -146,16 +144,15 @@ class WC_Frontend_Scripts {
* Register and enqueue a styles for use.
*
* @uses wp_enqueue_style()
- * @access private
- * @param string $handle
- * @param string $path
- * @param string[] $deps
- * @param string $version
- * @param string $media
- * @param boolean $has_rtl
+ * @param string $handle Name of the stylesheet. Should be unique.
+ * @param string $path Full URL of the stylesheet, or path of the stylesheet relative to the WordPress root directory.
+ * @param string[] $deps An array of registered stylesheet handles this stylesheet depends on.
+ * @param string $version String specifying stylesheet version number, if it has one, which is added to the URL as a query string for cache busting purposes. If version is set to false, a version number is automatically added equal to current installed WordPress version. If set to null, no version is added.
+ * @param string $media The media for which this stylesheet has been defined. Accepts media types like 'all', 'print' and 'screen', or media queries like '(orientation: portrait)' and '(max-width: 640px)'.
+ * @param boolean $has_rtl If has RTL version to load too.
*/
private static function enqueue_style( $handle, $path = '', $deps = array(), $version = WC_VERSION, $media = 'all', $has_rtl = false ) {
- if ( ! in_array( $handle, self::$styles ) && $path ) {
+ if ( ! in_array( $handle, self::$styles, true ) && $path ) {
self::register_style( $handle, $path, $deps, $version, $media, $has_rtl );
}
wp_enqueue_style( $handle );
@@ -167,112 +164,112 @@ class WC_Frontend_Scripts {
private static function register_scripts() {
$suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
$register_scripts = array(
- 'flexslider' => array(
+ 'flexslider' => array(
'src' => self::get_asset_url( 'assets/js/flexslider/jquery.flexslider' . $suffix . '.js' ),
'deps' => array( 'jquery' ),
'version' => '2.7.0',
),
- 'js-cookie' => array(
+ 'js-cookie' => array(
'src' => self::get_asset_url( 'assets/js/js-cookie/js.cookie' . $suffix . '.js' ),
'deps' => array(),
'version' => '2.1.4',
),
- 'jquery-blockui' => array(
+ 'jquery-blockui' => array(
'src' => self::get_asset_url( 'assets/js/jquery-blockui/jquery.blockUI' . $suffix . '.js' ),
'deps' => array( 'jquery' ),
'version' => '2.70',
),
- 'jquery-cookie' => array( // deprecated.
+ 'jquery-cookie' => array( // deprecated.
'src' => self::get_asset_url( 'assets/js/jquery-cookie/jquery.cookie' . $suffix . '.js' ),
'deps' => array( 'jquery' ),
'version' => '1.4.1',
),
- 'jquery-payment' => array(
+ 'jquery-payment' => array(
'src' => self::get_asset_url( 'assets/js/jquery-payment/jquery.payment' . $suffix . '.js' ),
'deps' => array( 'jquery' ),
'version' => '3.0.0',
),
- 'photoswipe' => array(
+ 'photoswipe' => array(
'src' => self::get_asset_url( 'assets/js/photoswipe/photoswipe' . $suffix . '.js' ),
'deps' => array(),
'version' => '4.1.1',
),
- 'photoswipe-ui-default' => array(
+ 'photoswipe-ui-default' => array(
'src' => self::get_asset_url( 'assets/js/photoswipe/photoswipe-ui-default' . $suffix . '.js' ),
'deps' => array( 'photoswipe' ),
'version' => '4.1.1',
),
- 'prettyPhoto' => array( // deprecated.
+ 'prettyPhoto' => array( // deprecated.
'src' => self::get_asset_url( 'assets/js/prettyPhoto/jquery.prettyPhoto' . $suffix . '.js' ),
'deps' => array( 'jquery' ),
'version' => '3.1.6',
),
- 'prettyPhoto-init' => array( // deprecated.
+ 'prettyPhoto-init' => array( // deprecated.
'src' => self::get_asset_url( 'assets/js/prettyPhoto/jquery.prettyPhoto.init' . $suffix . '.js' ),
'deps' => array( 'jquery', 'prettyPhoto' ),
'version' => WC_VERSION,
),
- 'select2' => array(
+ 'select2' => array(
'src' => self::get_asset_url( 'assets/js/select2/select2.full' . $suffix . '.js' ),
'deps' => array( 'jquery' ),
'version' => '4.0.3',
),
- 'selectWoo' => array(
+ 'selectWoo' => array(
'src' => self::get_asset_url( 'assets/js/selectWoo/selectWoo.full' . $suffix . '.js' ),
'deps' => array( 'jquery' ),
'version' => '1.0.4',
),
- 'wc-address-i18n' => array(
+ 'wc-address-i18n' => array(
'src' => self::get_asset_url( 'assets/js/frontend/address-i18n' . $suffix . '.js' ),
'deps' => array( 'jquery' ),
'version' => WC_VERSION,
),
- 'wc-add-payment-method' => array(
+ 'wc-add-payment-method' => array(
'src' => self::get_asset_url( 'assets/js/frontend/add-payment-method' . $suffix . '.js' ),
'deps' => array( 'jquery', 'woocommerce' ),
'version' => WC_VERSION,
),
- 'wc-cart' => array(
+ 'wc-cart' => array(
'src' => self::get_asset_url( 'assets/js/frontend/cart' . $suffix . '.js' ),
'deps' => array( 'jquery', 'wc-country-select', 'wc-address-i18n' ),
'version' => WC_VERSION,
),
- 'wc-cart-fragments' => array(
+ 'wc-cart-fragments' => array(
'src' => self::get_asset_url( 'assets/js/frontend/cart-fragments' . $suffix . '.js' ),
'deps' => array( 'jquery', 'js-cookie' ),
'version' => WC_VERSION,
),
- 'wc-checkout' => array(
+ 'wc-checkout' => array(
'src' => self::get_asset_url( 'assets/js/frontend/checkout' . $suffix . '.js' ),
'deps' => array( 'jquery', 'woocommerce', 'wc-country-select', 'wc-address-i18n' ),
'version' => WC_VERSION,
),
- 'wc-country-select' => array(
+ 'wc-country-select' => array(
'src' => self::get_asset_url( 'assets/js/frontend/country-select' . $suffix . '.js' ),
'deps' => array( 'jquery' ),
'version' => WC_VERSION,
),
- 'wc-credit-card-form' => array(
+ 'wc-credit-card-form' => array(
'src' => self::get_asset_url( 'assets/js/frontend/credit-card-form' . $suffix . '.js' ),
'deps' => array( 'jquery', 'jquery-payment' ),
'version' => WC_VERSION,
),
- 'wc-add-to-cart' => array(
+ 'wc-add-to-cart' => array(
'src' => self::get_asset_url( 'assets/js/frontend/add-to-cart' . $suffix . '.js' ),
'deps' => array( 'jquery' ),
'version' => WC_VERSION,
),
- 'wc-add-to-cart-variation' => array(
+ 'wc-add-to-cart-variation' => array(
'src' => self::get_asset_url( 'assets/js/frontend/add-to-cart-variation' . $suffix . '.js' ),
'deps' => array( 'jquery', 'wp-util' ),
'version' => WC_VERSION,
),
- 'wc-geolocation' => array(
+ 'wc-geolocation' => array(
'src' => self::get_asset_url( 'assets/js/frontend/geolocation' . $suffix . '.js' ),
'deps' => array( 'jquery' ),
'version' => WC_VERSION,
),
- 'wc-lost-password' => array(
+ 'wc-lost-password' => array(
'src' => self::get_asset_url( 'assets/js/frontend/lost-password' . $suffix . '.js' ),
'deps' => array( 'jquery', 'woocommerce' ),
'version' => WC_VERSION,
@@ -282,17 +279,17 @@ class WC_Frontend_Scripts {
'deps' => array( 'jquery', 'password-strength-meter' ),
'version' => WC_VERSION,
),
- 'wc-single-product' => array(
+ 'wc-single-product' => array(
'src' => self::get_asset_url( 'assets/js/frontend/single-product' . $suffix . '.js' ),
'deps' => array( 'jquery' ),
'version' => WC_VERSION,
),
- 'woocommerce' => array(
+ 'woocommerce' => array(
'src' => self::get_asset_url( 'assets/js/frontend/woocommerce' . $suffix . '.js' ),
'deps' => array( 'jquery', 'jquery-blockui', 'js-cookie' ),
'version' => WC_VERSION,
),
- 'zoom' => array(
+ 'zoom' => array(
'src' => self::get_asset_url( 'assets/js/zoom/jquery.zoom' . $suffix . '.js' ),
'deps' => array( 'jquery' ),
'version' => '1.7.15',
@@ -308,19 +305,19 @@ class WC_Frontend_Scripts {
*/
private static function register_styles() {
$register_styles = array(
- 'photoswipe' => array(
+ 'photoswipe' => array(
'src' => self::get_asset_url( 'assets/css/photoswipe/photoswipe.css' ),
'deps' => array(),
'version' => WC_VERSION,
'has_rtl' => false,
),
- 'photoswipe-default-skin' => array(
+ 'photoswipe-default-skin' => array(
'src' => self::get_asset_url( 'assets/css/photoswipe/default-skin/default-skin.css' ),
'deps' => array( 'photoswipe' ),
'version' => WC_VERSION,
'has_rtl' => false,
),
- 'select2' => array(
+ 'select2' => array(
'src' => self::get_asset_url( 'assets/css/select2.css' ),
'deps' => array(),
'version' => WC_VERSION,
@@ -400,12 +397,13 @@ class WC_Frontend_Scripts {
}
}
- // Global frontend scripts
+ // Global frontend scripts.
self::enqueue_script( 'woocommerce' );
self::enqueue_script( 'wc-cart-fragments' );
- // CSS Styles
- if ( $enqueue_styles = self::get_styles() ) {
+ // CSS Styles.
+ $enqueue_styles = self::get_styles();
+ if ( $enqueue_styles ) {
foreach ( $enqueue_styles as $handle => $args ) {
if ( ! isset( $args['has_rtl'] ) ) {
$args['has_rtl'] = false;
@@ -418,12 +416,18 @@ class WC_Frontend_Scripts {
/**
* Localize a WC script once.
- * @access private
- * @since 2.3.0 this needs less wp_script_is() calls due to https://core.trac.wordpress.org/ticket/28404 being added in WP 4.0.
- * @param string $handle
+ *
+ * @since 2.3.0 this needs less wp_script_is() calls due to https://core.trac.wordpress.org/ticket/28404 being added in WP 4.0.
+ * @param string $handle Script handle the data will be attached to.
*/
private static function localize_script( $handle ) {
- if ( ! in_array( $handle, self::$wp_localize_scripts ) && wp_script_is( $handle ) && ( $data = self::get_script_data( $handle ) ) ) {
+ if ( ! in_array( $handle, self::$wp_localize_scripts, true ) && wp_script_is( $handle ) ) {
+ $data = self::get_script_data( $handle );
+
+ if ( ! $data ) {
+ return;
+ }
+
$name = str_replace( '-', '_', $handle ) . '_params';
self::$wp_localize_scripts[] = $handle;
wp_localize_script( $handle, $name, apply_filters( $name, $data ) );
@@ -432,118 +436,122 @@ class WC_Frontend_Scripts {
/**
* Return data for script handles.
- * @access private
- * @param string $handle
+ *
+ * @param string $handle Script handle the data will be attached to.
* @return array|bool
*/
private static function get_script_data( $handle ) {
global $wp;
switch ( $handle ) {
- case 'woocommerce' :
+ case 'woocommerce':
$params = array(
'ajax_url' => WC()->ajax_url(),
- 'wc_ajax_url' => WC_AJAX::get_endpoint( "%%endpoint%%" ),
+ 'wc_ajax_url' => WC_AJAX::get_endpoint( '%%endpoint%%' ),
);
- break;
- case 'wc-geolocation' :
+ break;
+ case 'wc-geolocation':
$params = array(
- 'wc_ajax_url' => WC_AJAX::get_endpoint( "%%endpoint%%" ),
+ 'wc_ajax_url' => WC_AJAX::get_endpoint( '%%endpoint%%' ),
'home_url' => home_url(),
'is_available' => ! ( is_cart() || is_account_page() || is_checkout() || is_customize_preview() ) ? '1' : '0',
- 'hash' => isset( $_GET['v'] ) ? wc_clean( $_GET['v'] ) : '',
+ 'hash' => isset( $_GET['v'] ) ? wc_clean( wp_unslash( $_GET['v'] ) ) : '', // WPCS: input var ok, CSRF ok.
);
- break;
- case 'wc-single-product' :
+ break;
+ case 'wc-single-product':
$params = array(
'i18n_required_rating_text' => esc_attr__( 'Please select a rating', 'woocommerce' ),
'review_rating_required' => get_option( 'woocommerce_review_rating_required' ),
- 'flexslider' => apply_filters( 'woocommerce_single_product_carousel_options', array(
- 'rtl' => is_rtl(),
- 'animation' => 'slide',
- 'smoothHeight' => true,
- 'directionNav' => false,
- 'controlNav' => 'thumbnails',
- 'slideshow' => false,
- 'animationSpeed' => 500,
- 'animationLoop' => false, // Breaks photoswipe pagination if true.
- 'allowOneSlide' => false,
- ) ),
- 'zoom_enabled' => apply_filters( 'woocommerce_single_product_zoom_enabled', get_theme_support( 'wc-product-gallery-zoom' ) ),
- 'zoom_options' => apply_filters( 'woocommerce_single_product_zoom_options', array() ),
- 'photoswipe_enabled' => apply_filters( 'woocommerce_single_product_photoswipe_enabled', get_theme_support( 'wc-product-gallery-lightbox' ) ),
- 'photoswipe_options' => apply_filters( 'woocommerce_single_product_photoswipe_options', array(
- 'shareEl' => false,
- 'closeOnScroll' => false,
- 'history' => false,
- 'hideAnimationDuration' => 0,
- 'showAnimationDuration' => 0,
- ) ),
- 'flexslider_enabled' => apply_filters( 'woocommerce_single_product_flexslider_enabled', get_theme_support( 'wc-product-gallery-slider' ) ),
+ 'flexslider' => apply_filters(
+ 'woocommerce_single_product_carousel_options', array(
+ 'rtl' => is_rtl(),
+ 'animation' => 'slide',
+ 'smoothHeight' => true,
+ 'directionNav' => false,
+ 'controlNav' => 'thumbnails',
+ 'slideshow' => false,
+ 'animationSpeed' => 500,
+ 'animationLoop' => false, // Breaks photoswipe pagination if true.
+ 'allowOneSlide' => false,
+ )
+ ),
+ 'zoom_enabled' => apply_filters( 'woocommerce_single_product_zoom_enabled', get_theme_support( 'wc-product-gallery-zoom' ) ),
+ 'zoom_options' => apply_filters( 'woocommerce_single_product_zoom_options', array() ),
+ 'photoswipe_enabled' => apply_filters( 'woocommerce_single_product_photoswipe_enabled', get_theme_support( 'wc-product-gallery-lightbox' ) ),
+ 'photoswipe_options' => apply_filters(
+ 'woocommerce_single_product_photoswipe_options', array(
+ 'shareEl' => false,
+ 'closeOnScroll' => false,
+ 'history' => false,
+ 'hideAnimationDuration' => 0,
+ 'showAnimationDuration' => 0,
+ )
+ ),
+ 'flexslider_enabled' => apply_filters( 'woocommerce_single_product_flexslider_enabled', get_theme_support( 'wc-product-gallery-slider' ) ),
);
- break;
- case 'wc-checkout' :
+ break;
+ case 'wc-checkout':
$params = array(
'ajax_url' => WC()->ajax_url(),
- 'wc_ajax_url' => WC_AJAX::get_endpoint( "%%endpoint%%" ),
+ 'wc_ajax_url' => WC_AJAX::get_endpoint( '%%endpoint%%' ),
'update_order_review_nonce' => wp_create_nonce( 'update-order-review' ),
'apply_coupon_nonce' => wp_create_nonce( 'apply-coupon' ),
'remove_coupon_nonce' => wp_create_nonce( 'remove-coupon' ),
'option_guest_checkout' => get_option( 'woocommerce_enable_guest_checkout' ),
- 'checkout_url' => WC_AJAX::get_endpoint( "checkout" ),
+ 'checkout_url' => WC_AJAX::get_endpoint( 'checkout' ),
'is_checkout' => is_page( wc_get_page_id( 'checkout' ) ) && empty( $wp->query_vars['order-pay'] ) && ! isset( $wp->query_vars['order-received'] ) ? 1 : 0,
'debug_mode' => defined( 'WP_DEBUG' ) && WP_DEBUG,
'i18n_checkout_error' => esc_attr__( 'Error processing checkout. Please try again.', 'woocommerce' ),
);
- break;
- case 'wc-address-i18n' :
+ break;
+ case 'wc-address-i18n':
$params = array(
- 'locale' => json_encode( WC()->countries->get_country_locale() ),
- 'locale_fields' => json_encode( WC()->countries->get_country_locale_field_selectors() ),
+ 'locale' => wp_json_encode( WC()->countries->get_country_locale() ),
+ 'locale_fields' => wp_json_encode( WC()->countries->get_country_locale_field_selectors() ),
'i18n_required_text' => esc_attr__( 'required', 'woocommerce' ),
);
- break;
- case 'wc-cart' :
+ break;
+ case 'wc-cart':
$params = array(
'ajax_url' => WC()->ajax_url(),
- 'wc_ajax_url' => WC_AJAX::get_endpoint( "%%endpoint%%" ),
- 'update_shipping_method_nonce' => wp_create_nonce( "update-shipping-method" ),
- 'apply_coupon_nonce' => wp_create_nonce( "apply-coupon" ),
- 'remove_coupon_nonce' => wp_create_nonce( "remove-coupon" ),
+ 'wc_ajax_url' => WC_AJAX::get_endpoint( '%%endpoint%%' ),
+ 'update_shipping_method_nonce' => wp_create_nonce( 'update-shipping-method' ),
+ 'apply_coupon_nonce' => wp_create_nonce( 'apply-coupon' ),
+ 'remove_coupon_nonce' => wp_create_nonce( 'remove-coupon' ),
);
- break;
- case 'wc-cart-fragments' :
+ break;
+ case 'wc-cart-fragments':
$params = array(
'ajax_url' => WC()->ajax_url(),
- 'wc_ajax_url' => WC_AJAX::get_endpoint( "%%endpoint%%" ),
+ 'wc_ajax_url' => WC_AJAX::get_endpoint( '%%endpoint%%' ),
'cart_hash_key' => apply_filters( 'woocommerce_cart_hash_key', 'wc_cart_hash_' . md5( get_current_blog_id() . '_' . get_site_url( get_current_blog_id(), '/' ) ) ),
'fragment_name' => apply_filters( 'woocommerce_cart_fragment_name', 'wc_fragments_' . md5( get_current_blog_id() . '_' . get_site_url( get_current_blog_id(), '/' ) ) ),
);
- break;
- case 'wc-add-to-cart' :
+ break;
+ case 'wc-add-to-cart':
$params = array(
'ajax_url' => WC()->ajax_url(),
- 'wc_ajax_url' => WC_AJAX::get_endpoint( "%%endpoint%%" ),
+ 'wc_ajax_url' => WC_AJAX::get_endpoint( '%%endpoint%%' ),
'i18n_view_cart' => esc_attr__( 'View cart', 'woocommerce' ),
'cart_url' => apply_filters( 'woocommerce_add_to_cart_redirect', wc_get_cart_url() ),
'is_cart' => is_cart(),
'cart_redirect_after_add' => get_option( 'woocommerce_cart_redirect_after_add' ),
);
- break;
- case 'wc-add-to-cart-variation' :
- // We also need the wp.template for this script :)
+ break;
+ case 'wc-add-to-cart-variation':
+ // We also need the wp.template for this script :).
wc_get_template( 'single-product/add-to-cart/variation.php' );
$params = array(
- 'wc_ajax_url' => WC_AJAX::get_endpoint( "%%endpoint%%" ),
+ 'wc_ajax_url' => WC_AJAX::get_endpoint( '%%endpoint%%' ),
'i18n_no_matching_variations_text' => esc_attr__( 'Sorry, no products matched your selection. Please choose a different combination.', 'woocommerce' ),
'i18n_make_a_selection_text' => esc_attr__( 'Please select some product options before adding this product to your cart.', 'woocommerce' ),
'i18n_unavailable_text' => esc_attr__( 'Sorry, this product is unavailable. Please choose a different combination.', 'woocommerce' ),
);
- break;
- case 'wc-country-select' :
+ break;
+ case 'wc-country-select':
$params = array(
- 'countries' => json_encode( array_merge( WC()->countries->get_allowed_country_states(), WC()->countries->get_shipping_country_states() ) ),
+ 'countries' => wp_json_encode( array_merge( WC()->countries->get_allowed_country_states(), WC()->countries->get_shipping_country_states() ) ),
'i18n_select_state_text' => esc_attr__( 'Select an option…', 'woocommerce' ),
'i18n_no_matches' => _x( 'No matches found', 'enhanced select', 'woocommerce' ),
'i18n_ajax_error' => _x( 'Loading failed', 'enhanced select', 'woocommerce' ),
@@ -556,14 +564,14 @@ class WC_Frontend_Scripts {
'i18n_load_more' => _x( 'Loading more results…', 'enhanced select', 'woocommerce' ),
'i18n_searching' => _x( 'Searching…', 'enhanced select', 'woocommerce' ),
);
- break;
- case 'wc-password-strength-meter' :
+ break;
+ case 'wc-password-strength-meter':
$params = array(
'min_password_strength' => apply_filters( 'woocommerce_min_password_strength', 3 ),
'i18n_password_error' => esc_attr__( 'Please enter a stronger password.', 'woocommerce' ),
'i18n_password_hint' => esc_attr( wp_get_password_hint() ),
);
- break;
+ break;
default:
$params = false;
}