Version Description
- Added: Export button to the Products, Categories, Product Tags and Orders screen
- Fixed: Quantity not populating for Variable Products in WooCommerce version 3.8 and above (thanks Hanny)
Download this release
Release Info
Developer | byronkeet |
Plugin | WooCommerce – Store Exporter |
Version | 2.5 |
Comparing to | |
See all releases |
Code changes from version 2.4 to 2.5
- exporter.php +2 -2
- includes/admin.php +5 -0
- includes/product.php +30 -0
- readme.txt +7 -3
- templates/admin/export.js +36 -0
exporter.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Plugin Name: WooCommerce - Store Exporter
|
4 |
* Plugin URI: http://www.visser.com.au/woocommerce/plugins/exporter/
|
5 |
* Description: Export store details out of WooCommerce into simple formatted files (e.g. CSV, TSV, Excel formats including XLS and XLSX, XML, etc.)
|
6 |
-
* Version: 2.
|
7 |
* Author: Visser Labs
|
8 |
* Author URI: http://www.visser.com.au/solutions/
|
9 |
* License: GPL2
|
@@ -12,7 +12,7 @@
|
|
12 |
* Domain Path: /languages/
|
13 |
*
|
14 |
* WC requires at least: 2.3
|
15 |
-
* WC tested up to:
|
16 |
*/
|
17 |
|
18 |
if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
|
3 |
* Plugin Name: WooCommerce - Store Exporter
|
4 |
* Plugin URI: http://www.visser.com.au/woocommerce/plugins/exporter/
|
5 |
* Description: Export store details out of WooCommerce into simple formatted files (e.g. CSV, TSV, Excel formats including XLS and XLSX, XML, etc.)
|
6 |
+
* Version: 2.5
|
7 |
* Author: Visser Labs
|
8 |
* Author URI: http://www.visser.com.au/solutions/
|
9 |
* License: GPL2
|
12 |
* Domain Path: /languages/
|
13 |
*
|
14 |
* WC requires at least: 2.3
|
15 |
+
* WC tested up to: 4.1.1
|
16 |
*/
|
17 |
|
18 |
if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
|
includes/admin.php
CHANGED
@@ -240,6 +240,11 @@ function woo_ce_admin_export_bar_menu( $admin_bar ) {
|
|
240 |
function woo_ce_admin_current_screen() {
|
241 |
|
242 |
$screen = get_current_screen();
|
|
|
|
|
|
|
|
|
|
|
243 |
switch( $screen->id ) {
|
244 |
|
245 |
case 'woocommerce_page_woo_ce':
|
240 |
function woo_ce_admin_current_screen() {
|
241 |
|
242 |
$screen = get_current_screen();
|
243 |
+
|
244 |
+
wp_enqueue_style( 'dashicons' );
|
245 |
+
wp_enqueue_style( 'woo_ce_styles', plugins_url( '/templates/admin/export.css', WOO_CE_RELPATH ) );
|
246 |
+
wp_enqueue_script( 'woo_ce_scripts', plugins_url( '/templates/admin/export.js', WOO_CE_RELPATH ), array( 'jquery', 'jquery-ui-sortable' ) );
|
247 |
+
|
248 |
switch( $screen->id ) {
|
249 |
|
250 |
case 'woocommerce_page_woo_ce':
|
includes/product.php
CHANGED
@@ -749,6 +749,36 @@ function woo_ce_get_product_data( $product_id = 0, $args = array() ) {
|
|
749 |
$product->upsell_ids = woo_ce_get_product_assoc_upsell_ids( $product_id );
|
750 |
$product->crosssell_ids = woo_ce_get_product_assoc_crosssell_ids( $product_id );
|
751 |
$product->quantity = get_post_meta( $product_id, '_stock', true );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
752 |
$product->stock_status = woo_ce_format_product_stock_status( get_post_meta( $product_id, '_stock_status', true ), $product->quantity );
|
753 |
$product->image = woo_ce_get_product_assoc_featured_image( $product_id );
|
754 |
$product->product_gallery = woo_ce_get_product_assoc_product_gallery( $product_id );
|
749 |
$product->upsell_ids = woo_ce_get_product_assoc_upsell_ids( $product_id );
|
750 |
$product->crosssell_ids = woo_ce_get_product_assoc_crosssell_ids( $product_id );
|
751 |
$product->quantity = get_post_meta( $product_id, '_stock', true );
|
752 |
+
// Override Variable with total stock quantity
|
753 |
+
$term_taxonomy = 'product_type';
|
754 |
+
if ( has_term( 'variable', $term_taxonomy, $product_id ) ) {
|
755 |
+
if (
|
756 |
+
version_compare( woo_get_woo_version(), '3.0', '>=' ) &&
|
757 |
+
$product->manage_stock == 'no'
|
758 |
+
) {
|
759 |
+
$product_variations = ( method_exists( $_product, 'get_available_variations' ) ? $_product->get_available_variations() : $product->quantity );
|
760 |
+
if( ! empty( $product_variations ) ) {
|
761 |
+
$quantity = 0;
|
762 |
+
foreach ( $product_variations as $variation ) {
|
763 |
+
$quantity += $variation['max_qty'];
|
764 |
+
}
|
765 |
+
$product->quantity = $quantity;
|
766 |
+
unset( $variation, $quantity );
|
767 |
+
}
|
768 |
+
unset( $product_variations );
|
769 |
+
} else if ( version_compare( woo_get_woo_version(), '2.7', '>=' ) ) {
|
770 |
+
$product->quantity = ( method_exists( $_product, 'get_stock_quantity' ) ? $_product->get_stock_quantity() : $product->quantity );
|
771 |
+
} else {
|
772 |
+
$product->quantity = ( method_exists( $_product, 'get_total_stock' ) ? $_product->get_total_stock() : $product->quantity );
|
773 |
+
}
|
774 |
+
}
|
775 |
+
$product->quantity = ( function_exists( 'wc_stock_amount' ) ? wc_stock_amount( $product->quantity ) : $product->quantity );
|
776 |
+
if(
|
777 |
+
$product->manage_stock == 'no' &&
|
778 |
+
! $product->quantity
|
779 |
+
) {
|
780 |
+
$product->quantity = '';
|
781 |
+
}
|
782 |
$product->stock_status = woo_ce_format_product_stock_status( get_post_meta( $product_id, '_stock_status', true ), $product->quantity );
|
783 |
$product->image = woo_ce_get_product_assoc_featured_image( $product_id );
|
784 |
$product->product_gallery = woo_ce_get_product_assoc_product_gallery( $product_id );
|
readme.txt
CHANGED
@@ -1,11 +1,11 @@
|
|
1 |
=== WooCommerce - Store Exporter ===
|
2 |
|
3 |
-
Contributors: visser, visser.labs
|
4 |
Donate link: https://www.visser.com.au/donations/
|
5 |
Tags: woocommerce, export, products, sales, orders, coupons, users, subscriptions, csv
|
6 |
Requires at least: 2.9.2
|
7 |
-
Tested up to: 5.
|
8 |
-
Stable tag: 2.
|
9 |
License: GPLv2 or later
|
10 |
|
11 |
Export store details out of WooCommerce into simple formatted files (e.g. CSV, XML, Excel 2007, XLS, etc.).
|
@@ -154,6 +154,10 @@ If you have any problems, questions or suggestions please create a topic here on
|
|
154 |
|
155 |
== Changelog ==
|
156 |
|
|
|
|
|
|
|
|
|
157 |
= 2.4 =
|
158 |
* Fixed: CSV Injection Vulnerability affecting exports (thanks FortiGuard Labs)
|
159 |
|
1 |
=== WooCommerce - Store Exporter ===
|
2 |
|
3 |
+
Contributors: visser, visser.labs, byronkeet
|
4 |
Donate link: https://www.visser.com.au/donations/
|
5 |
Tags: woocommerce, export, products, sales, orders, coupons, users, subscriptions, csv
|
6 |
Requires at least: 2.9.2
|
7 |
+
Tested up to: 5.4.1
|
8 |
+
Stable tag: 2.5
|
9 |
License: GPLv2 or later
|
10 |
|
11 |
Export store details out of WooCommerce into simple formatted files (e.g. CSV, XML, Excel 2007, XLS, etc.).
|
154 |
|
155 |
== Changelog ==
|
156 |
|
157 |
+
= 2.5 =
|
158 |
+
* Added: Export button to the Products, Categories, Product Tags and Orders screen
|
159 |
+
* Fixed: Quantity not populating for Variable Products in WooCommerce version 3.8 and above (thanks Hanny)
|
160 |
+
|
161 |
= 2.4 =
|
162 |
* Fixed: CSV Injection Vulnerability affecting exports (thanks FortiGuard Labs)
|
163 |
|
templates/admin/export.js
CHANGED
@@ -554,6 +554,42 @@ $j(function() {
|
|
554 |
$j('#'+type).trigger('click');
|
555 |
}
|
556 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
557 |
});
|
558 |
|
559 |
});
|
554 |
$j('#'+type).trigger('click');
|
555 |
}
|
556 |
|
557 |
+
// Adds the Export button to WooCommerce screens within the WordPress Administration
|
558 |
+
var export_url = 'admin.php?page=woo_ce';
|
559 |
+
var export_text = 'Export';
|
560 |
+
var export_text_override = 'Export with <attr value="Store Exporter">SE</attr>';
|
561 |
+
var export_html = '<a href="' + export_url + '" class="page-title-action">' + export_text + '</a>';
|
562 |
+
|
563 |
+
// Adds the Export button to the Products screen
|
564 |
+
var product_screen = $j( '.edit-php.post-type-product' );
|
565 |
+
var title_action = product_screen.find( '.page-title-action:last' );
|
566 |
+
export_html = '<a href="' + export_url + '#export-product" class="page-title-action" title="Export Products with Store Exporter">' + export_text_override + '</a>';
|
567 |
+
title_action.after( export_html );
|
568 |
+
|
569 |
+
// Adds the Export button to the Category screen
|
570 |
+
var category_screen = $j( '.edit-tags-php.post-type-product.taxonomy-product_cat' );
|
571 |
+
var title_action = category_screen.find( '.wp-heading-inline' );
|
572 |
+
export_html = '<a href="' + export_url + '#export-category" class="page-title-action" title="Export Categories with Store Exporter">' + export_text + '</a>';
|
573 |
+
title_action.after( export_html );
|
574 |
+
|
575 |
+
// Adds the Export button to the Product Tag screen
|
576 |
+
var tag_screen = $j( '.edit-tags-php.post-type-product.taxonomy-product_tag' );
|
577 |
+
var title_action = tag_screen.find( '.wp-heading-inline' );
|
578 |
+
export_html = '<a href="' + export_url + '#export-tag" class="page-title-action" title="Export Product Tags with Store Exporter">' + export_text + '</a>';
|
579 |
+
title_action.after( export_html );
|
580 |
+
|
581 |
+
// Adds the Export button to the Orders screen
|
582 |
+
var order_screen = $j( '.edit-php.post-type-shop_order' );
|
583 |
+
var title_action = order_screen.find( '.page-title-action:last' );
|
584 |
+
export_html = '<a href="' + export_url + '#export-order" class="page-title-action" title="Export Orders with Store Exporter">' + export_text + '</a>';
|
585 |
+
title_action.after( export_html );
|
586 |
+
|
587 |
+
// Adds the Export button to the Users screen
|
588 |
+
var user_screen = $j( '.users-php' );
|
589 |
+
var title_action = user_screen.find( '.page-title-action:last' );
|
590 |
+
export_html = '<a href="' + export_url + '#export-user" class="page-title-action" title="Export Users with Store Exporter">' + export_text + '</a>';
|
591 |
+
title_action.after( export_html );
|
592 |
+
|
593 |
});
|
594 |
|
595 |
});
|