Booster for WooCommerce - Version 1.8.0

Version Description

  • 17/10/2014 =
  • New Feature - Product Tabs - Custom product tabs - global or per product. Related product tabs options were also moved to this feature from Product Info.
  • Dev - date function changed to date_i18n. Suggested in https://wordpress.org/support/topic/pdf-invoices-date-bug. Changes affected the Orders and PDF Invoices features (this covers request from Jean-Marc for international date formats in PDF Invoices).
Download this release

Release Info

Developer algoritmika
Plugin Icon 128x128 Booster for WooCommerce
Version 1.8.0
Comparing to
See all releases

Code changes from version 1.7.9 to 1.8.0

includes/class-wcj-orders.php CHANGED
@@ -5,7 +5,7 @@
5
  * The WooCommerce Jetpack Orders class.
6
  *
7
  * @class WCJ_Orders
8
- * @version 1.5.0
9
  * @category Class
10
  * @author Algoritmika Ltd.
11
  */
@@ -244,7 +244,7 @@ class WCJ_Orders {
244
  '#' . $order_number_meta,
245
  sprintf( '%s%s%0' . get_option( 'wcj_order_number_min_width', 0 ) . 'd',
246
  get_option( 'wcj_order_number_prefix', '' ),
247
- date( get_option( 'wcj_order_number_date_prefix', '' ), $order_timestamp ),
248
  $order_number_meta ) );
249
  }
250
  return $order_number;
5
  * The WooCommerce Jetpack Orders class.
6
  *
7
  * @class WCJ_Orders
8
+ * @version 1.5.1
9
  * @category Class
10
  * @author Algoritmika Ltd.
11
  */
244
  '#' . $order_number_meta,
245
  sprintf( '%s%s%0' . get_option( 'wcj_order_number_min_width', 0 ) . 'd',
246
  get_option( 'wcj_order_number_prefix', '' ),
247
+ date_i18n( get_option( 'wcj_order_number_date_prefix', '' ), $order_timestamp ),
248
  $order_number_meta ) );
249
  }
250
  return $order_number;
includes/class-wcj-pdf-invoices.php CHANGED
@@ -5,7 +5,7 @@
5
  * The WooCommerce Jetpack PDF Invoices class.
6
  *
7
  * @class WCJ_PDF_Invoices
8
- * @version 1.5.1
9
  * @category Class
10
  * @author Algoritmika Ltd.
11
  */
