Version Description
31/08/2022 =
- NEW FEATURE - PDF INVOICING & PACKING SLIPS - PDF Invoicing - Added a new shortcode for refund total with inc./ex. tax. [wcj_order_item_total_refunded excl_tax="yes" ]
- FIXED - SHIPPING & ORDERS - Order Custom Statuses - Fixed custom status not displaying in order bulk action selection.
- FIXED - PRODUCTS - Product Tabs - Fixed issue with HTML tags.
- FIXED - PRODUCTS - Product Tabs - Fixed issue in some cases Jquery syntax was being shown.
- FIXED - PRODUCTS - Product Visibility by User Role - Fixed allowed user role selection on the single product edit page.
- FIXED - PRODUCTS - Product Visibility by Country - Fixed allowed country selection on the single product edit page.
- FIXED - PRODUCTS - Cost of Goods - Fixed bugs related to reporting, profit, and other bugs.
- FIXED - CART & CHECKOUT - Mini Cart Custom Info - Fixed Custom Info is not shown on the Wocommarce mini cart.
- FIXED - BUTTON & PRICE LABELS - Free Price Labels - Fixed free price Label does not show when the product price is '0'.
- FIXED - CART & CHECKOUT - Checkout Files Upload - Escaped the html content from the "File Upload Fields" value.
- FIXED - EMAILS & MISC. - Modules By User Roles - Fixed Enable/disable modules by user roles.
- FIXED - PRODUCTS - Product Addons - Fixed add-ons were not being saved with per product add-on.
- FIXED - PRODUCTS - Product Input Fields - Fixed issue with input type radio for per product input field.
- FIXED - PDF INVOICING & PACKING SLIPS - PDF Invoicing - Fixed Invoice report tool was showing an error while choosing the CSV option.
- FIXED - EMAILS & MISC. - My Account - Added restriction for Cross browser scripting.
- FIXED - PHP Warning: Undefined Variable "$exclude_item_subtotal" in /includes/shortcodes/class-wcj-shortcodes-orders.php ...
- WooCommerce 6.8.2 tested
- WordPress 6.0.1 Tested
Download this release
Release Info
Developer | ronyp |
Plugin | Booster for WooCommerce |
Version | 5.6.3 |
Comparing to | |
See all releases |
Code changes from version 5.6.2 to 5.6.3
- includes/class-wcj-checkout-files-upload.php +39 -29
- includes/class-wcj-free-price.php +3 -3
- includes/class-wcj-mini-cart.php +3 -3
- includes/class-wcj-my-account.php +4 -2
- includes/class-wcj-order-custom-statuses.php +4 -14
- includes/class-wcj-price-by-user-role.php +3 -3
- includes/class-wcj-product-bookings.php +3 -3
- includes/class-wcj-product-open-pricing.php +3 -3
- includes/class-wcj-product-price-by-formula.php +1 -1
- includes/class-wcj-product-tabs.php +3 -3
- includes/class-wcj-purchase-data.php +9 -6
- includes/classes/class-wcj-module.php +13 -7
- includes/functions/wcj-functions-general.php +24 -5
- includes/input-fields/class-wcj-product-input-fields-core.php +3 -3
- includes/mini-plugin/wcj-mini-plugin.php +84 -0
- includes/pdf-invoices/class-wcj-pdf-invoicing-report-tool.php +14 -4
- includes/shortcodes/class-wcj-orders-shortcodes.php +27 -5
- langs/woocommerce-jetpack.pot +49 -48
- readme.txt +22 -1
- version-details.json +4 -4
- woocommerce-jetpack.php +3 -3
includes/class-wcj-checkout-files-upload.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Checkout Files Upload
|
4 |
*
|
5 |
-
* @version 5.6.
|
6 |
* @since 2.4.5
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
@@ -61,6 +61,9 @@ if ( ! class_exists( 'WCJ_Checkout_Files_Upload' ) ) :
|
|
61 |
add_action( 'woocommerce_order_details_after_order_table', array( $this, 'add_files_to_order_display' ), PHP_INT_MAX );
|
62 |
add_action( 'woocommerce_email_after_order_table', array( $this, 'add_files_to_order_display' ), PHP_INT_MAX );
|
63 |
add_filter( 'woocommerce_email_attachments', array( $this, 'add_files_to_email_attachments' ), PHP_INT_MAX, 3 );
|
|
|
|
|
|
|
64 |
}
|
65 |
}
|
66 |
|
@@ -173,7 +176,7 @@ if ( ! class_exists( 'WCJ_Checkout_Files_Upload' ) ) :
|
|
173 |
}
|
174 |
}
|
175 |
if ( '' !== $html ) {
|
176 |
-
echo $template_before . $html . $template_after;
|
177 |
}
|
178 |
}
|
179 |
|
@@ -305,7 +308,7 @@ if ( ! class_exists( 'WCJ_Checkout_Files_Upload' ) ) :
|
|
305 |
$html .= '<p><a style="color:#a00;" href="' . add_query_arg( 'wcj_download_checkout_file_admin_delete_all', $order_id ) . '"' . wcj_get_js_confirmation() . '>' .
|
306 |
__( 'Delete all files', 'woocommerce-jetpack' ) . '</a></p>';
|
307 |
}
|
308 |
-
echo $html;
|
309 |
}
|
310 |
|
311 |
/**
|
@@ -340,6 +343,10 @@ if ( ! class_exists( 'WCJ_Checkout_Files_Upload' ) ) :
|
|
340 |
* @param string $posted defines the posted.
|
341 |
*/
|
342 |
public function add_files_to_order( $order_id, $posted ) {
|
|
|
|
|
|
|
|
|
343 |
$upload_dir = wcj_get_wcj_uploads_dir( 'checkout_files_upload' );
|
344 |
if ( ! file_exists( $upload_dir ) ) {
|
345 |
mkdir( $upload_dir, 0755, true );
|
@@ -353,9 +360,9 @@ if ( ! class_exists( 'WCJ_Checkout_Files_Upload' ) ) :
|
|
353 |
$download_file_name = $order_id . '_' . $i . '.' . $ext;
|
354 |
$file_path = $upload_dir . '/' . $download_file_name;
|
355 |
$tmp_file_name = $session_data['tmp_name'];
|
356 |
-
$file_data =
|
357 |
if ( ! $this->is_extension_blocked( $ext ) ) { // should already be validated earlier, but just in case...
|
358 |
-
|
359 |
}
|
360 |
unlink( $tmp_file_name );
|
361 |
wcj_session_set( 'wcj_checkout_files_upload_' . $i, null );
|
@@ -420,9 +427,13 @@ if ( ! class_exists( 'WCJ_Checkout_Files_Upload' ) ) :
|
|
420 |
wcj_session_maybe_start();
|
421 |
$admin_email = wcj_get_option( 'admin_email' );
|
422 |
$admin_email_subject = __( 'Booster for WooCommerce: Checkout Files Upload: %action%', 'woocommerce-jetpack' );
|
423 |
-
|
424 |
-
|
425 |
-
|
|
|
|
|
|
|
|
|
426 |
// Remove file.
|
427 |
for ( $i = 1; $i <= $total_number; $i++ ) {
|
428 |
if ( isset( $_POST[ 'wcj_remove_checkout_file_' . $i ] ) ) {
|
@@ -597,14 +608,7 @@ if ( ! class_exists( 'WCJ_Checkout_Files_Upload' ) ) :
|
|
597 |
if ( isset( $_GET['post'] ) && isset( $_GET['wcj_checkout_file_number'] ) ) {
|
598 |
$file_name = get_post_meta( sanitize_text_field( wp_unslash( $_GET['post'] ) ), '_wcj_checkout_files_upload_real_name_' . sanitize_text_field( wp_unslash( $_GET['wcj_checkout_file_number'] ) ), true );
|
599 |
if ( wcj_is_user_role( 'administrator' ) || is_shop_manager() ) {
|
600 |
-
|
601 |
-
header( 'Cache-Control: must-revalidate, post-check=0, pre-check=0' );
|
602 |
-
header( 'Cache-Control: private', false );
|
603 |
-
header( 'Content-disposition: attachment; filename=' . $file_name );
|
604 |
-
header( 'Content-Transfer-Encoding: binary' );
|
605 |
-
header( 'Content-Length: ' . filesize( $tmp_file_name ) );
|
606 |
-
readfile( $tmp_file_name ); // phpcs:ignore
|
607 |
-
exit();
|
608 |
}
|
609 |
}
|
610 |
}
|
@@ -652,14 +656,7 @@ if ( ! class_exists( 'WCJ_Checkout_Files_Upload' ) ) :
|
|
652 |
$tmp_file_name = $session_data['tmp_name'];
|
653 |
$file_name = $session_data['name'];
|
654 |
}
|
655 |
-
|
656 |
-
header( 'Cache-Control: must-revalidate, post-check=0, pre-check=0' );
|
657 |
-
header( 'Cache-Control: private', false );
|
658 |
-
header( 'Content-disposition: attachment; filename=' . $file_name );
|
659 |
-
header( 'Content-Transfer-Encoding: binary' );
|
660 |
-
header( 'Content-Length: ' . filesize( $tmp_file_name ) );
|
661 |
-
readfile( $tmp_file_name );// phpcs:ignore
|
662 |
-
exit();
|
663 |
}
|
664 |
}
|
665 |
|
@@ -837,23 +834,24 @@ if ( ! class_exists( 'WCJ_Checkout_Files_Upload' ) ) :
|
|
837 |
/**
|
838 |
* Maybe_get_image.
|
839 |
*
|
840 |
-
* @version 5.6.
|
841 |
* @since 3.7.0
|
842 |
* @param string $link defines the link.
|
843 |
* @param int $i defines the value of i.
|
844 |
* @param int $order_id defines the order_id.
|
845 |
*/
|
846 |
public function maybe_get_image( $link, $i, $order_id = 0 ) {
|
|
|
847 |
if ( 'yes' === wcj_get_option( 'wcj_checkout_files_upload_form_template_field_show_images', 'no' ) ) {
|
848 |
$order = wc_get_order( $order_id );
|
849 |
-
if ( 0
|
850 |
$order_file_name = get_post_meta( $order_id, '_wcj_checkout_files_upload_' . $i, true );
|
851 |
$tmp_file_name = wcj_get_wcj_uploads_dir( 'checkout_files_upload' ) . '/' . $order_file_name;
|
852 |
} else {
|
853 |
$session_data = wcj_session_get( 'wcj_checkout_files_upload_' . $i );
|
854 |
$tmp_file_name = $session_data['tmp_name'];
|
855 |
}
|
856 |
-
if (
|
857 |
return '<img style="' . wcj_get_option( 'wcj_checkout_files_upload_form_template_field_image_style', 'width:64px;' ) . '" src="' . $link . '"> ';
|
858 |
}
|
859 |
}
|
@@ -953,7 +951,7 @@ if ( ! class_exists( 'WCJ_Checkout_Files_Upload' ) ) :
|
|
953 |
}
|
954 |
}
|
955 |
}
|
956 |
-
echo $html;
|
957 |
}
|
958 |
|
959 |
/**
|
@@ -992,7 +990,19 @@ if ( ! class_exists( 'WCJ_Checkout_Files_Upload' ) ) :
|
|
992 |
$html .= $this->get_the_form( $i, $file_name );
|
993 |
}
|
994 |
}
|
995 |
-
echo $html;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
996 |
}
|
997 |
|
998 |
}
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Checkout Files Upload
|
4 |
*
|
5 |
+
* @version 5.6.3
|
6 |
* @since 2.4.5
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
61 |
add_action( 'woocommerce_order_details_after_order_table', array( $this, 'add_files_to_order_display' ), PHP_INT_MAX );
|
62 |
add_action( 'woocommerce_email_after_order_table', array( $this, 'add_files_to_order_display' ), PHP_INT_MAX );
|
63 |
add_filter( 'woocommerce_email_attachments', array( $this, 'add_files_to_email_attachments' ), PHP_INT_MAX, 3 );
|
64 |
+
|
65 |
+
add_filter( 'woocommerce_get_return_url', array( $this, 'wcj_customize_get_return_url' ), PHP_INT_MAX, 2 );
|
66 |
+
add_filter( 'woocommerce_get_checkout_order_received_url', array( $this, 'wcj_customize_get_return_url' ), PHP_INT_MAX, 2 );
|
67 |
}
|
68 |
}
|
69 |
|
176 |
}
|
177 |
}
|
178 |
if ( '' !== $html ) {
|
179 |
+
echo wp_kses_post( $template_before . $html . $template_after );
|
180 |
}
|
181 |
}
|
182 |
|
308 |
$html .= '<p><a style="color:#a00;" href="' . add_query_arg( 'wcj_download_checkout_file_admin_delete_all', $order_id ) . '"' . wcj_get_js_confirmation() . '>' .
|
309 |
__( 'Delete all files', 'woocommerce-jetpack' ) . '</a></p>';
|
310 |
}
|
311 |
+
echo wp_kses_post( $html );
|
312 |
}
|
313 |
|
314 |
/**
|
343 |
* @param string $posted defines the posted.
|
344 |
*/
|
345 |
public function add_files_to_order( $order_id, $posted ) {
|
346 |
+
require_once ABSPATH . '/wp-admin/includes/file.php';
|
347 |
+
global $wp_filesystem;
|
348 |
+
WP_Filesystem();
|
349 |
+
|
350 |
$upload_dir = wcj_get_wcj_uploads_dir( 'checkout_files_upload' );
|
351 |
if ( ! file_exists( $upload_dir ) ) {
|
352 |
mkdir( $upload_dir, 0755, true );
|
360 |
$download_file_name = $order_id . '_' . $i . '.' . $ext;
|
361 |
$file_path = $upload_dir . '/' . $download_file_name;
|
362 |
$tmp_file_name = $session_data['tmp_name'];
|
363 |
+
$file_data = $wp_filesystem->get_contents( $tmp_file_name );
|
364 |
if ( ! $this->is_extension_blocked( $ext ) ) { // should already be validated earlier, but just in case...
|
365 |
+
$wp_filesystem->put_contents( $file_path, $file_data, FS_CHMOD_FILE );
|
366 |
}
|
367 |
unlink( $tmp_file_name );
|
368 |
wcj_session_set( 'wcj_checkout_files_upload_' . $i, null );
|
427 |
wcj_session_maybe_start();
|
428 |
$admin_email = wcj_get_option( 'admin_email' );
|
429 |
$admin_email_subject = __( 'Booster for WooCommerce: Checkout Files Upload: %action%', 'woocommerce-jetpack' );
|
430 |
+
$admin_email_content = sprintf(
|
431 |
+
/* translators: %s: search term */
|
432 |
+
__( 'Order ID: %1$s; File name: %2$s', 'woocommerce-jetpack' ),
|
433 |
+
'%order_id%',
|
434 |
+
'%file_name%',
|
435 |
+
);
|
436 |
+
$total_number = apply_filters( 'booster_option', 1, wcj_get_option( 'wcj_checkout_files_upload_total_number', 1 ) );
|
437 |
// Remove file.
|
438 |
for ( $i = 1; $i <= $total_number; $i++ ) {
|
439 |
if ( isset( $_POST[ 'wcj_remove_checkout_file_' . $i ] ) ) {
|
608 |
if ( isset( $_GET['post'] ) && isset( $_GET['wcj_checkout_file_number'] ) ) {
|
609 |
$file_name = get_post_meta( sanitize_text_field( wp_unslash( $_GET['post'] ) ), '_wcj_checkout_files_upload_real_name_' . sanitize_text_field( wp_unslash( $_GET['wcj_checkout_file_number'] ) ), true );
|
610 |
if ( wcj_is_user_role( 'administrator' ) || is_shop_manager() ) {
|
611 |
+
WC_Download_Handler::download_file_force( $tmp_file_name, $file_name );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
612 |
}
|
613 |
}
|
614 |
}
|
656 |
$tmp_file_name = $session_data['tmp_name'];
|
657 |
$file_name = $session_data['name'];
|
658 |
}
|
659 |
+
WC_Download_Handler::download_file_force( $tmp_file_name, $file_name );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
660 |
}
|
661 |
}
|
662 |
|
834 |
/**
|
835 |
* Maybe_get_image.
|
836 |
*
|
837 |
+
* @version 5.6.3
|
838 |
* @since 3.7.0
|
839 |
* @param string $link defines the link.
|
840 |
* @param int $i defines the value of i.
|
841 |
* @param int $order_id defines the order_id.
|
842 |
*/
|
843 |
public function maybe_get_image( $link, $i, $order_id = 0 ) {
|
844 |
+
$wpnonce = isset( $_REQUEST['wcj-checkout-files-upload-nonce'] ) ? wp_verify_nonce( sanitize_key( isset( $_REQUEST['wcj-checkout-files-upload-nonce'] ) ? $_REQUEST['wcj-checkout-files-upload-nonce'] : '' ), 'wcj-checkout-files-upload-nonce' ) : false;
|
845 |
if ( 'yes' === wcj_get_option( 'wcj_checkout_files_upload_form_template_field_show_images', 'no' ) ) {
|
846 |
$order = wc_get_order( $order_id );
|
847 |
+
if ( $wpnonce && 0 !== $order_id && isset( $_GET['key'] ) && ( $order ) && $order->key_is_valid( sanitize_text_field( wp_unslash( $_GET['key'] ) ) ) ) {
|
848 |
$order_file_name = get_post_meta( $order_id, '_wcj_checkout_files_upload_' . $i, true );
|
849 |
$tmp_file_name = wcj_get_wcj_uploads_dir( 'checkout_files_upload' ) . '/' . $order_file_name;
|
850 |
} else {
|
851 |
$session_data = wcj_session_get( 'wcj_checkout_files_upload_' . $i );
|
852 |
$tmp_file_name = $session_data['tmp_name'];
|
853 |
}
|
854 |
+
if ( file_exists( $tmp_file_name ) && is_array( getimagesize( $tmp_file_name ) ) ) {
|
855 |
return '<img style="' . wcj_get_option( 'wcj_checkout_files_upload_form_template_field_image_style', 'width:64px;' ) . '" src="' . $link . '"> ';
|
856 |
}
|
857 |
}
|
951 |
}
|
952 |
}
|
953 |
}
|
954 |
+
echo wp_kses_post( $html );
|
955 |
}
|
956 |
|
957 |
/**
|
990 |
$html .= $this->get_the_form( $i, $file_name );
|
991 |
}
|
992 |
}
|
993 |
+
echo wp_kses_post( $html );
|
994 |
+
}
|
995 |
+
|
996 |
+
/**
|
997 |
+
* Wcj_customize_get_return_url.
|
998 |
+
*
|
999 |
+
* @version 5.6.2
|
1000 |
+
* @since 5.6.2
|
1001 |
+
* @param string $return_url return url for the order.
|
1002 |
+
* @param object $order check the is_direct_call.
|
1003 |
+
*/
|
1004 |
+
public function wcj_customize_get_return_url( $return_url, $order ) {
|
1005 |
+
return add_query_arg( 'wcj-checkout-files-upload-nonce', wp_create_nonce( 'wcj-checkout-files-upload-nonce' ), $return_url );
|
1006 |
}
|
1007 |
|
1008 |
}
|
includes/class-wcj-free-price.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Free Price
|
4 |
*
|
5 |
-
* @version 5.
|
6 |
* @since 2.5.9
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
@@ -87,14 +87,14 @@ if ( ! class_exists( 'WCJ_Free_Price' ) ) :
|
|
87 |
/**
|
88 |
* Maybe_modify_price
|
89 |
*
|
90 |
-
* @version
|
91 |
* @since 2.7.0
|
92 |
* @param int $price defines the price.
|
93 |
* @param string | array $_product defines the _product.
|
94 |
*/
|
95 |
public function maybe_modify_price( $price, $_product ) {
|
96 |
if ( '' !== $price ) {
|
97 |
-
if ( 0 === $_product->get_price() ) {
|
98 |
if ( $_product->is_type( 'grouped' ) ) {
|
99 |
return ( $this->are_all_prices_free( $_product, 'grouped' ) ) ? $this->modify_free_price_grouped( $price, $_product ) : $price;
|
100 |
} elseif ( $_product->is_type( 'variable' ) ) {
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Free Price
|
4 |
*
|
5 |
+
* @version 5.6.3
|
6 |
* @since 2.5.9
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
87 |
/**
|
88 |
* Maybe_modify_price
|
89 |
*
|
90 |
+
* @version 5.6.3
|
91 |
* @since 2.7.0
|
92 |
* @param int $price defines the price.
|
93 |
* @param string | array $_product defines the _product.
|
94 |
*/
|
95 |
public function maybe_modify_price( $price, $_product ) {
|
96 |
if ( '' !== $price ) {
|
97 |
+
if ( '0' === $_product->get_price() ) {
|
98 |
if ( $_product->is_type( 'grouped' ) ) {
|
99 |
return ( $this->are_all_prices_free( $_product, 'grouped' ) ) ? $this->modify_free_price_grouped( $price, $_product ) : $price;
|
100 |
} elseif ( $_product->is_type( 'variable' ) ) {
|
includes/class-wcj-mini-cart.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Mini Cart Custom Info
|
4 |
*
|
5 |
-
* @version 5.
|
6 |
* @since 2.2.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
@@ -47,7 +47,7 @@ if ( ! class_exists( 'WCJ_Mini_Cart' ) ) :
|
|
47 |
/**
|
48 |
* Add_mini_cart_custom_info.
|
49 |
*
|
50 |
-
* @version
|
51 |
*/
|
52 |
public function add_mini_cart_custom_info() {
|
53 |
$current_filter = current_filter();
|
@@ -57,7 +57,7 @@ if ( ! class_exists( 'WCJ_Mini_Cart' ) ) :
|
|
57 |
if (
|
58 |
'' !== wcj_get_option( 'wcj_mini_cart_custom_info_content_' . $i ) &&
|
59 |
wcj_get_option( 'wcj_mini_cart_custom_info_hook_' . $i, 'woocommerce_after_mini_cart' ) === $current_filter &&
|
60 |
-
wcj_get_option( 'wcj_mini_cart_custom_info_priority_' . $i, 10 ) === $current_filter_priority
|
61 |
) {
|
62 |
echo do_shortcode( wcj_get_option( 'wcj_mini_cart_custom_info_content_' . $i ) );
|
63 |
}
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Mini Cart Custom Info
|
4 |
*
|
5 |
+
* @version 5.6.3
|
6 |
* @since 2.2.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
47 |
/**
|
48 |
* Add_mini_cart_custom_info.
|
49 |
*
|
50 |
+
* @version 5.6.3
|
51 |
*/
|
52 |
public function add_mini_cart_custom_info() {
|
53 |
$current_filter = current_filter();
|
57 |
if (
|
58 |
'' !== wcj_get_option( 'wcj_mini_cart_custom_info_content_' . $i ) &&
|
59 |
wcj_get_option( 'wcj_mini_cart_custom_info_hook_' . $i, 'woocommerce_after_mini_cart' ) === $current_filter &&
|
60 |
+
wcj_get_option( 'wcj_mini_cart_custom_info_priority_' . $i, 10 ) === (string) $current_filter_priority
|
61 |
) {
|
62 |
echo do_shortcode( wcj_get_option( 'wcj_mini_cart_custom_info_content_' . $i ) );
|
63 |
}
|
includes/class-wcj-my-account.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - My Account
|
4 |
*
|
5 |
-
* @version 5.6.
|
6 |
* @since 2.9.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
@@ -560,13 +560,15 @@ if ( ! class_exists( 'WCJ_My_Account' ) ) :
|
|
560 |
/**
|
561 |
* Process_woocommerce_mark_order_status.
|
562 |
*
|
563 |
-
* @version 5.6.
|
564 |
* @since 2.9.0
|
565 |
*/
|
566 |
public function process_woocommerce_mark_order_status() {
|
|
|
567 |
if (
|
568 |
isset( $_GET['wcj_action'] ) && 'wcj_woocommerce_mark_order_status' === $_GET['wcj_action'] &&
|
569 |
isset( $_GET['status'] ) &&
|
|
|
570 |
isset( $_GET['order_id'] ) &&
|
571 |
isset( $_GET['_wpnonce'] )
|
572 |
) {
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - My Account
|
4 |
*
|
5 |
+
* @version 5.6.3
|
6 |
* @since 2.9.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
560 |
/**
|
561 |
* Process_woocommerce_mark_order_status.
|
562 |
*
|
563 |
+
* @version 5.6.3
|
564 |
* @since 2.9.0
|
565 |
*/
|
566 |
public function process_woocommerce_mark_order_status() {
|
567 |
+
$statuses_to_allow = wcj_get_option( 'wcj_my_account_add_order_status_actions', '' );
|
568 |
if (
|
569 |
isset( $_GET['wcj_action'] ) && 'wcj_woocommerce_mark_order_status' === $_GET['wcj_action'] &&
|
570 |
isset( $_GET['status'] ) &&
|
571 |
+
in_array( $_GET['status'], $statuses_to_allow, true ) &&
|
572 |
isset( $_GET['order_id'] ) &&
|
573 |
isset( $_GET['_wpnonce'] )
|
574 |
) {
|
includes/class-wcj-order-custom-statuses.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Order Custom Statuses
|
4 |
*
|
5 |
-
* @version 5.6.
|
6 |
* @since 2.2.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
@@ -463,7 +463,7 @@ if ( ! class_exists( 'WCJ_Order_Custom_Statuses' ) ) :
|
|
463 |
*
|
464 |
* Using Javascript until WordPress core fixes: http://core.trac.wordpress.org/ticket/16031
|
465 |
*
|
466 |
-
* @version 5.6.
|
467 |
* @since 2.2.7
|
468 |
*/
|
469 |
public function bulk_admin_footer() {
|
@@ -477,18 +477,8 @@ if ( ! class_exists( 'WCJ_Order_Custom_Statuses' ) ) :
|
|
477 |
}
|
478 |
?>
|
479 |
jQuery(function() {
|
480 |
-
jQuery('<option>').val('mark_<?php echo wp_kses_post( $key ); ?>').text('
|
481 |
-
|
482 |
-
echo wp_kses_post( 'Mark', 'woocommerce-jetpack' ) . ' ' .
|
483 |
-
wp_kses_post( $order_status );
|
484 |
-
?>
|
485 |
-
').appendTo('select[name="action"]');
|
486 |
-
jQuery('<option>').val('mark_<?php echo wp_kses_post( $key ); ?>').text('
|
487 |
-
<?php
|
488 |
-
echo wp_kses_post( 'Mark', 'woocommerce-jetpack' ) . ' ' .
|
489 |
-
wp_kses_post( $order_status );
|
490 |
-
?>
|
491 |
-
').appendTo('select[name="action2"]');
|
492 |
});
|
493 |
<?php
|
494 |
}
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Order Custom Statuses
|
4 |
*
|
5 |
+
* @version 5.6.3
|
6 |
* @since 2.2.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
463 |
*
|
464 |
* Using Javascript until WordPress core fixes: http://core.trac.wordpress.org/ticket/16031
|
465 |
*
|
466 |
+
* @version 5.6.3
|
467 |
* @since 2.2.7
|
468 |
*/
|
469 |
public function bulk_admin_footer() {
|
477 |
}
|
478 |
?>
|
479 |
jQuery(function() {
|
480 |
+
jQuery('<option>').val('mark_<?php echo wp_kses_post( $key ); ?>').text('<?php echo wp_kses_post( 'Mark', 'woocommerce-jetpack' ) . ' ' . wp_kses_post( $order_status ); ?>').appendTo('select[name="action"]');
|
481 |
+
jQuery('<option>').val('mark_<?php echo wp_kses_post( $key ); ?>').text('<?php echo wp_kses_post( 'Mark', 'woocommerce-jetpack' ) . ' ' . wp_kses_post( $order_status ); ?>').appendTo('select[name="action2"]');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
482 |
});
|
483 |
<?php
|
484 |
}
|
includes/class-wcj-price-by-user-role.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Price based on User Role
|
4 |
*
|
5 |
-
* @version 5.6.
|
6 |
* @since 2.5.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @todo Fix "Make Empty Price" option for variable products
|
@@ -228,13 +228,13 @@ if ( ! class_exists( 'WCJ_Price_By_User_Role' ) ) :
|
|
228 |
/**
|
229 |
* Add_notice_query_var.
|
230 |
*
|
231 |
-
* @version 5.
|
232 |
* @since 2.5.0
|
233 |
* @param string $location defines the location.
|
234 |
*/
|
235 |
public function add_notice_query_var( $location ) {
|
236 |
remove_filter( 'redirect_post_location', array( $this, 'add_notice_query_var' ), 99 );
|
237 |
-
return add_query_arg( array( 'wcj_product_price_by_user_role_admin_notice' => true ), $location );
|
238 |
}
|
239 |
|
240 |
/**
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Price based on User Role
|
4 |
*
|
5 |
+
* @version 5.6.3
|
6 |
* @since 2.5.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @todo Fix "Make Empty Price" option for variable products
|
228 |
/**
|
229 |
* Add_notice_query_var.
|
230 |
*
|
231 |
+
* @version 5.6.3
|
232 |
* @since 2.5.0
|
233 |
* @param string $location defines the location.
|
234 |
*/
|
235 |
public function add_notice_query_var( $location ) {
|
236 |
remove_filter( 'redirect_post_location', array( $this, 'add_notice_query_var' ), 99 );
|
237 |
+
return esc_url_raw( add_query_arg( array( 'wcj_product_price_by_user_role_admin_notice' => true ), $location ) );
|
238 |
}
|
239 |
|
240 |
/**
|
includes/class-wcj-product-bookings.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Bookings
|
4 |
*
|
5 |
-
* @version 5.6.
|
6 |
* @since 2.5.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
@@ -511,13 +511,13 @@ if ( ! class_exists( 'WCJ_Product_Bookings' ) ) :
|
|
511 |
/**
|
512 |
* Add_notice_query_var.
|
513 |
*
|
514 |
-
* @version 5.
|
515 |
* @since 2.5.0
|
516 |
* @param string $location defines the location.
|
517 |
*/
|
518 |
public function add_notice_query_var( $location ) {
|
519 |
remove_filter( 'redirect_post_location', array( $this, 'add_notice_query_var' ), 99 );
|
520 |
-
return add_query_arg( array( 'wcj_product_bookings_admin_notice' => true ), $location );
|
521 |
}
|
522 |
|
523 |
/**
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Bookings
|
4 |
*
|
5 |
+
* @version 5.6.3
|
6 |
* @since 2.5.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
511 |
/**
|
512 |
* Add_notice_query_var.
|
513 |
*
|
514 |
+
* @version 5.6.3
|
515 |
* @since 2.5.0
|
516 |
* @param string $location defines the location.
|
517 |
*/
|
518 |
public function add_notice_query_var( $location ) {
|
519 |
remove_filter( 'redirect_post_location', array( $this, 'add_notice_query_var' ), 99 );
|
520 |
+
return esc_url_raw( add_query_arg( array( 'wcj_product_bookings_admin_notice' => true ), $location ) );
|
521 |
}
|
522 |
|
523 |
/**
|
includes/class-wcj-product-open-pricing.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Product Open Pricing
|
4 |
*
|
5 |
-
* @version 5.6.
|
6 |
* @since 2.4.8
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
@@ -221,13 +221,13 @@ if ( ! class_exists( 'WCJ_Product_Open_Pricing' ) ) :
|
|
221 |
/**
|
222 |
* Add_notice_query_var.
|
223 |
*
|
224 |
-
* @version 5.
|
225 |
* @since 2.4.8
|
226 |
* @param string $location defines the location.
|
227 |
*/
|
228 |
public function add_notice_query_var( $location ) {
|
229 |
remove_filter( 'redirect_post_location', array( $this, 'add_notice_query_var' ), 99 );
|
230 |
-
return
|
231 |
}
|
232 |
|
233 |
/**
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Product Open Pricing
|
4 |
*
|
5 |
+
* @version 5.6.3
|
6 |
* @since 2.4.8
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
221 |
/**
|
222 |
* Add_notice_query_var.
|
223 |
*
|
224 |
+
* @version 5.6.3
|
225 |
* @since 2.4.8
|
226 |
* @param string $location defines the location.
|
227 |
*/
|
228 |
public function add_notice_query_var( $location ) {
|
229 |
remove_filter( 'redirect_post_location', array( $this, 'add_notice_query_var' ), 99 );
|
230 |
+
return esc_url_raw( add_query_arg( array( 'wcj_product_open_price_admin_notice' => true ), $location ) );
|
231 |
}
|
232 |
|
233 |
/**
|
includes/class-wcj-product-price-by-formula.php
CHANGED
@@ -433,7 +433,7 @@ if ( ! class_exists( 'WCJ_Product_Price_By_Formula' ) ) :
|
|
433 |
*/
|
434 |
public function add_notice_query_var( $location ) {
|
435 |
remove_filter( 'redirect_post_location', array( $this, 'add_notice_query_var' ), 99 );
|
436 |
-
return add_query_arg( array( 'wcj_product_price_by_formula_admin_notice' => true ), $location );
|
437 |
}
|
438 |
|
439 |
/**
|
433 |
*/
|
434 |
public function add_notice_query_var( $location ) {
|
435 |
remove_filter( 'redirect_post_location', array( $this, 'add_notice_query_var' ), 99 );
|
436 |
+
return esc_url_raw( add_query_arg( array( 'wcj_product_price_by_formula_admin_notice' => true ), $location ) );
|
437 |
}
|
438 |
|
439 |
/**
|
includes/class-wcj-product-tabs.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Product Tabs
|
4 |
*
|
5 |
-
* @version 5.6.
|
6 |
* @author Pluggabl LLC.
|
7 |
* @package Booster_For_WooCommerce/includes
|
8 |
*/
|
@@ -567,7 +567,7 @@ if ( ! class_exists( 'WCJ_Product_Tabs' ) ) :
|
|
567 |
/**
|
568 |
* Save_custom_tabs_meta_box.
|
569 |
*
|
570 |
-
* @version 5.6.
|
571 |
* @todo rewrite as standard `WCJ_Module` function
|
572 |
* @param int $post_id defines the post_id.
|
573 |
* @param string | array $post defines the post.
|
@@ -597,7 +597,7 @@ if ( ! class_exists( 'WCJ_Product_Tabs' ) ) :
|
|
597 |
if ( $this->is_local_tab_visible( $i, $post_id ) ) {
|
598 |
foreach ( $option_names as $option_name ) {
|
599 |
$sanitized_option_name = $wpnonce && isset( $_POST[ $option_name . $i ] ) ? sanitize_text_field( wp_unslash( $_POST[ $option_name . $i ] ) ) : '';
|
600 |
-
update_post_meta( $post_id, '_' . $option_name . $i,
|
601 |
}
|
602 |
}
|
603 |
}
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Product Tabs
|
4 |
*
|
5 |
+
* @version 5.6.3
|
6 |
* @author Pluggabl LLC.
|
7 |
* @package Booster_For_WooCommerce/includes
|
8 |
*/
|
567 |
/**
|
568 |
* Save_custom_tabs_meta_box.
|
569 |
*
|
570 |
+
* @version 5.6.3
|
571 |
* @todo rewrite as standard `WCJ_Module` function
|
572 |
* @param int $post_id defines the post_id.
|
573 |
* @param string | array $post defines the post.
|
597 |
if ( $this->is_local_tab_visible( $i, $post_id ) ) {
|
598 |
foreach ( $option_names as $option_name ) {
|
599 |
$sanitized_option_name = $wpnonce && isset( $_POST[ $option_name . $i ] ) ? sanitize_text_field( wp_unslash( $_POST[ $option_name . $i ] ) ) : '';
|
600 |
+
update_post_meta( $post_id, '_' . $option_name . $i, wp_kses_post( wp_unslash( $_POST[ $option_name . $i ] ) ) );
|
601 |
}
|
602 |
}
|
603 |
}
|
includes/class-wcj-purchase-data.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Cost of Goods (formerly Product Cost Price)
|
4 |
*
|
5 |
-
* @version 5.6.
|
6 |
* @since 2.2.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
@@ -248,7 +248,7 @@ if ( ! class_exists( 'WCJ_Purchase_Data' ) ) :
|
|
248 |
$product_id = ( isset( $item['variation_id'] ) && 0 !== $item['variation_id'] && 'no' === wcj_get_option( 'wcj_purchase_data_variable_as_simple_enabled', 'no' )
|
249 |
? $item['variation_id'] : $item['product_id'] );
|
250 |
$purchase_price = wc_get_product_purchase_price( $product_id );
|
251 |
-
if (
|
252 |
if ( 'profit' === $column ) {
|
253 |
$_order_prices_include_tax = ( WCJ_IS_WC_VERSION_BELOW_3 ? $the_order->prices_include_tax : $the_order->get_prices_include_tax() );
|
254 |
$line_total = ( $_order_prices_include_tax ) ? ( $item['line_total'] + $item['line_tax'] ) : $item['line_total'];
|
@@ -262,7 +262,7 @@ if ( ! class_exists( 'WCJ_Purchase_Data' ) ) :
|
|
262 |
$total += $value;
|
263 |
}
|
264 |
}
|
265 |
-
if ( 0
|
266 |
if ( ! $is_forecasted ) {
|
267 |
echo '<span style="color:green;">';
|
268 |
}
|
@@ -277,7 +277,7 @@ if ( ! class_exists( 'WCJ_Purchase_Data' ) ) :
|
|
277 |
/**
|
278 |
* Create_meta_box.
|
279 |
*
|
280 |
-
* @version 5.6.
|
281 |
* @since 2.4.5
|
282 |
* @todo (maybe) min_profit
|
283 |
*/
|
@@ -300,10 +300,13 @@ if ( ! class_exists( 'WCJ_Purchase_Data' ) ) :
|
|
300 |
}
|
301 |
foreach ( $products as $product_id => $desc ) {
|
302 |
$purchase_price = wc_get_product_purchase_price( $product_id );
|
303 |
-
if (
|
|
|
|
|
|
|
304 |
$the_product = wc_get_product( $product_id );
|
305 |
$the_price = $the_product->get_price();
|
306 |
-
if ( 0
|
307 |
$the_profit = $the_price - $purchase_price;
|
308 |
$table_data = array();
|
309 |
$table_data[] = array( __( 'Selling', 'woocommerce-jetpack' ), wc_price( $the_price ) );
|
2 |
/**
|
3 |
* Booster for WooCommerce - Module - Cost of Goods (formerly Product Cost Price)
|
4 |
*
|
5 |
+
* @version 5.6.3
|
6 |
* @since 2.2.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
248 |
$product_id = ( isset( $item['variation_id'] ) && 0 !== $item['variation_id'] && 'no' === wcj_get_option( 'wcj_purchase_data_variable_as_simple_enabled', 'no' )
|
249 |
? $item['variation_id'] : $item['product_id'] );
|
250 |
$purchase_price = wc_get_product_purchase_price( $product_id );
|
251 |
+
if ( (float) 0 !== $purchase_price ) {
|
252 |
if ( 'profit' === $column ) {
|
253 |
$_order_prices_include_tax = ( WCJ_IS_WC_VERSION_BELOW_3 ? $the_order->prices_include_tax : $the_order->get_prices_include_tax() );
|
254 |
$line_total = ( $_order_prices_include_tax ) ? ( $item['line_total'] + $item['line_tax'] ) : $item['line_total'];
|
262 |
$total += $value;
|
263 |
}
|
264 |
}
|
265 |
+
if ( 0 !== $total ) {
|
266 |
if ( ! $is_forecasted ) {
|
267 |
echo '<span style="color:green;">';
|
268 |
}
|
277 |
/**
|
278 |
* Create_meta_box.
|
279 |
*
|
280 |
+
* @version 5.6.3
|
281 |
* @since 2.4.5
|
282 |
* @todo (maybe) min_profit
|
283 |
*/
|
300 |
}
|
301 |
foreach ( $products as $product_id => $desc ) {
|
302 |
$purchase_price = wc_get_product_purchase_price( $product_id );
|
303 |
+
if ( $purchase_price <= 0 ) {
|
304 |
+
$purchase_price = 0;
|
305 |
+
}
|
306 |
+
if ( 0 !== $purchase_price && '0' !== $purchase_price && '' !== $purchase_price ) {
|
307 |
$the_product = wc_get_product( $product_id );
|
308 |
$the_price = $the_product->get_price();
|
309 |
+
if ( 0 !== $the_price && '0' !== $the_price && '' !== $the_price ) {
|
310 |
$the_profit = $the_price - $purchase_price;
|
311 |
$table_data = array();
|
312 |
$table_data[] = array( __( 'Selling', 'woocommerce-jetpack' ), wc_price( $the_price ) );
|
includes/classes/class-wcj-module.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce Module
|
4 |
*
|
5 |
-
* @version 5.6.
|
6 |
* @since 2.2.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @todo [dev] maybe should be `abstract` ?
|
@@ -358,13 +358,13 @@ if ( ! class_exists( 'WCJ_Module' ) ) :
|
|
358 |
/**
|
359 |
* Validate_value_add_notice_query_var.
|
360 |
*
|
361 |
-
* @version 5.
|
362 |
* @since 2.9.1
|
363 |
* @param String $location Get location.
|
364 |
*/
|
365 |
public function validate_value_add_notice_query_var( $location ) {
|
366 |
remove_filter( 'redirect_post_location', array( $this, 'validate_value_add_notice_query_var' ), 99 );
|
367 |
-
return add_query_arg( array( 'wcj_' . $this->id . '_meta_box_admin_notice' => true ), $location );
|
368 |
}
|
369 |
|
370 |
/**
|
@@ -493,13 +493,13 @@ if ( ! class_exists( 'WCJ_Module' ) ) :
|
|
493 |
/**
|
494 |
* Add_notice_query_var.
|
495 |
*
|
496 |
-
* @version 5.
|
497 |
* @since 2.5.3
|
498 |
* @param String $location Get location.
|
499 |
*/
|
500 |
public function add_notice_query_var( $location ) {
|
501 |
remove_filter( 'redirect_post_location', array( $this, 'add_notice_query_var' ), 99 );
|
502 |
-
return
|
503 |
}
|
504 |
|
505 |
/**
|
@@ -635,12 +635,18 @@ if ( ! class_exists( 'WCJ_Module' ) ) :
|
|
635 |
setup_postdata( $_post );
|
636 |
// Save options.
|
637 |
foreach ( $this->get_meta_box_options() as $option ) {
|
638 |
-
if (
|
639 |
continue;
|
640 |
}
|
641 |
$is_enabled = ( isset( $option['enabled'] ) && 'no' === $option['enabled'] ) ? false : true;
|
642 |
if ( $is_enabled ) {
|
643 |
-
$option_value
|
|
|
|
|
|
|
|
|
|
|
|
|
644 |
$the_post_id = ( isset( $option['product_id'] ) ) ? $option['product_id'] : $post_id;
|
645 |
$the_meta_name = ( isset( $option['meta_name'] ) ) ? $option['meta_name'] : '_' . $option['name'];
|
646 |
if ( isset( $option['convert'] ) && 'from_date_to_timestamp' === $option['convert'] ) {
|
2 |
/**
|
3 |
* Booster for WooCommerce Module
|
4 |
*
|
5 |
+
* @version 5.6.3
|
6 |
* @since 2.2.0
|
7 |
* @author Pluggabl LLC.
|
8 |
* @todo [dev] maybe should be `abstract` ?
|
358 |
/**
|
359 |
* Validate_value_add_notice_query_var.
|
360 |
*
|
361 |
+
* @version 5.6.3
|
362 |
* @since 2.9.1
|
363 |
* @param String $location Get location.
|
364 |
*/
|
365 |
public function validate_value_add_notice_query_var( $location ) {
|
366 |
remove_filter( 'redirect_post_location', array( $this, 'validate_value_add_notice_query_var' ), 99 );
|
367 |
+
return esc_url_raw( add_query_arg( array( 'wcj_' . $this->id . '_meta_box_admin_notice' => true ), $location ) );
|
368 |
}
|
369 |
|
370 |
/**
|
493 |
/**
|
494 |
* Add_notice_query_var.
|
495 |
*
|
496 |
+
* @version 5.6.3
|
497 |
* @since 2.5.3
|
498 |
* @param String $location Get location.
|
499 |
*/
|
500 |
public function add_notice_query_var( $location ) {
|
501 |
remove_filter( 'redirect_post_location', array( $this, 'add_notice_query_var' ), 99 );
|
502 |
+
return esc_url_raw( add_query_arg( array( 'wcj_' . $this->id . '_admin_notice' => true ), $location ) );
|
503 |
}
|
504 |
|
505 |
/**
|
635 |
setup_postdata( $_post );
|
636 |
// Save options.
|
637 |
foreach ( $this->get_meta_box_options() as $option ) {
|
638 |
+
if ( 'title' === $option['type'] ) {
|
639 |
continue;
|
640 |
}
|
641 |
$is_enabled = ( isset( $option['enabled'] ) && 'no' === $option['enabled'] ) ? false : true;
|
642 |
if ( $is_enabled ) {
|
643 |
+
$option_value = '';
|
644 |
+
$wpnonce = wp_verify_nonce( wp_unslash( isset( $_POST['woocommerce_meta_nonce'] ) ? sanitize_text_field( wp_unslash( $_POST['woocommerce_meta_nonce'] ) ) : '' ), 'woocommerce_save_data' );
|
645 |
+
if ( $wpnonce && isset( $_POST[ $option['name'] ] ) ) {
|
646 |
+
$option_value = is_array( $_POST[ $option['name'] ] ) ? array_map( 'sanitize_text_field', wp_unslash( $_POST[ $option['name'] ] ) ) : sanitize_text_field( wp_unslash( $_POST[ $option['name'] ] ) );
|
647 |
+
} elseif ( isset( $option['default'] ) ) {
|
648 |
+
$option_value = $option['default'];
|
649 |
+
}
|
650 |
$the_post_id = ( isset( $option['product_id'] ) ) ? $option['product_id'] : $post_id;
|
651 |
$the_meta_name = ( isset( $option['meta_name'] ) ) ? $option['meta_name'] : '_' . $option['name'];
|
652 |
if ( isset( $option['convert'] ) && 'from_date_to_timestamp' === $option['convert'] ) {
|
includes/functions/wcj-functions-general.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Functions - General
|
4 |
*
|
5 |
-
* @version 5.6.
|
6 |
* @author Pluggabl LLC.
|
7 |
* @todo add `wcj_add_actions()` and `wcj_add_filters()`
|
8 |
* @package Booster_For_WooCommerce/functions
|
@@ -1035,7 +1035,7 @@ if ( ! function_exists( 'wcj_add_allowed_html' ) ) {
|
|
1035 |
/**
|
1036 |
* Wcj_add_allowed_html.
|
1037 |
*
|
1038 |
-
* @version 5.6.
|
1039 |
* @since 5.6.0
|
1040 |
* @param array $allowed_html to get default allowed html.
|
1041 |
* @param string $context to get default context.
|
@@ -1054,6 +1054,8 @@ if ( ! function_exists( 'wcj_add_allowed_html' ) ) {
|
|
1054 |
'dateformat' => true,
|
1055 |
'mindate' => true,
|
1056 |
'maxdate' => true,
|
|
|
|
|
1057 |
'firstday' => true,
|
1058 |
'display' => true,
|
1059 |
'required' => true,
|
@@ -1071,6 +1073,8 @@ if ( ! function_exists( 'wcj_add_allowed_html' ) ) {
|
|
1071 |
'currentday_time_limit' => true,
|
1072 |
'data-blocked_dates_format' => true,
|
1073 |
'onclick' => true,
|
|
|
|
|
1074 |
),
|
1075 |
'textarea' => array(
|
1076 |
'name' => true,
|
@@ -1133,10 +1137,23 @@ if ( ! function_exists( 'wcj_add_allowed_html' ) ) {
|
|
1133 |
'style' => true,
|
1134 |
'class' => true,
|
1135 |
'disabled' => true,
|
|
|
|
|
1136 |
),
|
1137 |
'style' => array(
|
1138 |
'type' => true,
|
1139 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1140 |
'a' => array(
|
1141 |
'onclick' => true,
|
1142 |
'onblur' => true,
|
@@ -1145,12 +1162,14 @@ if ( ! function_exists( 'wcj_add_allowed_html' ) ) {
|
|
1145 |
'target' => true,
|
1146 |
'wcj-copy-data' => true,
|
1147 |
),
|
1148 |
-
'
|
1149 |
-
'
|
1150 |
),
|
|
|
|
|
1151 |
);
|
1152 |
$allowed_merged_html = array_merge_recursive( $allowed_html, $allowed_extra_html );
|
1153 |
return $allowed_merged_html;
|
1154 |
}
|
1155 |
-
add_filter( 'wp_kses_allowed_html', 'wcj_add_allowed_html',
|
1156 |
}
|
2 |
/**
|
3 |
* Booster for WooCommerce - Functions - General
|
4 |
*
|
5 |
+
* @version 5.6.3
|
6 |
* @author Pluggabl LLC.
|
7 |
* @todo add `wcj_add_actions()` and `wcj_add_filters()`
|
8 |
* @package Booster_For_WooCommerce/functions
|
1035 |
/**
|
1036 |
* Wcj_add_allowed_html.
|
1037 |
*
|
1038 |
+
* @version 5.6.3
|
1039 |
* @since 5.6.0
|
1040 |
* @param array $allowed_html to get default allowed html.
|
1041 |
* @param string $context to get default context.
|
1054 |
'dateformat' => true,
|
1055 |
'mindate' => true,
|
1056 |
'maxdate' => true,
|
1057 |
+
'excludemonths' => true,
|
1058 |
+
'excludedays' => true,
|
1059 |
'firstday' => true,
|
1060 |
'display' => true,
|
1061 |
'required' => true,
|
1073 |
'currentday_time_limit' => true,
|
1074 |
'data-blocked_dates_format' => true,
|
1075 |
'onclick' => true,
|
1076 |
+
'accept' => true,
|
1077 |
+
'data-*' => true,
|
1078 |
),
|
1079 |
'textarea' => array(
|
1080 |
'name' => true,
|
1137 |
'style' => true,
|
1138 |
'class' => true,
|
1139 |
'disabled' => true,
|
1140 |
+
'onclick' => true,
|
1141 |
+
'wcj_data' => true,
|
1142 |
),
|
1143 |
'style' => array(
|
1144 |
'type' => true,
|
1145 |
),
|
1146 |
+
'script' => array(
|
1147 |
+
'type' => true,
|
1148 |
+
'async' => true,
|
1149 |
+
'crossorigin' => true,
|
1150 |
+
'defer' => true,
|
1151 |
+
'integrity' => true,
|
1152 |
+
'nomodule' => true,
|
1153 |
+
'referrerpolicy' => true,
|
1154 |
+
'src' => true,
|
1155 |
+
'type' => true,
|
1156 |
+
),
|
1157 |
'a' => array(
|
1158 |
'onclick' => true,
|
1159 |
'onblur' => true,
|
1162 |
'target' => true,
|
1163 |
'wcj-copy-data' => true,
|
1164 |
),
|
1165 |
+
'details' => array(
|
1166 |
+
'open' => true,
|
1167 |
),
|
1168 |
+
'bdi' => true,
|
1169 |
+
'em' => true,
|
1170 |
);
|
1171 |
$allowed_merged_html = array_merge_recursive( $allowed_html, $allowed_extra_html );
|
1172 |
return $allowed_merged_html;
|
1173 |
}
|
1174 |
+
add_filter( 'wp_kses_allowed_html', 'wcj_add_allowed_html', PHP_INT_MAX, 2 );
|
1175 |
}
|
includes/input-fields/class-wcj-product-input-fields-core.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Product Input Fields - Core
|
4 |
*
|
5 |
-
* @version 5.6.
|
6 |
* @author Pluggabl LLC.
|
7 |
* @package Booster_For_WooCommerce/includes
|
8 |
*/
|
@@ -155,7 +155,7 @@ if ( ! class_exists( 'WCJ_Product_Input_Fields_Core' ) ) :
|
|
155 |
/**
|
156 |
* Save product input fields on Product Edit.
|
157 |
*
|
158 |
-
* @version 5.6.
|
159 |
* @param int $post_id Get post ID.
|
160 |
* @param obj | Array $post Get post.
|
161 |
*/
|
@@ -177,7 +177,7 @@ if ( ! class_exists( 'WCJ_Product_Input_Fields_Core' ) ) :
|
|
177 |
foreach ( $options as $option ) {
|
178 |
$option_name = str_replace( 'wcj_product_input_fields_', '', $option['id'] . $i );
|
179 |
if ( isset( $_POST[ $option['id'] . $i ] ) ) {
|
180 |
-
$values[ $option_name ] = isset( $_POST[ $option['id'] . $i ] ) ?
|
181 |
} elseif ( 'checkbox' === $option['type'] ) {
|
182 |
$values[ $option_name ] = 'off';
|
183 |
}
|
2 |
/**
|
3 |
* Booster for WooCommerce - Product Input Fields - Core
|
4 |
*
|
5 |
+
* @version 5.6.3
|
6 |
* @author Pluggabl LLC.
|
7 |
* @package Booster_For_WooCommerce/includes
|
8 |
*/
|
155 |
/**
|
156 |
* Save product input fields on Product Edit.
|
157 |
*
|
158 |
+
* @version 5.6.3
|
159 |
* @param int $post_id Get post ID.
|
160 |
* @param obj | Array $post Get post.
|
161 |
*/
|
177 |
foreach ( $options as $option ) {
|
178 |
$option_name = str_replace( 'wcj_product_input_fields_', '', $option['id'] . $i );
|
179 |
if ( isset( $_POST[ $option['id'] . $i ] ) ) {
|
180 |
+
$values[ $option_name ] = isset( $_POST[ $option['id'] . $i ] ) ? wp_kses_post( wp_unslash( $_POST[ $option['id'] . $i ] ) ) : '';
|
181 |
} elseif ( 'checkbox' === $option['type'] ) {
|
182 |
$values[ $option_name ] = 'off';
|
183 |
}
|
includes/mini-plugin/wcj-mini-plugin.php
CHANGED
@@ -2,6 +2,90 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Mini plugin customizations
|
4 |
*
|
|
|
5 |
* @author Pluggabl LLC.
|
6 |
* @package Booster_For_WooCommerce/mini-plugin
|
7 |
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Mini plugin customizations
|
4 |
*
|
5 |
+
* @version 5.6.3
|
6 |
* @author Pluggabl LLC.
|
7 |
* @package Booster_For_WooCommerce/mini-plugin
|
8 |
*/
|
9 |
+
|
10 |
+
add_filter(
|
11 |
+
'wcj_modules',
|
12 |
+
function ( $modules_cats ) {
|
13 |
+
$modules_cats = array_filter(
|
14 |
+
$modules_cats,
|
15 |
+
function ( $item ) {
|
16 |
+
return in_array( $item, array( 'emails_and_misc', 'pdf_invoicing', 'shipping_and_orders', 'payment_gateways', 'cart_and_checkout', 'products', 'labels', 'prices_and_currencies', 'labels', 'pdf_invoicing', 'dashboard' ), true );
|
17 |
+
},
|
18 |
+
ARRAY_FILTER_USE_KEY
|
19 |
+
);
|
20 |
+
$all_cat_ids1 = array( 'price_by_country', 'multicurrency', 'multicurrency_base_price', 'currency_per_product', 'currency', 'currency_external_products', 'bulk_price_converter', 'wholesale_price', 'product_open_pricing', 'offer_price', 'price_by_user_role', 'product_price_by_formula', 'global_discount', 'currency_exchange_rates', 'price_formats', 'price_labels', 'call_for_price', 'free_price', 'add_to_cart', 'more_button_labels', 'product_listings', 'tax_display', 'admin_products_list', 'products_per_page', 'product_tabs', 'product_custom_info', 'related_products', 'cross_sells', 'upsells', 'sorting', 'sku', 'stock', 'product_input_fields', 'product_add_to_cart', 'add_to_cart_button_visibility', 'purchase_data', 'product_bookings', 'crowdfunding', 'product_addons', 'product_images', 'sale_flash', 'product_by_country', 'product_by_user_role', 'product_custom_visibility', 'product_by_time', 'product_by_date', 'product_by_user', 'products_xml', 'product_bulk_meta_editor', 'product_msrp', 'product_extra_fees', 'cart', 'cart_customization', 'empty_cart', 'mini_cart', 'url_coupons', 'coupon_code_generator', 'coupon_by_user_role', 'checkout_core_fields', 'checkout_custom_fields', 'checkout_files_upload', 'checkout_custom_info', 'checkout_customization', 'checkout_fees', 'eu_vat_number', 'frequently_bought_together', 'one_page_checkout', 'payment_gateways', 'payment_gateways_icons', 'payment_gateways_fees', 'payment_gateways_per_category', 'payment_gateways_currency', 'payment_gateways_by_currency', 'payment_gateways_min_max', 'payment_gateways_by_country', 'payment_gateways_by_user_role', 'payment_gateways_by_shipping', 'shipping', 'shipping_options', 'shipping_icons', 'shipping_description', 'shipping_time', 'left_to_free_shipping', 'shipping_calculator', 'shipping_by_user_role', 'shipping_by_products', 'shipping_by_cities', 'shipping_by_time', 'shipping_by_order_amount', 'shipping_by_order_qty', 'address_formats', 'orders', 'admin_orders_list', 'order_min_amount', 'order_numbers', 'order_custom_statuses', 'order_quantities', 'max_products_per_user', 'pdf_invoicing', 'pdf_invoicing_numbering', 'pdf_invoicing_templates', 'pdf_invoicing_header', 'pdf_invoicing_footer', 'pdf_invoicing_styling', 'pdf_invoicing_page', 'pdf_invoicing_emails', 'pdf_invoicing_paid_stamp', 'pdf_invoicing_display', 'pdf_invoicing_advanced', 'pdf_invoicing_extra_columns', 'general', 'breadcrumbs', 'admin_bar', 'export', 'my_account', 'old_slugs', 'reports', 'admin_tools', 'debug_tools', 'emails', 'email_options', 'emails_verification', 'wpml', 'custom_css', 'custom_js', 'custom_php', 'track_users', 'modules_by_user_roles', 'template_editor', 'product_info' );
|
21 |
+
$modules_all_cats = $modules_cats;
|
22 |
+
|
23 |
+
// ----- Modules By User Roles Module Options Start -----
|
24 |
+
if ( ! function_exists( 'wp_get_current_user' ) ) {
|
25 |
+
require_once ABSPATH . 'wp-includes/pluggable.php';
|
26 |
+
}
|
27 |
+
$current_user = wp_get_current_user();
|
28 |
+
|
29 |
+
$wcj_modules_by_user_roles_data['role'] = ( isset( $current_user->roles ) && is_array( $current_user->roles ) && ! empty( $current_user->roles ) ?
|
30 |
+
reset( $current_user->roles ) : 'guest' );
|
31 |
+
$wcj_modules_by_user_roles_data['role'] = ( '' !== $wcj_modules_by_user_roles_data['role'] ? $wcj_modules_by_user_roles_data['role'] : 'guest' );
|
32 |
+
$wcj_modules_by_user_roles_data['modules_incl'] = wcj_get_option( 'wcj_modules_by_user_roles_incl_' . $wcj_modules_by_user_roles_data['role'], '' );
|
33 |
+
$wcj_modules_by_user_roles_data['modules_excl'] = wcj_get_option( 'wcj_modules_by_user_roles_excl_' . $wcj_modules_by_user_roles_data['role'], '' );
|
34 |
+
|
35 |
+
if ( empty( $wcj_modules_by_user_roles_data['modules_incl'] ) && empty( $wcj_modules_by_user_roles_data['modules_excl'] ) ) {
|
36 |
+
$all_cat_ids = $all_cat_ids1;
|
37 |
+
} elseif ( ! empty( $wcj_modules_by_user_roles_data['modules_incl'] ) && empty( $wcj_modules_by_user_roles_data['modules_excl'] ) ) {
|
38 |
+
|
39 |
+
$all_cat_ids = $wcj_modules_by_user_roles_data['modules_incl'];
|
40 |
+
|
41 |
+
} elseif ( empty( $wcj_modules_by_user_roles_data['modules_incl'] ) && ! empty( $wcj_modules_by_user_roles_data['modules_excl'] ) ) {
|
42 |
+
$array = $all_cat_ids1;
|
43 |
+
|
44 |
+
$value = $wcj_modules_by_user_roles_data['modules_excl'];
|
45 |
+
$array = array_diff( $array, $value );
|
46 |
+
|
47 |
+
$all_cat_ids = $array;
|
48 |
+
} elseif ( ! empty( $wcj_modules_by_user_roles_data['modules_incl'] ) && ! empty( $wcj_modules_by_user_roles_data['modules_excl'] ) ) {
|
49 |
+
|
50 |
+
$all_cat_ids = $wcj_modules_by_user_roles_data['modules_incl'];
|
51 |
+
}
|
52 |
+
// ----- Modules By User Roles Module Options End -----
|
53 |
+
|
54 |
+
if ( count( $all_cat_ids ) <= 1 && '' === $all_cat_ids[0] ) {
|
55 |
+
foreach ( $modules_cats as $key => $value ) {
|
56 |
+
$all_cat_ids = array_merge( $value['all_cat_ids'], $all_cat_ids );
|
57 |
+
}
|
58 |
+
} else {
|
59 |
+
foreach ( $modules_all_cats as $key => $modules_cat ) {
|
60 |
+
foreach ( $modules_cat as $cat_keys => $value ) {
|
61 |
+
if ( 'dashboard' === $key || 'all_cat_ids' !== $cat_keys ) {
|
62 |
+
continue;
|
63 |
+
}
|
64 |
+
$modules_cats[ $key ]['all_cat_ids'] = array();
|
65 |
+
foreach ( $value as $module ) {
|
66 |
+
|
67 |
+
if ( in_array( $module, $all_cat_ids, true ) ) {
|
68 |
+
array_push( $modules_cats[ $key ]['all_cat_ids'], $module );
|
69 |
+
}
|
70 |
+
}
|
71 |
+
}
|
72 |
+
}
|
73 |
+
}
|
74 |
+
add_filter(
|
75 |
+
'wcj_modules_loaded',
|
76 |
+
function( $modules ) use ( $all_cat_ids ) {
|
77 |
+
$modules = array_filter(
|
78 |
+
$modules,
|
79 |
+
function ( $item ) use ( $all_cat_ids ) {
|
80 |
+
return in_array( $item, $all_cat_ids, true );
|
81 |
+
},
|
82 |
+
ARRAY_FILTER_USE_KEY
|
83 |
+
);
|
84 |
+
return $modules;
|
85 |
+
},
|
86 |
+
10,
|
87 |
+
2
|
88 |
+
);
|
89 |
+
return $modules_cats;
|
90 |
+
}
|
91 |
+
);
|
includes/pdf-invoices/class-wcj-pdf-invoicing-report-tool.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - PDF Invoicing - Report Tool
|
4 |
*
|
5 |
-
* @version 5.6.
|
6 |
* @since 2.2.1
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
@@ -353,7 +353,7 @@ if ( ! class_exists( 'WCJ_PDF_Invoicing_Report_Tool' ) ) :
|
|
353 |
/**
|
354 |
* Invoices Report Data function.
|
355 |
*
|
356 |
-
* @version 5.6.
|
357 |
* @since 2.5.7
|
358 |
* @param int | string $year Get year.
|
359 |
* @param int | string $month Get month.
|
@@ -431,8 +431,18 @@ if ( ! class_exists( 'WCJ_PDF_Invoicing_Report_Tool' ) ) :
|
|
431 |
$order_cart_total_excl_tax += $item->get_total();
|
432 |
}
|
433 |
$order_shipping_total_excl_tax = $the_order->get_shipping_total();
|
434 |
-
|
435 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
436 |
|
437 |
$row = array();
|
438 |
foreach ( $columns as $column ) {
|
2 |
/**
|
3 |
* Booster for WooCommerce - PDF Invoicing - Report Tool
|
4 |
*
|
5 |
+
* @version 5.6.3
|
6 |
* @since 2.2.1
|
7 |
* @author Pluggabl LLC.
|
8 |
* @package Booster_For_WooCommerce/includes
|
353 |
/**
|
354 |
* Invoices Report Data function.
|
355 |
*
|
356 |
+
* @version 5.6.3
|
357 |
* @since 2.5.7
|
358 |
* @param int | string $year Get year.
|
359 |
* @param int | string $month Get month.
|
431 |
$order_cart_total_excl_tax += $item->get_total();
|
432 |
}
|
433 |
$order_shipping_total_excl_tax = $the_order->get_shipping_total();
|
434 |
+
|
435 |
+
if ( 0 === $order_cart_total_excl_tax || '0' === $order_cart_tax ) {
|
436 |
+
$order_cart_tax_percent = 0;
|
437 |
+
} else {
|
438 |
+
$order_cart_tax_percent = ( 0 === $order_cart_total_excl_tax ? 0 : $order_cart_tax / $order_cart_total_excl_tax );
|
439 |
+
}
|
440 |
+
|
441 |
+
if ( 0 === $order_shipping_total_excl_tax || '0' === $order_shipping_tax ) {
|
442 |
+
$order_shipping_tax_percent = 0;
|
443 |
+
} else {
|
444 |
+
$order_shipping_tax_percent = ( 0 === $order_shipping_total_excl_tax ? 0 : $order_shipping_tax / $order_shipping_total_excl_tax );
|
445 |
+
}
|
446 |
|
447 |
$row = array();
|
448 |
foreach ( $columns as $column ) {
|
includes/shortcodes/class-wcj-orders-shortcodes.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Booster for WooCommerce - Shortcodes - Orders
|
4 |
*
|
5 |
-
* @version 5.6.
|
6 |
* @author Pluggabl LLC.
|
7 |
* @package Booster_For_WooCommerce/shortcodes
|
8 |
*/
|
@@ -20,7 +20,7 @@ if ( ! class_exists( 'WCJ_Orders_Shortcodes' ) ) :
|
|
20 |
/**
|
21 |
* Constructor.
|
22 |
*
|
23 |
-
* @version 5.
|
24 |
*/
|
25 |
public function __construct() {
|
26 |
|
@@ -93,6 +93,7 @@ if ( ! class_exists( 'WCJ_Orders_Shortcodes' ) ) :
|
|
93 |
'wcj_order_total_length',
|
94 |
'wcj_order_total_shipping_refunded',
|
95 |
'wcj_order_total_refunded',
|
|
|
96 |
'wcj_order_total_tax',
|
97 |
'wcj_order_total_tax_after_refund',
|
98 |
'wcj_order_total_tax_without_html_custom',
|
@@ -480,7 +481,7 @@ if ( ! class_exists( 'WCJ_Orders_Shortcodes' ) ) :
|
|
480 |
/**
|
481 |
* Wcj_order_total_refunded.
|
482 |
*
|
483 |
-
* @version 5.6.
|
484 |
* @since 2.5.3
|
485 |
* @param array $atts The user defined shortcode attributes.
|
486 |
*/
|
@@ -489,6 +490,26 @@ if ( ! class_exists( 'WCJ_Orders_Shortcodes' ) ) :
|
|
489 |
return $this->wcj_price_shortcode( $refund_total, $atts );
|
490 |
}
|
491 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
492 |
/**
|
493 |
* Wcj_order_customer_meta.
|
494 |
*
|
@@ -1489,8 +1510,9 @@ if ( ! class_exists( 'WCJ_Orders_Shortcodes' ) ) :
|
|
1489 |
$the_subtotal += $this->the_order->get_line_subtotal( $item, false, true );
|
1490 |
}
|
1491 |
} else {
|
1492 |
-
$the_items
|
1493 |
-
$exclude_item_total
|
|
|
1494 |
|
1495 |
foreach ( $the_items as $item_id => $item ) {
|
1496 |
$the_product = $item->get_product( $item );
|
2 |
/**
|
3 |
* Booster for WooCommerce - Shortcodes - Orders
|
4 |
*
|
5 |
+
* @version 5.6.3
|
6 |
* @author Pluggabl LLC.
|
7 |
* @package Booster_For_WooCommerce/shortcodes
|
8 |
*/
|
20 |
/**
|
21 |
* Constructor.
|
22 |
*
|
23 |
+
* @version 5.6.3
|
24 |
*/
|
25 |
public function __construct() {
|
26 |
|
93 |
'wcj_order_total_length',
|
94 |
'wcj_order_total_shipping_refunded',
|
95 |
'wcj_order_total_refunded',
|
96 |
+
'wcj_order_item_total_refunded',
|
97 |
'wcj_order_total_tax',
|
98 |
'wcj_order_total_tax_after_refund',
|
99 |
'wcj_order_total_tax_without_html_custom',
|
481 |
/**
|
482 |
* Wcj_order_total_refunded.
|
483 |
*
|
484 |
+
* @version 5.6.3
|
485 |
* @since 2.5.3
|
486 |
* @param array $atts The user defined shortcode attributes.
|
487 |
*/
|
490 |
return $this->wcj_price_shortcode( $refund_total, $atts );
|
491 |
}
|
492 |
|
493 |
+
/**
|
494 |
+
* Wcj_order_item_total_refunded.
|
495 |
+
*
|
496 |
+
* @version 5.6.3
|
497 |
+
* @since 2.5.3
|
498 |
+
* @param array $atts The user defined shortcode attributes.
|
499 |
+
*/
|
500 |
+
public function wcj_order_item_total_refunded( $atts ) {
|
501 |
+
$refund_item = $this->the_order->get_refunds();
|
502 |
+
foreach ( $refund_item as $_refund ) {
|
503 |
+
|
504 |
+
foreach ( $_refund->get_items() as $_item ) {
|
505 |
+
$refund_total = $_item->get_total();
|
506 |
+
$refund_total_tax = $_item->get_total_tax();
|
507 |
+
}
|
508 |
+
}
|
509 |
+
$refund_result = ( $atts['excl_tax'] ) ? abs( $refund_total ) : abs( $refund_total ) + abs( $refund_total_tax );
|
510 |
+
return $this->wcj_price_shortcode( $refund_result, $atts );
|
511 |
+
}
|
512 |
+
|
513 |
/**
|
514 |
* Wcj_order_customer_meta.
|
515 |
*
|
1510 |
$the_subtotal += $this->the_order->get_line_subtotal( $item, false, true );
|
1511 |
}
|
1512 |
} else {
|
1513 |
+
$the_items = $this->the_order->get_items();
|
1514 |
+
$exclude_item_total = 0;
|
1515 |
+
$exclude_item_subtotal = 0;
|
1516 |
|
1517 |
foreach ( $the_items as $item_id => $item ) {
|
1518 |
$the_product = $item->get_product( $item );
|
langs/woocommerce-jetpack.pot
CHANGED
@@ -10,7 +10,7 @@ msgstr ""
|
|
10 |
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
"Content-Transfer-Encoding: 8bit\n"
|
12 |
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
13 |
-
"X-Generator: Poedit 2.
|
14 |
"X-Poedit-Basepath: ..\n"
|
15 |
"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;"
|
16 |
"_n_noop:1,2;_c;_nc:4c,1,2;_x:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;_ex:1,2c;"
|
@@ -36,14 +36,14 @@ msgstr ""
|
|
36 |
#: includes/admin/class-wc-settings-jetpack.php:33
|
37 |
#: includes/admin/class-wc-settings-jetpack.php:400
|
38 |
#: includes/class-wcj-admin-bar.php:299
|
39 |
-
#: includes/class-wcj-checkout-files-upload.php:
|
40 |
#: includes/class-wcj-eu-vat-number.php:179
|
41 |
#: includes/class-wcj-max-products-per-user.php:217
|
42 |
#: includes/class-wcj-orders.php:133 includes/class-wcj-orders.php:170
|
43 |
#: includes/class-wcj-payment-gateways.php:102
|
44 |
#: includes/class-wcj-track-users.php:174 includes/class-wcj-track-users.php:265
|
45 |
-
#: includes/classes/class-wcj-module.php:
|
46 |
-
#: includes/classes/class-wcj-module.php:
|
47 |
#: includes/settings/wcj-settings-price-by-country.php:259
|
48 |
msgid "Booster"
|
49 |
msgstr ""
|
@@ -206,7 +206,7 @@ msgstr ""
|
|
206 |
#: includes/admin/class-wc-settings-jetpack.php:631
|
207 |
#: includes/admin/class-wc-settings-jetpack.php:1084
|
208 |
#: includes/class-wcj-admin-bar.php:188
|
209 |
-
#: includes/classes/class-wcj-module.php:
|
210 |
msgid "Documentation"
|
211 |
msgstr ""
|
212 |
|
@@ -993,7 +993,7 @@ msgstr ""
|
|
993 |
|
994 |
#: includes/class-wcj-admin-bar.php:267 includes/class-wcj-admin-bar.php:311
|
995 |
#: includes/class-wcj-admin-bar.php:659
|
996 |
-
#: includes/classes/class-wcj-module.php:
|
997 |
#: includes/settings/wcj-settings-wpml.php:97
|
998 |
msgid "Tools"
|
999 |
msgstr ""
|
@@ -1574,87 +1574,88 @@ msgstr ""
|
|
1574 |
msgid "Let customers upload files on (or after) the checkout."
|
1575 |
msgstr ""
|
1576 |
|
1577 |
-
#: includes/class-wcj-checkout-files-upload.php:
|
1578 |
-
#: includes/class-wcj-checkout-files-upload.php:
|
1579 |
#: includes/settings/wcj-settings-checkout-files-upload.php:397
|
1580 |
#: includes/settings/wcj-settings-checkout-files-upload.php:446
|
1581 |
#, php-format
|
1582 |
msgid "File: %s"
|
1583 |
msgstr ""
|
1584 |
|
1585 |
-
#: includes/class-wcj-checkout-files-upload.php:
|
1586 |
#: includes/settings/wcj-settings-checkout-files-upload.php:126
|
1587 |
msgid "File is required!"
|
1588 |
msgstr ""
|
1589 |
|
1590 |
-
#: includes/class-wcj-checkout-files-upload.php:
|
1591 |
-
#: includes/class-wcj-checkout-files-upload.php:
|
1592 |
-
#: includes/class-wcj-checkout-files-upload.php:
|
1593 |
-
#: includes/class-wcj-checkout-files-upload.php:
|
1594 |
#: includes/settings/wcj-settings-checkout-files-upload.php:120
|
1595 |
#, php-format
|
1596 |
msgid "Wrong file type: \"%s\"!"
|
1597 |
msgstr ""
|
1598 |
|
1599 |
-
#: includes/class-wcj-checkout-files-upload.php:
|
1600 |
msgid "Uploaded Files"
|
1601 |
msgstr ""
|
1602 |
|
1603 |
-
#: includes/class-wcj-checkout-files-upload.php:
|
1604 |
msgid "No files uploaded."
|
1605 |
msgstr ""
|
1606 |
|
1607 |
-
#: includes/class-wcj-checkout-files-upload.php:
|
1608 |
msgid "Delete all files"
|
1609 |
msgstr ""
|
1610 |
|
1611 |
-
#: includes/class-wcj-checkout-files-upload.php:
|
1612 |
#: includes/settings/wcj-settings-checkout-files-upload.php:260
|
1613 |
msgid "Files were successfully removed."
|
1614 |
msgstr ""
|
1615 |
|
1616 |
-
#: includes/class-wcj-checkout-files-upload.php:
|
1617 |
msgid "Booster for WooCommerce: Checkout Files Upload: %action%"
|
1618 |
msgstr ""
|
1619 |
|
1620 |
-
#: includes/class-wcj-checkout-files-upload.php:
|
1621 |
-
|
|
|
1622 |
msgstr ""
|
1623 |
|
1624 |
-
#: includes/class-wcj-checkout-files-upload.php:
|
1625 |
-
#: includes/class-wcj-checkout-files-upload.php:
|
1626 |
#: includes/settings/wcj-settings-checkout-files-upload.php:150
|
1627 |
#, php-format
|
1628 |
msgid "File \"%s\" was successfully removed."
|
1629 |
msgstr ""
|
1630 |
|
1631 |
-
#: includes/class-wcj-checkout-files-upload.php:
|
1632 |
msgid "File Removed"
|
1633 |
msgstr ""
|
1634 |
|
1635 |
-
#: includes/class-wcj-checkout-files-upload.php:
|
1636 |
#: includes/settings/wcj-settings-checkout-files-upload.php:135
|
1637 |
#, php-format
|
1638 |
msgid "File \"%s\" was successfully uploaded."
|
1639 |
msgstr ""
|
1640 |
|
1641 |
-
#: includes/class-wcj-checkout-files-upload.php:
|
1642 |
msgid "File Uploaded"
|
1643 |
msgstr ""
|
1644 |
|
1645 |
-
#: includes/class-wcj-checkout-files-upload.php:
|
1646 |
#: includes/settings/wcj-settings-checkout-files-upload.php:141
|
1647 |
msgid "Please select file to upload!"
|
1648 |
msgstr ""
|
1649 |
|
1650 |
-
#: includes/class-wcj-checkout-files-upload.php:
|
1651 |
-
#: includes/class-wcj-checkout-files-upload.php:
|
1652 |
#: includes/settings/wcj-settings-checkout-files-upload.php:105
|
1653 |
msgid "Upload"
|
1654 |
msgstr ""
|
1655 |
|
1656 |
-
#: includes/class-wcj-checkout-files-upload.php:
|
1657 |
-
#: includes/class-wcj-checkout-files-upload.php:
|
1658 |
#: includes/settings/wcj-settings-checkout-files-upload.php:111
|
1659 |
#: includes/settings/wcj-settings-price-by-user-role.php:81
|
1660 |
#: includes/settings/wcj-settings-price-by-user-role.php:89
|
@@ -3982,7 +3983,7 @@ msgstr ""
|
|
3982 |
#: includes/class-wcj-product-bulk-meta-editor.php:315
|
3983 |
#: includes/class-wcj-product-by-user.php:287
|
3984 |
#: includes/class-wcj-purchase-data.php:125
|
3985 |
-
#: includes/classes/class-wcj-module.php:
|
3986 |
#: includes/functions/wcj-functions-general.php:208
|
3987 |
#: includes/functions/wcj-functions-html.php:131
|
3988 |
#: includes/reports/class-wcj-reports-monthly-sales.php:393
|
@@ -5011,7 +5012,7 @@ msgstr ""
|
|
5011 |
|
5012 |
#: includes/class-wcj-purchase-data.php:158
|
5013 |
#: includes/class-wcj-purchase-data.php:223
|
5014 |
-
#: includes/class-wcj-purchase-data.php:
|
5015 |
#: includes/functions/wcj-functions-reports.php:31
|
5016 |
#: includes/settings/wcj-settings-purchase-data.php:152
|
5017 |
#: includes/settings/wcj-settings-purchase-data.php:180
|
@@ -5024,15 +5025,15 @@ msgstr ""
|
|
5024 |
msgid "Purchase Cost"
|
5025 |
msgstr ""
|
5026 |
|
5027 |
-
#: includes/class-wcj-purchase-data.php:
|
5028 |
msgid "Selling"
|
5029 |
msgstr ""
|
5030 |
|
5031 |
-
#: includes/class-wcj-purchase-data.php:
|
5032 |
msgid "Buying"
|
5033 |
msgstr ""
|
5034 |
|
5035 |
-
#: includes/class-wcj-purchase-data.php:
|
5036 |
msgid "Report"
|
5037 |
msgstr ""
|
5038 |
|
@@ -5832,30 +5833,30 @@ msgid ""
|
|
5832 |
"\" products."
|
5833 |
msgstr ""
|
5834 |
|
5835 |
-
#: includes/classes/class-wcj-module.php:
|
5836 |
#, php-format
|
5837 |
msgid "Selected: %s."
|
5838 |
msgstr ""
|
5839 |
|
5840 |
-
#: includes/classes/class-wcj-module.php:
|
5841 |
msgid "Back to Module Settings"
|
5842 |
msgstr ""
|
5843 |
|
5844 |
-
#: includes/classes/class-wcj-module.php:
|
5845 |
#: includes/settings/wcj-settings-wpml.php:102
|
5846 |
msgid "Module Tools"
|
5847 |
msgstr ""
|
5848 |
|
5849 |
-
#: includes/classes/class-wcj-module.php:
|
5850 |
#: includes/settings/wcj-settings-checkout-core-fields.php:82
|
5851 |
msgid "enabled"
|
5852 |
msgstr ""
|
5853 |
|
5854 |
-
#: includes/classes/class-wcj-module.php:
|
5855 |
msgid "disabled"
|
5856 |
msgstr ""
|
5857 |
|
5858 |
-
#: includes/classes/class-wcj-module.php:
|
5859 |
#: includes/settings/wcj-settings-product-tabs.php:181
|
5860 |
#: includes/settings/wcj-settings-product-tabs.php:196
|
5861 |
#: includes/settings/wcj-settings-product-tabs.php:211
|
@@ -5863,27 +5864,27 @@ msgstr ""
|
|
5863 |
msgid "Deprecated"
|
5864 |
msgstr ""
|
5865 |
|
5866 |
-
#: includes/classes/class-wcj-module.php:
|
5867 |
msgid "Reset Settings"
|
5868 |
msgstr ""
|
5869 |
|
5870 |
-
#: includes/classes/class-wcj-module.php:
|
5871 |
msgid "Reset Module to Default Settings"
|
5872 |
msgstr ""
|
5873 |
|
5874 |
-
#: includes/classes/class-wcj-module.php:
|
5875 |
msgid "Reset Submodule to Default Settings"
|
5876 |
msgstr ""
|
5877 |
|
5878 |
-
#: includes/classes/class-wcj-module.php:
|
5879 |
msgid "Reset settings"
|
5880 |
msgstr ""
|
5881 |
|
5882 |
-
#: includes/classes/class-wcj-module.php:
|
5883 |
msgid "Module Options"
|
5884 |
msgstr ""
|
5885 |
|
5886 |
-
#: includes/classes/class-wcj-module.php:
|
5887 |
msgid "Enable Module"
|
5888 |
msgstr ""
|
5889 |
|
@@ -20604,7 +20605,7 @@ msgstr ""
|
|
20604 |
msgid "Attribute \"name\" is required!"
|
20605 |
msgstr ""
|
20606 |
|
20607 |
-
#: includes/shortcodes/class-wcj-orders-shortcodes.php:
|
20608 |
#, php-format
|
20609 |
msgid "Refund #%1$s - %2$s"
|
20610 |
msgstr ""
|
10 |
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
"Content-Transfer-Encoding: 8bit\n"
|
12 |
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
13 |
+
"X-Generator: Poedit 2.0.6\n"
|
14 |
"X-Poedit-Basepath: ..\n"
|
15 |
"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;"
|
16 |
"_n_noop:1,2;_c;_nc:4c,1,2;_x:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;_ex:1,2c;"
|
36 |
#: includes/admin/class-wc-settings-jetpack.php:33
|
37 |
#: includes/admin/class-wc-settings-jetpack.php:400
|
38 |
#: includes/class-wcj-admin-bar.php:299
|
39 |
+
#: includes/class-wcj-checkout-files-upload.php:273
|
40 |
#: includes/class-wcj-eu-vat-number.php:179
|
41 |
#: includes/class-wcj-max-products-per-user.php:217
|
42 |
#: includes/class-wcj-orders.php:133 includes/class-wcj-orders.php:170
|
43 |
#: includes/class-wcj-payment-gateways.php:102
|
44 |
#: includes/class-wcj-track-users.php:174 includes/class-wcj-track-users.php:265
|
45 |
+
#: includes/classes/class-wcj-module.php:678
|
46 |
+
#: includes/classes/class-wcj-module.php:887
|
47 |
#: includes/settings/wcj-settings-price-by-country.php:259
|
48 |
msgid "Booster"
|
49 |
msgstr ""
|
206 |
#: includes/admin/class-wc-settings-jetpack.php:631
|
207 |
#: includes/admin/class-wc-settings-jetpack.php:1084
|
208 |
#: includes/class-wcj-admin-bar.php:188
|
209 |
+
#: includes/classes/class-wcj-module.php:1035
|
210 |
msgid "Documentation"
|
211 |
msgstr ""
|
212 |
|
993 |
|
994 |
#: includes/class-wcj-admin-bar.php:267 includes/class-wcj-admin-bar.php:311
|
995 |
#: includes/class-wcj-admin-bar.php:659
|
996 |
+
#: includes/classes/class-wcj-module.php:858
|
997 |
#: includes/settings/wcj-settings-wpml.php:97
|
998 |
msgid "Tools"
|
999 |
msgstr ""
|
1574 |
msgid "Let customers upload files on (or after) the checkout."
|
1575 |
msgstr ""
|
1576 |
|
1577 |
+
#: includes/class-wcj-checkout-files-upload.php:84
|
1578 |
+
#: includes/class-wcj-checkout-files-upload.php:89
|
1579 |
#: includes/settings/wcj-settings-checkout-files-upload.php:397
|
1580 |
#: includes/settings/wcj-settings-checkout-files-upload.php:446
|
1581 |
#, php-format
|
1582 |
msgid "File: %s"
|
1583 |
msgstr ""
|
1584 |
|
1585 |
+
#: includes/class-wcj-checkout-files-upload.php:216
|
1586 |
#: includes/settings/wcj-settings-checkout-files-upload.php:126
|
1587 |
msgid "File is required!"
|
1588 |
msgstr ""
|
1589 |
|
1590 |
+
#: includes/class-wcj-checkout-files-upload.php:235
|
1591 |
+
#: includes/class-wcj-checkout-files-upload.php:250
|
1592 |
+
#: includes/class-wcj-checkout-files-upload.php:519
|
1593 |
+
#: includes/class-wcj-checkout-files-upload.php:535
|
1594 |
#: includes/settings/wcj-settings-checkout-files-upload.php:120
|
1595 |
#, php-format
|
1596 |
msgid "Wrong file type: \"%s\"!"
|
1597 |
msgstr ""
|
1598 |
|
1599 |
+
#: includes/class-wcj-checkout-files-upload.php:273
|
1600 |
msgid "Uploaded Files"
|
1601 |
msgstr ""
|
1602 |
|
1603 |
+
#: includes/class-wcj-checkout-files-upload.php:306
|
1604 |
msgid "No files uploaded."
|
1605 |
msgstr ""
|
1606 |
|
1607 |
+
#: includes/class-wcj-checkout-files-upload.php:309
|
1608 |
msgid "Delete all files"
|
1609 |
msgstr ""
|
1610 |
|
1611 |
+
#: includes/class-wcj-checkout-files-upload.php:400
|
1612 |
#: includes/settings/wcj-settings-checkout-files-upload.php:260
|
1613 |
msgid "Files were successfully removed."
|
1614 |
msgstr ""
|
1615 |
|
1616 |
+
#: includes/class-wcj-checkout-files-upload.php:429
|
1617 |
msgid "Booster for WooCommerce: Checkout Files Upload: %action%"
|
1618 |
msgstr ""
|
1619 |
|
1620 |
+
#: includes/class-wcj-checkout-files-upload.php:432
|
1621 |
+
#, php-format
|
1622 |
+
msgid "Order ID: %1$s; File name: %2$s"
|
1623 |
msgstr ""
|
1624 |
|
1625 |
+
#: includes/class-wcj-checkout-files-upload.php:452
|
1626 |
+
#: includes/class-wcj-checkout-files-upload.php:489
|
1627 |
#: includes/settings/wcj-settings-checkout-files-upload.php:150
|
1628 |
#, php-format
|
1629 |
msgid "File \"%s\" was successfully removed."
|
1630 |
msgstr ""
|
1631 |
|
1632 |
+
#: includes/class-wcj-checkout-files-upload.php:464
|
1633 |
msgid "File Removed"
|
1634 |
msgstr ""
|
1635 |
|
1636 |
+
#: includes/class-wcj-checkout-files-upload.php:555
|
1637 |
#: includes/settings/wcj-settings-checkout-files-upload.php:135
|
1638 |
#, php-format
|
1639 |
msgid "File \"%s\" was successfully uploaded."
|
1640 |
msgstr ""
|
1641 |
|
1642 |
+
#: includes/class-wcj-checkout-files-upload.php:570
|
1643 |
msgid "File Uploaded"
|
1644 |
msgstr ""
|
1645 |
|
1646 |
+
#: includes/class-wcj-checkout-files-upload.php:598
|
1647 |
#: includes/settings/wcj-settings-checkout-files-upload.php:141
|
1648 |
msgid "Please select file to upload!"
|
1649 |
msgstr ""
|
1650 |
|
1651 |
+
#: includes/class-wcj-checkout-files-upload.php:896
|
1652 |
+
#: includes/class-wcj-checkout-files-upload.php:897
|
1653 |
#: includes/settings/wcj-settings-checkout-files-upload.php:105
|
1654 |
msgid "Upload"
|
1655 |
msgstr ""
|
1656 |
|
1657 |
+
#: includes/class-wcj-checkout-files-upload.php:912
|
1658 |
+
#: includes/class-wcj-checkout-files-upload.php:913
|
1659 |
#: includes/settings/wcj-settings-checkout-files-upload.php:111
|
1660 |
#: includes/settings/wcj-settings-price-by-user-role.php:81
|
1661 |
#: includes/settings/wcj-settings-price-by-user-role.php:89
|
3983 |
#: includes/class-wcj-product-bulk-meta-editor.php:315
|
3984 |
#: includes/class-wcj-product-by-user.php:287
|
3985 |
#: includes/class-wcj-purchase-data.php:125
|
3986 |
+
#: includes/classes/class-wcj-module.php:1000
|
3987 |
#: includes/functions/wcj-functions-general.php:208
|
3988 |
#: includes/functions/wcj-functions-html.php:131
|
3989 |
#: includes/reports/class-wcj-reports-monthly-sales.php:393
|
5012 |
|
5013 |
#: includes/class-wcj-purchase-data.php:158
|
5014 |
#: includes/class-wcj-purchase-data.php:223
|
5015 |
+
#: includes/class-wcj-purchase-data.php:315
|
5016 |
#: includes/functions/wcj-functions-reports.php:31
|
5017 |
#: includes/settings/wcj-settings-purchase-data.php:152
|
5018 |
#: includes/settings/wcj-settings-purchase-data.php:180
|
5025 |
msgid "Purchase Cost"
|
5026 |
msgstr ""
|
5027 |
|
5028 |
+
#: includes/class-wcj-purchase-data.php:312
|
5029 |
msgid "Selling"
|
5030 |
msgstr ""
|
5031 |
|
5032 |
+
#: includes/class-wcj-purchase-data.php:313
|
5033 |
msgid "Buying"
|
5034 |
msgstr ""
|
5035 |
|
5036 |
+
#: includes/class-wcj-purchase-data.php:329
|
5037 |
msgid "Report"
|
5038 |
msgstr ""
|
5039 |
|
5833 |
"\" products."
|
5834 |
msgstr ""
|
5835 |
|
5836 |
+
#: includes/classes/class-wcj-module.php:772
|
5837 |
#, php-format
|
5838 |
msgid "Selected: %s."
|
5839 |
msgstr ""
|
5840 |
|
5841 |
+
#: includes/classes/class-wcj-module.php:843
|
5842 |
msgid "Back to Module Settings"
|
5843 |
msgstr ""
|
5844 |
|
5845 |
+
#: includes/classes/class-wcj-module.php:864
|
5846 |
#: includes/settings/wcj-settings-wpml.php:102
|
5847 |
msgid "Module Tools"
|
5848 |
msgstr ""
|
5849 |
|
5850 |
+
#: includes/classes/class-wcj-module.php:942
|
5851 |
#: includes/settings/wcj-settings-checkout-core-fields.php:82
|
5852 |
msgid "enabled"
|
5853 |
msgstr ""
|
5854 |
|
5855 |
+
#: includes/classes/class-wcj-module.php:943
|
5856 |
msgid "disabled"
|
5857 |
msgstr ""
|
5858 |
|
5859 |
+
#: includes/classes/class-wcj-module.php:951
|
5860 |
#: includes/settings/wcj-settings-product-tabs.php:181
|
5861 |
#: includes/settings/wcj-settings-product-tabs.php:196
|
5862 |
#: includes/settings/wcj-settings-product-tabs.php:211
|
5864 |
msgid "Deprecated"
|
5865 |
msgstr ""
|
5866 |
|
5867 |
+
#: includes/classes/class-wcj-module.php:990
|
5868 |
msgid "Reset Settings"
|
5869 |
msgstr ""
|
5870 |
|
5871 |
+
#: includes/classes/class-wcj-module.php:996
|
5872 |
msgid "Reset Module to Default Settings"
|
5873 |
msgstr ""
|
5874 |
|
5875 |
+
#: includes/classes/class-wcj-module.php:997
|
5876 |
msgid "Reset Submodule to Default Settings"
|
5877 |
msgstr ""
|
5878 |
|
5879 |
+
#: includes/classes/class-wcj-module.php:1001
|
5880 |
msgid "Reset settings"
|
5881 |
msgstr ""
|
5882 |
|
5883 |
+
#: includes/classes/class-wcj-module.php:1039
|
5884 |
msgid "Module Options"
|
5885 |
msgstr ""
|
5886 |
|
5887 |
+
#: includes/classes/class-wcj-module.php:1046
|
5888 |
msgid "Enable Module"
|
5889 |
msgstr ""
|
5890 |
|
20605 |
msgid "Attribute \"name\" is required!"
|
20606 |
msgstr ""
|
20607 |
|
20608 |
+
#: includes/shortcodes/class-wcj-orders-shortcodes.php:395
|
20609 |
#, php-format
|
20610 |
msgid "Refund #%1$s - %2$s"
|
20611 |
msgstr ""
|
readme.txt
CHANGED
@@ -4,7 +4,7 @@ Tags: woocommerce customization, woocommerce bundle, woocommerce product addon,
|
|
4 |
Requires at least: 4.4
|
5 |
Tested up to: 6.0.1
|
6 |
Requires PHP: 5.6
|
7 |
-
Stable tag: 5.6.
|
8 |
License: GNU General Public License v3.0
|
9 |
License URI: http://www.gnu.org/licenses/gpl-3.0.html
|
10 |
|
@@ -275,6 +275,27 @@ To unlock all Booster for WooCommerce features, please install additional paid B
|
|
275 |
|
276 |
== Changelog ==
|
277 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
278 |
= 5.6.2 27/07/2022 =
|
279 |
|
280 |
* NEW FEATURE - PDF INVOICING & PACKING SLIPS - PDF Invoicing - Added a new shortcode Attribute to exclude tax in order to refund the Total. [wcj_order_shipping_price excl_tax="yes" ]
|
4 |
Requires at least: 4.4
|
5 |
Tested up to: 6.0.1
|
6 |
Requires PHP: 5.6
|
7 |
+
Stable tag: 5.6.3
|
8 |
License: GNU General Public License v3.0
|
9 |
License URI: http://www.gnu.org/licenses/gpl-3.0.html
|
10 |
|
275 |
|
276 |
== Changelog ==
|
277 |
|
278 |
+
= 5.6.3 31/08/2022 =
|
279 |
+
|
280 |
+
* NEW FEATURE - PDF INVOICING & PACKING SLIPS - PDF Invoicing - Added a new shortcode for refund total with inc./ex. tax. [wcj_order_item_total_refunded excl_tax="yes" ]
|
281 |
+
* FIXED - SHIPPING & ORDERS - Order Custom Statuses - Fixed custom status not displaying in order bulk action selection.
|
282 |
+
* FIXED - PRODUCTS - Product Tabs - Fixed issue with HTML tags.
|
283 |
+
* FIXED - PRODUCTS - Product Tabs - Fixed issue in some cases Jquery syntax was being shown.
|
284 |
+
* FIXED - PRODUCTS - Product Visibility by User Role - Fixed allowed user role selection on the single product edit page.
|
285 |
+
* FIXED - PRODUCTS - Product Visibility by Country - Fixed allowed country selection on the single product edit page.
|
286 |
+
* FIXED - PRODUCTS - Cost of Goods - Fixed bugs related to reporting, profit, and other bugs.
|
287 |
+
* FIXED - CART & CHECKOUT - Mini Cart Custom Info - Fixed Custom Info is not shown on the Wocommarce mini cart.
|
288 |
+
* FIXED - BUTTON & PRICE LABELS - Free Price Labels - Fixed free price Label does not show when the product price is '0'.
|
289 |
+
* FIXED - CART & CHECKOUT - Checkout Files Upload - Escaped the html content from the "File Upload Fields" value.
|
290 |
+
* FIXED - EMAILS & MISC. - Modules By User Roles - Fixed Enable/disable modules by user roles.
|
291 |
+
* FIXED - PRODUCTS - Product Addons - Fixed add-ons were not being saved with per product add-on.
|
292 |
+
* FIXED - PRODUCTS - Product Input Fields - Fixed issue with input type radio for per product input field.
|
293 |
+
* FIXED - PDF INVOICING & PACKING SLIPS - PDF Invoicing - Fixed Invoice report tool was showing an error while choosing the CSV option.
|
294 |
+
* FIXED - EMAILS & MISC. - My Account - Added restriction for Cross browser scripting.
|
295 |
+
* FIXED - PHP Warning: Undefined Variable "$exclude_item_subtotal" in /includes/shortcodes/class-wcj-shortcodes-orders.php ...
|
296 |
+
* WooCommerce 6.8.2 tested
|
297 |
+
* WordPress 6.0.1 Tested
|
298 |
+
|
299 |
= 5.6.2 27/07/2022 =
|
300 |
|
301 |
* NEW FEATURE - PDF INVOICING & PACKING SLIPS - PDF Invoicing - Added a new shortcode Attribute to exclude tax in order to refund the Total. [wcj_order_shipping_price excl_tax="yes" ]
|
version-details.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
{
|
2 |
-
"0" : "= 5.6.
|
3 |
-
"1" : "* NEW FEATURE - PDF INVOICING & PACKING SLIPS - PDF Invoicing - Added a new shortcode
|
4 |
-
"2" : "* FIXED - SHIPPING & ORDERS -
|
5 |
-
"3" : "* FIXED -
|
6 |
}
|
1 |
{
|
2 |
+
"0" : "= 5.6.3 31/08/2022 =",
|
3 |
+
"1" : "* NEW FEATURE - PDF INVOICING & PACKING SLIPS - PDF Invoicing - Added a new shortcode for refund total with inc./ex. tax. [wcj_order_item_total_refunded excl_tax=\"yes\" ]",
|
4 |
+
"2" : "* FIXED - SHIPPING & ORDERS - Order Custom Statuses - Fixed custom status not displaying in order bulk action selection.",
|
5 |
+
"3" : "* FIXED - PRODUCTS - Product Tabs - Fixed issue with HTML tags."
|
6 |
}
|
woocommerce-jetpack.php
CHANGED
@@ -3,13 +3,13 @@
|
|
3 |
* Plugin Name: Booster for WooCommerce
|
4 |
* Plugin URI: https://booster.io
|
5 |
* Description: Supercharge your WooCommerce site with these awesome powerful features. More than 100 modules.All in one WooCommerce plugin.
|
6 |
-
* Version: 5.6.
|
7 |
* Author: Pluggabl LLC
|
8 |
* Author URI: https://booster.io
|
9 |
* Text Domain: woocommerce-jetpack
|
10 |
* Domain Path: /langs
|
11 |
* Copyright: © 2020 Pluggabl LLC.
|
12 |
-
* WC tested up to: 6.
|
13 |
* License: GNU General Public License v3.0
|
14 |
* php version 5.6
|
15 |
* License URI: http://www.gnu.org/licenses/gpl-3.0.html
|
@@ -65,7 +65,7 @@ if ( ! class_exists( 'WC_Jetpack' ) ) :
|
|
65 |
* @var string
|
66 |
* @since 2.4.7
|
67 |
*/
|
68 |
-
public $version = '5.6.
|
69 |
|
70 |
/**
|
71 |
* The single instance of the class
|
3 |
* Plugin Name: Booster for WooCommerce
|
4 |
* Plugin URI: https://booster.io
|
5 |
* Description: Supercharge your WooCommerce site with these awesome powerful features. More than 100 modules.All in one WooCommerce plugin.
|
6 |
+
* Version: 5.6.3
|
7 |
* Author: Pluggabl LLC
|
8 |
* Author URI: https://booster.io
|
9 |
* Text Domain: woocommerce-jetpack
|
10 |
* Domain Path: /langs
|
11 |
* Copyright: © 2020 Pluggabl LLC.
|
12 |
+
* WC tested up to: 6.8.2
|
13 |
* License: GNU General Public License v3.0
|
14 |
* php version 5.6
|
15 |
* License URI: http://www.gnu.org/licenses/gpl-3.0.html
|
65 |
* @var string
|
66 |
* @since 2.4.7
|
67 |
*/
|
68 |
+
public $version = '5.6.3';
|
69 |
|
70 |
/**
|
71 |
* The single instance of the class
|