@@ -330,11 +330,11 @@ class WCJ_PDF_Invoices {
330
  // NUMBER AND DATE //
331
  $html .= '<table class="pdf_invoice_number_and_date_table_wcj"><tbody>';
332
  $html .= '<tr><td>' . get_option( 'wcj_pdf_invoices_invoice_number_text' ) . '</td><td>' . $order_number . '</td></tr>';
333
- $html .= '<tr><td>' . get_option( 'wcj_pdf_invoices_invoice_date_text' ) . '</td><td>' . date( get_option('date_format') , strtotime( $the_order->order_date ) ) . '</td></tr>';
334
  if ( '' != get_option( 'wcj_pdf_invoices_invoice_due_date_text' ) )
335
- $html .= '<tr><td>' . get_option( 'wcj_pdf_invoices_invoice_due_date_text' ) . '</td><td>' . date( get_option('date_format') , ( strtotime( $the_order->order_date ) + get_option( 'wcj_pdf_invoices_invoice_due_date_days' ) * 24 * 60 *60 ) ) . '</td></tr>';
336
  if ( '' != get_option( 'wcj_pdf_invoices_invoice_fulfillment_date_text' ) )
337
- $html .= '<tr><td>' . get_option( 'wcj_pdf_invoices_invoice_fulfillment_date_text' ) . '</td><td>' . date( get_option('date_format') , ( strtotime( $the_order->order_date ) + get_option( 'wcj_pdf_invoices_invoice_fulfillment_date_days' ) * 24 * 60 *60 ) ) . '</td></tr>';
338
  $html .= '</tbody></table>';
339
  $html .= '</p>';
340
 
5
  * The WooCommerce Jetpack PDF Invoices class.
6
  *
7
  * @class WCJ_PDF_Invoices
8
+ * @version 1.5.2
9
  * @category Class
10
  * @author Algoritmika Ltd.
11
  */
330
  // NUMBER AND DATE //
331
  $html .= '<table class="pdf_invoice_number_and_date_table_wcj"><tbody>';
332
  $html .= '<tr><td>' . get_option( 'wcj_pdf_invoices_invoice_number_text' ) . '</td><td>' . $order_number . '</td></tr>';
333
+ $html .= '<tr><td>' . get_option( 'wcj_pdf_invoices_invoice_date_text' ) . '</td><td>' . date_i18n( get_option('date_format'), strtotime( $the_order->order_date ) ) . '</td></tr>';
334
  if ( '' != get_option( 'wcj_pdf_invoices_invoice_due_date_text' ) )
335
+ $html .= '<tr><td>' . get_option( 'wcj_pdf_invoices_invoice_due_date_text' ) . '</td><td>' . date_i18n( get_option('date_format'), ( strtotime( $the_order->order_date ) + get_option( 'wcj_pdf_invoices_invoice_due_date_days' ) * 24 * 60 *60 ) ) . '</td></tr>';
336
  if ( '' != get_option( 'wcj_pdf_invoices_invoice_fulfillment_date_text' ) )
337
+ $html .= '<tr><td>' . get_option( 'wcj_pdf_invoices_invoice_fulfillment_date_text' ) . '</td><td>' . date_i18n( get_option('date_format'), ( strtotime( $the_order->order_date ) + get_option( 'wcj_pdf_invoices_invoice_fulfillment_date_days' ) * 24 * 60 *60 ) ) . '</td></tr>';
338
  $html .= '</tbody></table>';
339
  $html .= '</p>';
340
 
includes/class-wcj-product-info.php CHANGED
@@ -38,8 +38,6 @@ class WCJ_Product_Info {
38
 
39
  // Main hooks
40
  if ( 'yes' === get_option( 'wcj_product_info_enabled' ) ) {
41
-
42
- add_filter( 'woocommerce_product_tabs', array( $this, 'customize_product_tabs' ), 98 );
43
 
44
  if ( get_option( 'wcj_product_info_related_products_enable' ) === 'yes' ) {
45
  add_filter( 'woocommerce_related_products_args', array( $this, 'related_products_limit' ), 100 );
@@ -65,8 +63,8 @@ class WCJ_Product_Info {
65
  add_filter( 'wcj_settings_sections', array( $this, 'settings_section' ) );
66
  add_filter( 'wcj_settings_product_info', array( $this, 'get_settings' ), 100 );
67
  add_filter( 'wcj_features_status', array( $this, 'add_enabled_option' ), 100 );
68
- }
69
-
70
  /**
71
  * Return feature's enable/disable option.
72
  */
@@ -123,39 +121,6 @@ class WCJ_Product_Info {
123
 
124
  return $args;
125
  }
126
-
127
- /**
128
- * Customize the product tabs.
129
- */
130
- function customize_product_tabs( $tabs ) {
131
-
132
- // Unset
133
- if ( get_option( 'wcj_product_info_product_tabs_description_disable' ) === 'yes' )
134
- unset( $tabs['description'] );
135
- if ( get_option( 'wcj_product_info_product_tabs_reviews_disable' ) === 'yes' )
136
- unset( $tabs['reviews'] );
137
- if ( get_option( 'wcj_product_info_product_tabs_additional_information_disable' ) === 'yes' )
138
- unset( $tabs['additional_information'] );
139
-
140
- // Priority and Title
141
- if ( isset( $tabs['description'] ) ) {
142
- $tabs['description']['priority'] = apply_filters( 'wcj_get_option_filter', 10, get_option( 'wcj_product_info_product_tabs_description_priority' ) );
143
- if ( get_option( 'wcj_product_info_product_tabs_description_title' ) !== '' )
144
- $tabs['description']['title'] = get_option( 'wcj_product_info_product_tabs_description_title' );
145
- }
146
- if ( isset( $tabs['reviews'] ) ) {
147
- $tabs['reviews']['priority'] = apply_filters( 'wcj_get_option_filter', 20, get_option( 'wcj_product_info_product_tabs_reviews_priority' ) );
148
- if ( get_option( 'wcj_product_info_product_tabs_reviews_title' ) !== '' )
149
- $tabs['reviews']['title'] = get_option( 'wcj_product_info_product_tabs_reviews_title' );
150
- }
151
- if ( isset( $tabs['additional_information'] ) ) {
152
- $tabs['additional_information']['priority'] = apply_filters( 'wcj_get_option_filter', 30, get_option( 'wcj_product_info_product_tabs_additional_information_priority' ) );
153
- if ( get_option( 'wcj_product_info_product_tabs_additional_information_title' ) !== '' )
154
- $tabs['additional_information']['title'] = get_option( 'wcj_product_info_product_tabs_additional_information_title' );
155
- }
156
-
157
- return $tabs;
158
- }
159
 
160
  /**
161
  * Get settings.
@@ -260,89 +225,6 @@ class WCJ_Product_Info {
260
 
261
  array( 'type' => 'sectionend', 'id' => 'wcj_product_info_additional_options' ),
262
 
263
- // Product Tabs Options
264
- array( 'title' => __( 'Product Tabs Options', 'woocommerce-jetpack' ), 'type' => 'title', 'desc' => 'This section lets you customize single product tabs.', 'id' => 'wcj_product_info_product_tabs_options' ),
265
-
266
- array(
267
- 'title' => __( 'Description Tab', 'woocommerce-jetpack' ),
268
- 'desc' => __( 'Remove tab from product page', 'woocommerce-jetpack' ),
269
- 'id' => 'wcj_product_info_product_tabs_description_disable',
270
- 'default' => 'no',
271
- 'type' => 'checkbox',
272
- ),
273
-
274
- array(
275
- 'title' => __( 'Priority (i.e. Order)', 'woocommerce-jetpack' ),
276
- 'id' => 'wcj_product_info_product_tabs_description_priority',
277
- 'default' => 10,
278
- 'type' => 'number',
279
- 'desc' => apply_filters( 'get_wc_jetpack_plus_message', '', 'desc' ),
280
- 'custom_attributes'
281
- => apply_filters( 'get_wc_jetpack_plus_message', '', 'readonly' ),
282
- ),
283
-
284
- array(
285
- 'title' => __( 'Title', 'woocommerce-jetpack' ),
286
- 'desc_tip' => __( 'Leave blank for WooCommerce defaults', 'woocommerce-jetpack' ),
287
- 'id' => 'wcj_product_info_product_tabs_description_title',
288
- 'default' => '',
289
- 'type' => 'text',
290
- ),
291
-
292
- array(
293
- 'title' => __( 'Reviews Tab', 'woocommerce-jetpack' ),
294
- 'desc' => __( 'Remove tab from product page', 'woocommerce-jetpack' ),
295
- 'id' => 'wcj_product_info_product_tabs_reviews_disable',
296
- 'default' => 'no',
297
- 'type' => 'checkbox',
298
- ),
299
-
300
- array(
301
- 'title' => __( 'Priority (i.e. Order)', 'woocommerce-jetpack' ),
302
- 'id' => 'wcj_product_info_product_tabs_reviews_priority',
303
- 'default' => 20,
304
- 'type' => 'number',
305
- 'desc' => apply_filters( 'get_wc_jetpack_plus_message', '', 'desc' ),
306
- 'custom_attributes'
307
- => apply_filters( 'get_wc_jetpack_plus_message', '', 'readonly' ),
308
- ),
309
-
310
- array(
311
- 'title' => __( 'Title', 'woocommerce-jetpack' ),
312
- 'desc_tip' => __( 'Leave blank for WooCommerce defaults', 'woocommerce-jetpack' ),
313
- 'id' => 'wcj_product_info_product_tabs_reviews_title',
314
- 'default' => '',
315
- 'type' => 'text',
316
- ),
317
-
318
- array(
319
- 'title' => __( 'Additional Information Tab', 'woocommerce-jetpack' ),
320
- 'desc' => __( 'Remove tab from product page', 'woocommerce-jetpack' ),
321
- 'id' => 'wcj_product_info_product_tabs_additional_information_disable',
322
- 'default' => 'no',
323
- 'type' => 'checkbox',
324
- ),
325
-
326
- array(
327
- 'title' => __( 'Priority (i.e. Order)', 'woocommerce-jetpack' ),
328
- 'id' => 'wcj_product_info_product_tabs_additional_information_priority',
329
- 'default' => 30,
330
- 'type' => 'number',
331
- 'desc' => apply_filters( 'get_wc_jetpack_plus_message', '', 'desc' ),
332
- 'custom_attributes'
333
- => apply_filters( 'get_wc_jetpack_plus_message', '', 'readonly' ),
334
- ),
335
-
336
- array(
337
- 'title' => __( 'Title', 'woocommerce-jetpack' ),
338
- 'desc_tip' => __( 'Leave blank for WooCommerce defaults', 'woocommerce-jetpack' ),
339
- 'id' => 'wcj_product_info_product_tabs_additional_information_title',
340
- 'default' => '',
341
- 'type' => 'text',
342
- ),
343
-
344
- array( 'type' => 'sectionend', 'id' => 'wcj_product_info_product_tabs_options' ),
345
-
346
  // Related Products Options
347
  array( 'title' => __( 'Related Products Options', 'woocommerce-jetpack' ), 'type' => 'title', 'desc' => 'This section lets you change related products number.', 'id' => 'wcj_product_info_related_products_options' ),
348
 
38
 
39
  // Main hooks
40
  if ( 'yes' === get_option( 'wcj_product_info_enabled' ) ) {
 
 
41
 
42
  if ( get_option( 'wcj_product_info_related_products_enable' ) === 'yes' ) {
43
  add_filter( 'woocommerce_related_products_args', array( $this, 'related_products_limit' ), 100 );
63
  add_filter( 'wcj_settings_sections', array( $this, 'settings_section' ) );
64
  add_filter( 'wcj_settings_product_info', array( $this, 'get_settings' ), 100 );
65
  add_filter( 'wcj_features_status', array( $this, 'add_enabled_option' ), 100 );
66
+ }
67
+
68
  /**
69
  * Return feature's enable/disable option.
70
  */
121
 
122
  return $args;
123
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
124
 
125
  /**
126
  * Get settings.
225
 
226
  array( 'type' => 'sectionend', 'id' => 'wcj_product_info_additional_options' ),
227
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
228
  // Related Products Options
229
  array( 'title' => __( 'Related Products Options', 'woocommerce-jetpack' ), 'type' => 'title', 'desc' => 'This section lets you change related products number.', 'id' => 'wcj_product_info_related_products_options' ),
230
 
includes/class-wcj-product-tabs.php ADDED
@@ -0,0 +1,421 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * WooCommerce Jetpack Product Tabs
4
+ *
5
+ * The WooCommerce Jetpack Product Tabs class.
6
+ *
7
+ * @class WCJ_Product_Tabs
8
+ * @version 1.0.0
9
+ * @category Class
10
+ * @author Algoritmika Ltd.
11
+ */
12
+
13
+ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
14
+
15
+ if ( ! class_exists( 'WCJ_Product_Tabs' ) ) :
16
+
17
+ class WCJ_Product_Tabs {
18
+
19
+ /**
20
+ * Constructor.
21
+ */
22
+ public function __construct() {
23
+
24
+ // Main hooks
25
+ if ( get_option( 'wcj_product_tabs_enabled' ) == 'yes' ) {
26
+
27
+ add_filter( 'woocommerce_product_tabs', array( $this, 'customize_product_tabs' ), 98 );
28
+
29
+ if ( 'yes' === get_option( 'wcj_custom_product_tabs_local_enabled' ) ) {
30
+ add_action( 'add_meta_boxes', array( $this, 'add_custom_tabs_meta_box' ) );
31
+ add_action( 'save_post_product', array( $this, 'save_custom_tabs_meta_box' ), 100, 2 );
32
+ }
33
+ }
34
+
35
+ // Settings hooks
36
+ add_filter( 'wcj_settings_sections', array( $this, 'settings_section' ) );
37
+ add_filter( 'wcj_settings_product_tabs', array( $this, 'get_settings' ), 100 );
38
+ add_filter( 'wcj_features_status', array( $this, 'add_enabled_option' ), 100 );
39
+ }
40
+
41
+
42
+ /**
43
+ * Customize the product tabs.
44
+ */
45
+ function customize_product_tabs( $tabs ) {
46
+
47
+ // Unset
48
+ if ( get_option( 'wcj_product_info_product_tabs_description_disable' ) === 'yes' )
49
+ unset( $tabs['description'] );
50
+ if ( get_option( 'wcj_product_info_product_tabs_reviews_disable' ) === 'yes' )
51
+ unset( $tabs['reviews'] );
52
+ if ( get_option( 'wcj_product_info_product_tabs_additional_information_disable' ) === 'yes' )
53
+ unset( $tabs['additional_information'] );
54
+
55
+ // Priority and Title
56
+ if ( isset( $tabs['description'] ) ) {
57
+ $tabs['description']['priority'] = apply_filters( 'wcj_get_option_filter', 10, get_option( 'wcj_product_info_product_tabs_description_priority' ) );
58
+ if ( get_option( 'wcj_product_info_product_tabs_description_title' ) !== '' )
59
+ $tabs['description']['title'] = get_option( 'wcj_product_info_product_tabs_description_title' );
60
+ }
61
+ if ( isset( $tabs['reviews'] ) ) {
62
+ $tabs['reviews']['priority'] = apply_filters( 'wcj_get_option_filter', 20, get_option( 'wcj_product_info_product_tabs_reviews_priority' ) );
63
+ if ( get_option( 'wcj_product_info_product_tabs_reviews_title' ) !== '' )
64
+ $tabs['reviews']['title'] = get_option( 'wcj_product_info_product_tabs_reviews_title' );
65
+ }
66
+ if ( isset( $tabs['additional_information'] ) ) {
67
+ $tabs['additional_information']['priority'] = apply_filters( 'wcj_get_option_filter', 30, get_option( 'wcj_product_info_product_tabs_additional_information_priority' ) );
68
+ if ( get_option( 'wcj_product_info_product_tabs_additional_information_title' ) !== '' )
69
+ $tabs['additional_information']['title'] = get_option( 'wcj_product_info_product_tabs_additional_information_title' );
70
+ }
71
+
72
+ // Add New
73
+ // Add New - Global
74
+ for ( $i = 1; $i <= apply_filters( 'wcj_get_option_filter', 1, get_option( 'wcj_custom_product_tabs_global_total_number', 1 ) ); $i++ ) {
75
+ $key = 'global_' . $i;
76
+ if ( '' != get_option( 'wcj_custom_product_tabs_title_' . $key, '' ) && '' != get_option( 'wcj_custom_product_tabs_content_' . $key, '' ) )
77
+ $tabs[ $key ] = array(
78
+ 'title' => get_option( 'wcj_custom_product_tabs_title_' . $key ),
79
+ 'priority' => get_option( 'wcj_custom_product_tabs_priority_' . $key, 40 ),
80
+ 'callback' => array( $this, 'create_new_custom_product_tab_global' ),
81
+ );
82
+ }
83
+ // Add New - Local
84
+ $current_post_id = get_the_ID();
85
+ $option_name = 'wcj_custom_product_tabs_local_total_number';
86
+ if ( ! ( $total_custom_tabs = get_post_meta( $current_post_id, '_' . $option_name, true ) ) )
87
+ $total_custom_tabs = apply_filters( 'wcj_get_option_filter', 1, get_option( 'wcj_custom_product_tabs_local_total_number_default', 1 ) );
88
+ if ( 'yes' !== get_option( 'wcj_custom_product_tabs_local_enabled' ) )
89
+ $total_custom_tabs = 0;
90
+
91
+ for ( $i = 1; $i <= $total_custom_tabs; $i++ ) {
92
+ $key = 'local_' . $i;
93
+
94
+ $tab_priority = get_post_meta( $current_post_id, '_' . 'wcj_custom_product_tabs_priority_' . $key, true );
95
+ if ( ! $tab_prority )
96
+ $tab_prority = (50 + $i - 1);
97
+
98
+ if ( '' != get_post_meta( $current_post_id, '_' . 'wcj_custom_product_tabs_title_' . $key, true ) && '' != get_post_meta( $current_post_id, '_' . 'wcj_custom_product_tabs_content_' . $key, true ) )
99
+ $tabs[ $key ] = array(
100
+ 'title' => get_post_meta( $current_post_id, '_' . 'wcj_custom_product_tabs_title_' . $key, true ),
101
+ 'priority' => $tab_prority,
102
+ 'callback' => array( $this, 'create_new_custom_product_tab_local' ),
103
+ );
104
+ }
105
+
106
+ return $tabs;
107
+ }
108
+
109
+ function create_new_custom_product_tab_local( $key, $tab ) {
110
+ $current_post_id = get_the_ID();
111
+ echo apply_filters( 'the_content', get_post_meta( $current_post_id, '_' . 'wcj_custom_product_tabs_content_' . $key, true ) );
112
+ }
113
+
114
+ function create_new_custom_product_tab_global( $key, $tab ) {
115
+ echo apply_filters( 'the_content', get_option( 'wcj_custom_product_tabs_content_' . $key ) );
116
+ }
117
+
118
+ /**
119
+ * save_custom_tabs_meta_box.
120
+ */
121
+ public function save_custom_tabs_meta_box( $post_id, $post ) {
122
+ // Check that we are saving with custom tab metabox displayed.
123
+ if ( ! isset( $_POST['woojetpack_custom_tabs_save_post'] ) )
124
+ return;
125
+ // Save: total custom tabs number
126
+ $option_name = 'wcj_custom_product_tabs_local_total_number';
127
+ $total_custom_tabs = isset( $_POST[ $option_name ] ) ? $_POST[ $option_name ] : apply_filters( 'wcj_get_option_filter', 1, get_option( 'wcj_custom_product_tabs_local_total_number_default', 1 ) );
128
+ update_post_meta( $post_id, '_' . $option_name, $_POST[ $option_name ] );
129
+ // Save: title, priority, content
130
+ $option_names = array(
131
+ 'wcj_custom_product_tabs_title_local_',
132
+ 'wcj_custom_product_tabs_priority_local_',
133
+ 'wcj_custom_product_tabs_content_local_',
134
+ );
135
+ for ( $i = 1; $i <= $total_custom_tabs; $i++ ) {
136
+ foreach ( $option_names as $option_name )
137
+ update_post_meta( $post_id, '_' . $option_name . $i, $_POST[ $option_name . $i ] );
138
+ }
139
+ }
140
+
141
+ /**
142
+ * add_custom_tabs_meta_box.
143
+ */
144
+ public function add_custom_tabs_meta_box() {
145
+ add_meta_box( 'wc-jetpack-custom-tabs', 'WooCommerce Jetpack: Custom Tabs', array( $this, 'create_custom_tabs_meta_box' ), 'product', 'normal', 'high' );
146
+ }
147
+
148
+ /**
149
+ * create_custom_tabs_meta_box.
150
+ */
151
+ public function create_custom_tabs_meta_box() {
152
+ $current_post_id = get_the_ID();
153
+ $option_name = 'wcj_custom_product_tabs_local_total_number';
154
+ if ( ! ( $total_custom_tabs = get_post_meta( $current_post_id, '_' . $option_name, true ) ) )
155
+ $total_custom_tabs = apply_filters( 'wcj_get_option_filter', 1, get_option( 'wcj_custom_product_tabs_local_total_number_default', 1 ) );
156
+ $html = '';
157
+
158
+ $is_disabled = apply_filters( 'get_wc_jetpack_plus_message', '', 'readonly_string' );
159
+ $is_disabled_message = apply_filters( 'get_wc_jetpack_plus_message', '', 'desc' );
160
+
161
+ $html .= '<table>';
162
+ $html .= '<tr>';
163
+ $html .= '<th>';
164
+ $html .= __( 'Total number of custom tabs', 'woocommerce-jetpack' );
165
+ $html .= '</th>';
166
+ $html .= '<td>';
167
+ $html .= '<input type="number" id="' . $option_name . '" name="' . $option_name . '" value="' . $total_custom_tabs . '" ' . $is_disabled . '> ' . $is_disabled_message;
168
+ $html .= '</td>';
169
+ $html .= '</tr>';
170
+ $html .= '</table>';
171
+
172
+ $options = array(
173
+ array(
174
+ 'id' => 'wcj_custom_product_tabs_title_local_',
175
+ 'title' => __( 'Title', 'woocommerce-jetpack' ),
176
+ 'type' => 'text',
177
+ ),
178
+ array(
179
+ 'id' => 'wcj_custom_product_tabs_priority_local_',
180
+ 'title' => __( 'Priority', 'woocommerce-jetpack' ),
181
+ 'type' => 'number',
182
+ ),
183
+ array(
184
+ 'id' => 'wcj_custom_product_tabs_content_local_',
185
+ 'title' => __( 'Content', 'woocommerce-jetpack' ),
186
+ 'type' => 'textarea',
187
+ ),
188
+ );
189
+ $html .= '<h4>' . __( 'Customize the tab(s)', 'woocommerce-jetpack' ) . '</h4>';
190
+ $html .= '<table style="width:100%;">';
191
+ for ( $i = 1; $i <= $total_custom_tabs; $i++ ) {
192
+ $html .= '<tr>';
193
+ $html .= '<td style="font-style:italic;">' . __( 'Custom Product Tab', 'woocommerce-jetpack' ) . ' #' . $i . '</td>';
194
+ foreach ( $options as $option ) {
195
+ $option_id = $option['id'] . $i;
196
+ $option_value = get_post_meta( $current_post_id, '_' . $option_id, true );
197
+ /*if ( ! $option_value )
198
+ $option_value = get_option( $option['id'] . 'default', '' );*/
199
+ $html .= '<th>' . $option['title'] . '</th>';
200
+ if ( 'textarea' === $option['type'] )
201
+ $html .= '<td style="width:30%;">';
202
+ else
203
+ $html .= '<td>';
204
+ switch ( $option['type'] ) {
205
+ case 'number':
206
+ case 'text':
207
+ $html .= '<input type="' . $option['type'] . '" id="' . $option_id . '" name="' . $option_id . '" value="' . $option_value . '">';
208
+ break;
209
+ case 'textarea':
210
+ $html .= '<textarea style="width:100%;" id="' . $option_id . '" name="' . $option_id . '">' . $option_value . '</textarea>';
211
+ break;
212
+ }
213
+ $html .= '</td>';
214
+ }
215
+ $html .= '</tr>';
216
+ }
217
+ $html .= '</table>';
218
+ $html .= '<input type="hidden" name="woojetpack_custom_tabs_save_post" value="woojetpack_custom_tabs_save_post">';
219
+ echo $html;
220
+ }
221
+
222
+
223
+ /**
224
+ * add_enabled_option.
225
+ */
226
+ public function add_enabled_option( $settings ) {
227
+ $all_settings = $this->get_settings();
228
+ $settings[] = $all_settings[1];
229
+ return $settings;
230
+ }
231
+
232
+ /**
233
+ * settings_section.
234
+ */
235
+ function settings_section( $sections ) {
236
+ $sections['product_tabs'] = __( 'Product Tabs', 'woocommerce-jetpack' );
237
+ return $sections;
238
+ }
239
+
240
+ /**
241
+ * get_settings.
242
+ */
243
+ function get_settings() {
244
+
245
+ $settings = array(
246
+
247
+ array( 'title' => __( 'Product Tabs Options', 'woocommerce-jetpack' ), 'type' => 'title', 'desc' => '', 'id' => 'wcj_product_tabs_options' ),
248
+
249
+ array(
250
+ 'title' => __( 'Product Tabs', 'woocommerce-jetpack' ),
251
+ 'desc' => __( 'Enable the Product Tabs feature', 'woocommerce-jetpack' ),
252
+ 'desc_tip' => __( 'Add custom product tabs - globally or per product. Customize or completely remove WooCommerce default product tabs.', 'woocommerce-jetpack' ),
253
+ 'id' => 'wcj_product_tabs_enabled',
254
+ 'default' => 'yes',
255
+ 'type' => 'checkbox',
256
+ ),
257
+
258
+ array( 'type' => 'sectionend', 'id' => 'wcj_product_tabs_options' ),
259
+
260
+ array( 'title' => __( 'Custom Product Tabs Options', 'woocommerce-jetpack' ), 'type' => 'title', 'desc' => 'This section lets you add custom single product tabs.', 'id' => 'wcj_custom_product_tabs_options' ),
261
+
262
+ array(
263
+ 'title' => __( 'Custom Product Tabs Number', 'woocommerce-jetpack' ),
264
+ 'id' => 'wcj_custom_product_tabs_global_total_number',
265
+ 'default' => 1,
266
+ 'type' => 'number',
267
+ 'desc' => apply_filters( 'get_wc_jetpack_plus_message', '', 'desc' ),
268
+ 'custom_attributes'
269
+ => apply_filters( 'get_wc_jetpack_plus_message', '', 'readonly' ),
270
+ ),
271
+ );
272
+
273
+ for ( $i = 1; $i <= apply_filters( 'wcj_get_option_filter', 1, get_option( 'wcj_custom_product_tabs_global_total_number', 1 ) ); $i++ ) {
274
+ $settings = array_merge( $settings,
275
+ array(
276
+ array(
277
+ 'title' => __( 'Custom Product Tab', 'woocommerce-jetpack' ) . ' #' . $i,
278
+ 'desc' => __( 'Title', 'woocommerce-jetpack' ),
279
+ 'id' => 'wcj_custom_product_tabs_title_global_' . $i,
280
+ 'default' => '',
281
+ 'type' => 'text',
282
+ 'css' => 'width:30%;min-width:300px;',
283
+ ),
284
+ array(
285
+ 'title' => '',
286
+ 'desc' => __( 'Priority (i.e. Order)', 'woocommerce-jetpack' ),
287
+ 'id' => 'wcj_custom_product_tabs_priority_global_' . $i,
288
+ 'default' => (40 + $i - 1),
289
+ 'type' => 'number',
290
+ ),
291
+ array(
292
+ 'title' => '',
293
+ 'desc' => __( 'Content', 'woocommerce-jetpack' ),
294
+ 'desc_tip' => __( 'You can use shortcodes here...', 'woocommerce-jetpack' ),
295
+ 'id' => 'wcj_custom_product_tabs_content_global_' . $i,
296
+ 'default' => '',
297
+ 'type' => 'textarea',
298
+ 'css' => 'width:50%;min-width:300px;height:200px;',
299
+ ),
300
+ )
301
+ );
302
+ }
303
+
304
+ $settings = array_merge( $settings, array(
305
+
306
+ array( 'type' => 'sectionend', 'id' => 'wcj_custom_product_tabs_options' ),
307
+
308
+ array( 'title' => __( 'Local Custom Product Tabs', 'woocommerce-jetpack' ), 'type' => 'title', 'desc' => 'This section lets you set defaults for local custom tabs.', 'id' => 'wcj_custom_product_tabs_options_local' ),
309
+
310
+ array(
311
+ 'title' => __( 'Enable Custom Product Tabs', 'woocommerce-jetpack' ),
312
+ //'desc' => __( 'Remove tab from product page', 'woocommerce-jetpack' ),
313
+ 'id' => 'wcj_custom_product_tabs_local_enabled',
314
+ 'default' => 'yes',
315
+ 'type' => 'checkbox',
316
+ ),
317
+
318
+ array(
319
+ 'title' => __( 'Default Local Custom Product Tabs Number', 'woocommerce-jetpack' ),
320
+ 'id' => 'wcj_custom_product_tabs_local_total_number_default',
321
+ 'default' => 1,
322
+ 'type' => 'number',
323
+ 'desc' => apply_filters( 'get_wc_jetpack_plus_message', '', 'desc' ),
324
+ 'custom_attributes'
325
+ => apply_filters( 'get_wc_jetpack_plus_message', '', 'readonly' ),
326
+ ),
327
+
328
+ array( 'type' => 'sectionend', 'id' => 'wcj_custom_product_tabs_options_local' ),
329
+
330
+ /**/
331
+ array( 'title' => __( 'WooCommerce Standard Product Tabs Options', 'woocommerce-jetpack' ), 'type' => 'title', 'desc' => 'This section lets you customize single product tabs.', 'id' => 'wcj_product_info_product_tabs_options' ),
332
+
333
+ array(
334
+ 'title' => __( 'Description Tab', 'woocommerce-jetpack' ),
335
+ 'desc' => __( 'Remove tab from product page', 'woocommerce-jetpack' ),
336
+ 'id' => 'wcj_product_info_product_tabs_description_disable',
337
+ 'default' => 'no',
338
+ 'type' => 'checkbox',
339
+ ),
340
+
341
+ array(
342
+ 'title' => __( 'Priority (i.e. Order)', 'woocommerce-jetpack' ),
343
+ 'id' => 'wcj_product_info_product_tabs_description_priority',
344
+ 'default' => 10,
345
+ 'type' => 'number',
346
+ 'desc' => apply_filters( 'get_wc_jetpack_plus_message', '', 'desc' ),
347
+ 'custom_attributes'
348
+ => apply_filters( 'get_wc_jetpack_plus_message', '', 'readonly' ),
349
+ ),
350
+
351
+ array(
352
+ 'title' => __( 'Title', 'woocommerce-jetpack' ),
353
+ 'desc_tip' => __( 'Leave blank for WooCommerce defaults', 'woocommerce-jetpack' ),
354
+ 'id' => 'wcj_product_info_product_tabs_description_title',
355
+ 'default' => '',
356
+ 'type' => 'text',
357
+ ),
358
+
359
+ array(
360
+ 'title' => __( 'Reviews Tab', 'woocommerce-jetpack' ),
361
+ 'desc' => __( 'Remove tab from product page', 'woocommerce-jetpack' ),
362
+ 'id' => 'wcj_product_info_product_tabs_reviews_disable',
363
+ 'default' => 'no',
364
+ 'type' => 'checkbox',
365
+ ),
366
+
367
+ array(
368
+ 'title' => __( 'Priority (i.e. Order)', 'woocommerce-jetpack' ),
369
+ 'id' => 'wcj_product_info_product_tabs_reviews_priority',
370
+ 'default' => 20,
371
+ 'type' => 'number',
372
+ 'desc' => apply_filters( 'get_wc_jetpack_plus_message', '', 'desc' ),
373
+ 'custom_attributes'
374
+ => apply_filters( 'get_wc_jetpack_plus_message', '', 'readonly' ),
375
+ ),
376
+
377
+ array(
378
+ 'title' => __( 'Title', 'woocommerce-jetpack' ),
379
+ 'desc_tip' => __( 'Leave blank for WooCommerce defaults', 'woocommerce-jetpack' ),
380
+ 'id' => 'wcj_product_info_product_tabs_reviews_title',
381
+ 'default' => '',
382
+ 'type' => 'text',
383
+ ),
384
+
385
+ array(
386
+ 'title' => __( 'Additional Information Tab', 'woocommerce-jetpack' ),
387
+ 'desc' => __( 'Remove tab from product page', 'woocommerce-jetpack' ),
388
+ 'id' => 'wcj_product_info_product_tabs_additional_information_disable',
389
+ 'default' => 'no',
390
+ 'type' => 'checkbox',
391
+ ),
392
+
393
+ array(
394
+ 'title' => __( 'Priority (i.e. Order)', 'woocommerce-jetpack' ),
395
+ 'id' => 'wcj_product_info_product_tabs_additional_information_priority',
396
+ 'default' => 30,
397
+ 'type' => 'number',
398
+ 'desc' => apply_filters( 'get_wc_jetpack_plus_message', '', 'desc' ),
399
+ 'custom_attributes'
400
+ => apply_filters( 'get_wc_jetpack_plus_message', '', 'readonly' ),
401
+ ),
402
+
403
+ array(
404
+ 'title' => __( 'Title', 'woocommerce-jetpack' ),
405
+ 'desc_tip' => __( 'Leave blank for WooCommerce defaults', 'woocommerce-jetpack' ),
406
+ 'id' => 'wcj_product_info_product_tabs_additional_information_title',
407
+ 'default' => '',
408
+ 'type' => 'text',
409
+ ),
410
+
411
+ array( 'type' => 'sectionend', 'id' => 'wcj_product_info_product_tabs_options' ),
412
+
413
+ ) );
414
+
415
+ return $settings;
416
+ }
417
+ }
418
+
419
+ endif;
420
+
421
+ return new WCJ_Product_Tabs();
includes/class-wcj-reports.php CHANGED
@@ -5,7 +5,7 @@
5
  * The WooCommerce Jetpack Reports class.
6
  *
7
  * @class WCJ_Reports
8
- * @version 1.1.1
9
  * @category Class
10
  * @author Algoritmika Ltd.
11
  */
@@ -359,7 +359,7 @@ class WCJ_Reports {
359
 
360
  $html .= '<td class="wcj_report_table_sales_columns">';
361
  if ( 0 == $product_info['last_sale'] ) $html .= __( 'No sales yet', 'woocommerce-jetpack' );
362
- else $html .= date( get_option( 'date_format' ), $product_info['last_sale'] );
363
  $html .= '</td>';
364
  $html .= '<td class="wcj_report_table_sales_columns">' . $product_info['sales_in_period'][ $this->period ] . '</td>';
365
  $html .= '<td class="wcj_report_table_sales_columns">' . $product_info['sales_in_period'][ $this->period * 2 ] . '</td>';
5
  * The WooCommerce Jetpack Reports class.
6
  *
7
  * @class WCJ_Reports
8
+ * @version 1.1.2
9
  * @category Class
10
  * @author Algoritmika Ltd.
11
  */
359
 
360
  $html .= '<td class="wcj_report_table_sales_columns">';
361
  if ( 0 == $product_info['last_sale'] ) $html .= __( 'No sales yet', 'woocommerce-jetpack' );
362
+ else $html .= date_i18n( get_option( 'date_format' ), $product_info['last_sale'] );
363
  $html .= '</td>';
364
  $html .= '<td class="wcj_report_table_sales_columns">' . $product_info['sales_in_period'][ $this->period ] . '</td>';
365
  $html .= '<td class="wcj_report_table_sales_columns">' . $product_info['sales_in_period'][ $this->period * 2 ] . '</td>';
readme.txt CHANGED
@@ -1,10 +1,10 @@
1
  === WooCommerce Jetpack ===
2
  Contributors: algoritmika
3
  Donate link: http://algoritmika.com/donate/
4
- Tags: woocommerce,woocommerce jetpack,custom price labels,call for price,currency symbol,remove sorting,remove old product slugs,add to cart text,order number,sequential order numbering,email pdf invoice,pdf invoice,pdf invoices,already in cart,empty cart,redirect to checkout,minimum order amount,customize checkout fields,checkout fields,email,customize product tabs,product tabs,related products number,empty cart,redirect add to cart,redirect to checkout,product already in cart,custom payment gateway,payment gateway icon,auto-complete all orders,custom order statuses,custom order status,remove text from price,custom css,hide categories count,hide subcategories count,hide category count,hide subcategory count,display total sales
5
  Requires at least: 3.9.1
6
  Tested up to: 4.0
7
- Stable tag: 1.7.9
8
  License: GNU General Public License v3.0
9
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
10
 
@@ -27,7 +27,8 @@ WooCommerce Jetpack is a WordPress plugin that supercharges your site with aweso
27
  * Shipping - Hide shipping when free is available.
28
  * Emails - Add another email recipient(s) to all WooCommerce emails.
29
  * Product Listings - Change display options for shop and category pages: show/hide categories count, exclude categories, show/hide empty categories.
30
- * Product Info - Customize single product tabs. Change related products number.
 
31
  * Cart - Add "Empty Cart" button to cart page, automatically add product to cart on visit.
32
  * Add to Cart - Change text for add to cart buttons for each product type. Display "Product already in cart" instead of "Add to cart" button. Redirect add to cart button to any url (e.g. checkout page).
33
  * Old Slugs - Remove old product slugs.
@@ -68,18 +69,16 @@ Please let us know if you want anything added to list by <a href="http://woojetp
68
 
69
  If you wish that some task would go up the queue to make it faster, please contact us by <a href="http://woojetpack.com/contact-us/">filling this form</a>. We are listening carefully to our users!
70
 
71
- = 1.8.0 - XX/10/2014 =
72
  * Upgrade Feature - Shipping - Advance free shipping - Free shipping for multiple country/places. Each country/places different prices. Idea by LQTOYS.
73
  * Upgrade Feature - PDF Invoices - Make emailing PDF as attachment option available for certain payment methods only (user selection). Idea by Jen.
74
  * Upgrade Feature - PDF Invoices - Sending invoice on customer's request. Idea by Jen.
75
- * Upgrade Feature - PDF Invoices - International date formats. Idea by Jean-Marc.
76
  * New Feature - Checkout to PDF (wish list). Idea by Mick.
77
  * Upgrade Feature - Checkout - Extra fee (e.g. for PayPal). Suggested by Daniele.
78
  * New Feature - Custom Product Input Fields - Fields to fill before adding product to cart. Idea by Mangesh.
79
 
80
- = 1.9.0 - 15/11/2014 =
81
- * Upgrade Feature - Product Info - Custom product tabs.
82
- * New Feature - Smart Reports - Various reports based on products prices, sales, stock.
83
  * New Feature - Add second currency to the price.
84
  * New Feature - Products per Page - Add "products per page" option for customers (i.e. front end).
85
  * Upgrade Feature - Shipping - Add "Custom Shipping Method".
@@ -131,6 +130,12 @@ If you wish that some task would go up the queue to make it faster, please conta
131
 
132
  == Changelog ==
133
 
 
 
 
 
 
 
134
  = 1.7.9 - 16/10/2014 =
135
  * Fix - Custom Price Labels - Hiding price labels on cart page didn't work, fixed. Suggested by Paolo.
136
 
@@ -174,7 +179,8 @@ If you wish that some task would go up the queue to make it faster, please conta
174
 
175
  = 1.7.1 - 02/10/2014 =
176
  * Fix - Product Info - `%total_sales%` is temporary disabled.
177
- This was causing "PHP Parse error" on some servers (PHP 5.3). Reported by Xavier.
 
178
 
179
  = 1.7.0 - 02/10/2014 =
180
  * Fix - Payment Gateways - Instructions were not showing (suggested by Jen), fixed.
1
  === WooCommerce Jetpack ===
2
  Contributors: algoritmika
3
  Donate link: http://algoritmika.com/donate/
4
+ Tags: woocommerce,woocommerce jetpack,custom price labels,call for price,currency symbol,remove sorting,remove old product slugs,add to cart text,order number,sequential order numbering,email pdf invoice,pdf invoice,pdf invoices,already in cart,empty cart,redirect to checkout,minimum order amount,customize checkout fields,checkout fields,email,customize product tabs,product tabs,related products number,empty cart,redirect add to cart,redirect to checkout,product already in cart,custom payment gateway,payment gateway icon,auto-complete all orders,custom order statuses,custom order status,remove text from price,custom css,hide categories count,hide subcategories count,hide category count,hide subcategory count,display total sales,custom product tabs,remove product tab,
5
  Requires at least: 3.9.1
6
  Tested up to: 4.0
7
+ Stable tag: 1.8.0
8
  License: GNU General Public License v3.0
9
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
10
 
27
  * Shipping - Hide shipping when free is available.
28
  * Emails - Add another email recipient(s) to all WooCommerce emails.
29
  * Product Listings - Change display options for shop and category pages: show/hide categories count, exclude categories, show/hide empty categories.
30
+ * Product Info - Add additional info to product. Change related products number.
31
+ * Product Tabs - Add custom product tabs - globally or per product. Customize or completely remove WooCommerce default product tabs.
32
  * Cart - Add "Empty Cart" button to cart page, automatically add product to cart on visit.
33
  * Add to Cart - Change text for add to cart buttons for each product type. Display "Product already in cart" instead of "Add to cart" button. Redirect add to cart button to any url (e.g. checkout page).
34
  * Old Slugs - Remove old product slugs.
69
 
70
  If you wish that some task would go up the queue to make it faster, please contact us by <a href="http://woojetpack.com/contact-us/">filling this form</a>. We are listening carefully to our users!
71
 
72
+ = 1.9.0 - XX/10/2014 =
73
  * Upgrade Feature - Shipping - Advance free shipping - Free shipping for multiple country/places. Each country/places different prices. Idea by LQTOYS.
74
  * Upgrade Feature - PDF Invoices - Make emailing PDF as attachment option available for certain payment methods only (user selection). Idea by Jen.
75
  * Upgrade Feature - PDF Invoices - Sending invoice on customer's request. Idea by Jen.
 
76
  * New Feature - Checkout to PDF (wish list). Idea by Mick.
77
  * Upgrade Feature - Checkout - Extra fee (e.g. for PayPal). Suggested by Daniele.
78
  * New Feature - Custom Product Input Fields - Fields to fill before adding product to cart. Idea by Mangesh.
79
 
80
+ = 1.X.X - XX/11/2014 =
81
+ * New Feature - Smart Reports - Various reports based on products prices, sales, stock, customers.
 
82
  * New Feature - Add second currency to the price.
83
  * New Feature - Products per Page - Add "products per page" option for customers (i.e. front end).
84
  * Upgrade Feature - Shipping - Add "Custom Shipping Method".
130
 
131
  == Changelog ==
132
 
133
+ = 1.8.0 - 17/10/2014 =
134
+ * New Feature - Product Tabs - **Custom product tabs** - global or per product.
135
+ Related *product tabs* options were also moved to this feature from *Product Info*.
136
+ * Dev - `date` function changed to `date_i18n`. Suggested in https://wordpress.org/support/topic/pdf-invoices-date-bug.
137
+ Changes affected the *Orders* and *PDF Invoices* features (this covers request from Jean-Marc for international date formats in *PDF Invoices*).
138
+
139
  = 1.7.9 - 16/10/2014 =
140
  * Fix - Custom Price Labels - Hiding price labels on cart page didn't work, fixed. Suggested by Paolo.
141
 
179
 
180
  = 1.7.1 - 02/10/2014 =
181
  * Fix - Product Info - `%total_sales%` is temporary disabled.
182
+ This was causing "PHP Parse error" on some servers (PHP 5.3), now fixed. Reported by Xavier.
183
+ Also reported in https://wordpress.org/support/topic/parse-error-syntax-error-unexpected-expecting-2.
184
 
185
  = 1.7.0 - 02/10/2014 =
186
  * Fix - Payment Gateways - Instructions were not showing (suggested by Jen), fixed.
woocommerce-jetpack.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: WooCommerce Jetpack
4
  Plugin URI: http://woojetpack.com
5
  Description: Supercharge your WooCommerce site with these awesome powerful features.
6
- Version: 1.7.9
7
  Author: Algoritmika Ltd
8
  Author URI: http://www.algoritmika.com
9
  Copyright: © 2014 Algoritmika Ltd.
@@ -168,6 +168,7 @@ final class WC_Jetpack {
168
  //$settings[] = include_once( 'includes/class-wcj-product-input-fields.php' );
169
  $settings[] = include_once( 'includes/class-wcj-product-listings.php' );
170
  $settings[] = include_once( 'includes/class-wcj-product-info.php' );
 
171
 
172
  $settings[] = include_once( 'includes/class-wcj-add-to-cart.php' );
173
  $settings[] = include_once( 'includes/class-wcj-cart.php' );
3
  Plugin Name: WooCommerce Jetpack
4
  Plugin URI: http://woojetpack.com
5
  Description: Supercharge your WooCommerce site with these awesome powerful features.
6
+ Version: 1.8.0
7
  Author: Algoritmika Ltd
8
  Author URI: http://www.algoritmika.com
9
  Copyright: © 2014 Algoritmika Ltd.
168
  //$settings[] = include_once( 'includes/class-wcj-product-input-fields.php' );
169
  $settings[] = include_once( 'includes/class-wcj-product-listings.php' );
170
  $settings[] = include_once( 'includes/class-wcj-product-info.php' );
171
+ $settings[] = include_once( 'includes/class-wcj-product-tabs.php' );
172
 
173
  $settings[] = include_once( 'includes/class-wcj-add-to-cart.php' );
174
  $settings[] = include_once( 'includes/class-wcj-cart.php' );