Version Description
No Upgrade required at this time.
Download this release
Release Info
Developer | digitalchild |
Plugin | WC Vendors |
Version | 1.9.1 |
Comparing to | |
See all releases |
Code changes from version 1.9.0 to 1.9.1
- changelog.txt +15 -0
- class-wc-vendors.php +24 -5
- classes/admin/class-admin-users.php +2 -2
- classes/admin/class-vendor-admin-dashboard.php +12 -4
- classes/admin/emails/class-emails.php +1 -1
- classes/admin/settings/classes/sf-class-settings.php +4 -1
- classes/class-vendors.php +1 -1
- classes/front/dashboard/class-vendor-dashboard.php +8 -2
- classes/front/orders/class-orders.php +12 -6
- classes/gateways/PayPal_AdvPayments/paypal_ap.php +12 -10
- readme.txt +16 -1
- templates/dashboard/orders.php +3 -0
changelog.txt
CHANGED
@@ -1,5 +1,20 @@
|
|
1 |
Changelog for WC Vendors
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
Version 1.9.0
|
4 |
|
5 |
* Added: Support for WooCommerce 2.6
|
1 |
Changelog for WC Vendors
|
2 |
|
3 |
+
Version 1.9.1
|
4 |
+
|
5 |
+
* Added: GitHub Plugin URI for afragen/github-updater #282 thanks Agoruh
|
6 |
+
* Added: Edit and View page settings options
|
7 |
+
* Fixed: Missing Argument WCV_Admin_Users::filter_product_types() #288
|
8 |
+
* Fixed: Critical: PHP Fatal error: Call to a member function get_children() #287
|
9 |
+
* Fixed: Date range session data is not working #285
|
10 |
+
* Fixed HTML escaped characters in PaypalAP Cancel and Return URLs: #286 thanks Nicolas
|
11 |
+
* Fixed: Post type check to trigger_new_product() function #276
|
12 |
+
* Fixed: Updated to notices instead of wordpress errors
|
13 |
+
* Fixed: Product attribute fetch and returning HTML #283 thanks Mikko
|
14 |
+
* Fixed: Vendor Mark Shipped Security Fix #280 thanks Agoruh
|
15 |
+
* Fixed: Missing argument in Vendors Class
|
16 |
+
* Fixed: Rounded product commission to avoid error 589023 when submitting to PayPal #275 thanks Nicolas
|
17 |
+
|
18 |
Version 1.9.0
|
19 |
|
20 |
* Added: Support for WooCommerce 2.6
|
class-wc-vendors.php
CHANGED
@@ -6,8 +6,9 @@
|
|
6 |
* Description: Allow vendors to sell their own products and receive a commission for each sale.
|
7 |
* Author: WC Vendors
|
8 |
* Author URI: https://www.wcvendors.com
|
|
|
9 |
*
|
10 |
-
* Version: 1.9.
|
11 |
* Requires at least: 4.0.0
|
12 |
* Tested up to: 4.5.2
|
13 |
*
|
@@ -98,9 +99,10 @@ if ( wcv_is_woocommerce_activated() ) {
|
|
98 |
add_filter( 'plugin_row_meta', array($this, 'plugin_row_meta'), 10, 2 );
|
99 |
add_action( self::$id . '_options_updated', array( $this, 'option_updates' ), 10, 2 );
|
100 |
|
101 |
-
// Start a PHP session, if not yet started
|
102 |
-
|
103 |
-
|
|
|
104 |
}
|
105 |
|
106 |
|
@@ -112,6 +114,23 @@ if ( wcv_is_woocommerce_activated() ) {
|
|
112 |
echo '<div class="error"><p>' . __( '<b>WC Vendors is disabled</b>. WC Vendors requires a minimum of WooCommerce v2.4.0.', 'wcvendors' ) . '</p></div>';
|
113 |
}
|
114 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
115 |
|
116 |
/**
|
117 |
* Check whether install has ran before or not
|
@@ -376,4 +395,4 @@ if ( wcv_is_woocommerce_activated() ) {
|
|
376 |
|
377 |
new WC_Vendors;
|
378 |
|
379 |
-
}
|
6 |
* Description: Allow vendors to sell their own products and receive a commission for each sale.
|
7 |
* Author: WC Vendors
|
8 |
* Author URI: https://www.wcvendors.com
|
9 |
+
* GitHub Plugin URI: https://github.com/wcvendors/wcvendors
|
10 |
*
|
11 |
+
* Version: 1.9.1
|
12 |
* Requires at least: 4.0.0
|
13 |
* Tested up to: 4.5.2
|
14 |
*
|
99 |
add_filter( 'plugin_row_meta', array($this, 'plugin_row_meta'), 10, 2 );
|
100 |
add_action( self::$id . '_options_updated', array( $this, 'option_updates' ), 10, 2 );
|
101 |
|
102 |
+
// Start a PHP session, if not yet started then destroy if logged in or out
|
103 |
+
add_action( 'init', array( $this, 'init_session'), 1 );
|
104 |
+
add_action( 'wp_logout', array( $this, 'destroy_session') );
|
105 |
+
add_action( 'wp_login', array( $this, 'destroy_session') );
|
106 |
}
|
107 |
|
108 |
|
114 |
echo '<div class="error"><p>' . __( '<b>WC Vendors is disabled</b>. WC Vendors requires a minimum of WooCommerce v2.4.0.', 'wcvendors' ) . '</p></div>';
|
115 |
}
|
116 |
|
117 |
+
/**
|
118 |
+
* Start the session
|
119 |
+
*/
|
120 |
+
public function init_session(){
|
121 |
+
|
122 |
+
if ( !session_id() ) {
|
123 |
+
session_start();
|
124 |
+
}
|
125 |
+
|
126 |
+
} //init_session()
|
127 |
+
|
128 |
+
public function destroy_session(){
|
129 |
+
|
130 |
+
session_destroy();
|
131 |
+
|
132 |
+
} // destroy_session()
|
133 |
+
|
134 |
|
135 |
/**
|
136 |
* Check whether install has ran before or not
|
395 |
|
396 |
new WC_Vendors;
|
397 |
|
398 |
+
}
|
classes/admin/class-admin-users.php
CHANGED
@@ -46,7 +46,7 @@ class WCV_Admin_Users
|
|
46 |
|
47 |
add_action( 'admin_menu', array( $this, 'remove_menu_page' ), 99 );
|
48 |
add_action( 'add_meta_boxes', array( $this, 'remove_meta_boxes' ), 99 );
|
49 |
-
add_filter( 'product_type_selector', array( $this, 'filter_product_types' ), 99
|
50 |
add_filter( 'product_type_options', array( $this, 'filter_product_type_options' ), 99 );
|
51 |
add_filter( 'woocommerce_product_data_tabs', array( $this, 'filter_product_data_tabs' ), 99, 2 );
|
52 |
|
@@ -164,7 +164,7 @@ class WCV_Admin_Users
|
|
164 |
*
|
165 |
* @return unknown
|
166 |
*/
|
167 |
-
function filter_product_types( $types
|
168 |
{
|
169 |
|
170 |
$product_types = (array) WC_Vendors::$pv_options->get_option( 'hide_product_types' );
|
46 |
|
47 |
add_action( 'admin_menu', array( $this, 'remove_menu_page' ), 99 );
|
48 |
add_action( 'add_meta_boxes', array( $this, 'remove_meta_boxes' ), 99 );
|
49 |
+
add_filter( 'product_type_selector', array( $this, 'filter_product_types' ), 99 );
|
50 |
add_filter( 'product_type_options', array( $this, 'filter_product_type_options' ), 99 );
|
51 |
add_filter( 'woocommerce_product_data_tabs', array( $this, 'filter_product_data_tabs' ), 99, 2 );
|
52 |
|
164 |
*
|
165 |
* @return unknown
|
166 |
*/
|
167 |
+
function filter_product_types( $types )
|
168 |
{
|
169 |
|
170 |
$product_types = (array) WC_Vendors::$pv_options->get_option( 'hide_product_types' );
|
classes/admin/class-vendor-admin-dashboard.php
CHANGED
@@ -378,6 +378,12 @@ class WCV_Vendor_Order_Page extends WP_List_Table
|
|
378 |
|
379 |
if ( !empty( $ids ) ) {
|
380 |
foreach ($ids as $order_id ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
381 |
$shippers = (array) get_post_meta( $order_id, 'wc_pv_shipped', true );
|
382 |
if( !in_array($user_id, $shippers)) {
|
383 |
$shippers[] = $user_id;
|
@@ -437,11 +443,13 @@ class WCV_Vendor_Order_Page extends WP_List_Table
|
|
437 |
$products = '';
|
438 |
|
439 |
foreach ( $valid as $key => $item ) {
|
|
|
|
|
440 |
|
441 |
$products .= '<strong>'. $item['qty'] . ' x ' . $item['name'] . '</strong><br />';
|
442 |
|
443 |
if ( $metadata = $order->has_meta( $item['product_id'] ) ) {
|
444 |
-
|
445 |
foreach ( $metadata as $meta ) {
|
446 |
|
447 |
// Skip hidden core fields
|
@@ -470,12 +478,12 @@ class WCV_Vendor_Order_Page extends WP_List_Table
|
|
470 |
$meta['meta_key'] = wc_attribute_label( wc_sanitize_taxonomy_name( $meta['meta_key'] ) );
|
471 |
$meta['meta_value'] = isset( $term->name ) ? $term->name : $meta['meta_value'];
|
472 |
} else {
|
473 |
-
$meta['meta_key'] = apply_filters( 'woocommerce_attribute_label', wc_attribute_label( $meta['meta_key'], $
|
474 |
}
|
475 |
|
476 |
-
|
477 |
}
|
478 |
-
|
479 |
}
|
480 |
|
481 |
}
|
378 |
|
379 |
if ( !empty( $ids ) ) {
|
380 |
foreach ($ids as $order_id ) {
|
381 |
+
$order = wc_get_order( $order_id );
|
382 |
+
$vendors = WCV_Vendors::get_vendors_from_order( $order );
|
383 |
+
$vendor_ids = array_keys( $vendors );
|
384 |
+
if ( !in_array( $user_id, $vendor_ids ) ) {
|
385 |
+
wp_die( __( 'You are not allowed to modify this order.', 'wcvendors' ) );
|
386 |
+
}
|
387 |
$shippers = (array) get_post_meta( $order_id, 'wc_pv_shipped', true );
|
388 |
if( !in_array($user_id, $shippers)) {
|
389 |
$shippers[] = $user_id;
|
443 |
$products = '';
|
444 |
|
445 |
foreach ( $valid as $key => $item ) {
|
446 |
+
|
447 |
+
$wc_product = new WC_Product( $item['product_id'] );
|
448 |
|
449 |
$products .= '<strong>'. $item['qty'] . ' x ' . $item['name'] . '</strong><br />';
|
450 |
|
451 |
if ( $metadata = $order->has_meta( $item['product_id'] ) ) {
|
452 |
+
$products .= '<table cellspacing="0" class="wcv_display_meta">';
|
453 |
foreach ( $metadata as $meta ) {
|
454 |
|
455 |
// Skip hidden core fields
|
478 |
$meta['meta_key'] = wc_attribute_label( wc_sanitize_taxonomy_name( $meta['meta_key'] ) );
|
479 |
$meta['meta_value'] = isset( $term->name ) ? $term->name : $meta['meta_value'];
|
480 |
} else {
|
481 |
+
$meta['meta_key'] = apply_filters( 'woocommerce_attribute_label', wc_attribute_label( $meta['meta_key'], $wc_product ), $meta['meta_key'] );
|
482 |
}
|
483 |
|
484 |
+
$products .= '<tr><th>' . wp_kses_post( rawurldecode( $meta['meta_key'] ) ) . ':</th><td>' . wp_kses_post( wpautop( make_clickable( rawurldecode( $meta['meta_value'] ) ) ) ) . '</td></tr>';
|
485 |
}
|
486 |
+
$products .= '</table>';
|
487 |
}
|
488 |
|
489 |
}
|
classes/admin/emails/class-emails.php
CHANGED
@@ -34,7 +34,7 @@ class WCV_Emails
|
|
34 |
{
|
35 |
global $woocommerce;
|
36 |
|
37 |
-
if ( $from != $to && $post->post_status == 'pending' && WCV_Vendors::is_vendor( $post->post_author ) ) {
|
38 |
$mails = $woocommerce->mailer()->get_emails();
|
39 |
if ( !empty( $mails ) ) {
|
40 |
$mails[ 'WC_Email_Notify_Admin' ]->trigger( $post->post_id, $post );
|
34 |
{
|
35 |
global $woocommerce;
|
36 |
|
37 |
+
if ( $from != $to && $post->post_status == 'pending' && WCV_Vendors::is_vendor( $post->post_author ) && $post->post_type == 'product' ) {
|
38 |
$mails = $woocommerce->mailer()->get_emails();
|
39 |
if ( !empty( $mails ) ) {
|
40 |
$mails[ 'WC_Email_Notify_Admin' ]->trigger( $post->post_id, $post );
|
classes/admin/settings/classes/sf-class-settings.php
CHANGED
@@ -779,11 +779,14 @@ if ( !class_exists( 'SF_Settings_API' ) ) {
|
|
779 |
|
780 |
echo str_replace( "'>", "'><option></option>", wp_dropdown_pages( $args ) );
|
781 |
|
|
|
|
|
|
|
782 |
echo $description;
|
783 |
|
784 |
if ( $select2 ) : ?>
|
785 |
<script type="text/javascript">jQuery(function () {
|
786 |
-
jQuery("#<?php echo $id; ?>").select2({ allowClear: true, placeholder: "<?php _e( 'Select a page...', '
|
787 |
});</script>
|
788 |
<?php endif;
|
789 |
|
779 |
|
780 |
echo str_replace( "'>", "'><option></option>", wp_dropdown_pages( $args ) );
|
781 |
|
782 |
+
echo '<a href="post.php?post='.$selected.'&action=edit" class="button">'.__( 'Edit Page', 'wcvendors' ).'</a>';
|
783 |
+
echo '<a href="'.get_permalink( $selected ). '" class="button">'.__( 'View Page', 'wcvendors' ).'</a>';
|
784 |
+
|
785 |
echo $description;
|
786 |
|
787 |
if ( $select2 ) : ?>
|
788 |
<script type="text/javascript">jQuery(function () {
|
789 |
+
jQuery("#<?php echo $id; ?>").select2({ allowClear: true, placeholder: "<?php _e( 'Select a page...', 'wcvendors' ); ?>", width: '350px' });
|
790 |
});</script>
|
791 |
<?php endif;
|
792 |
|
classes/class-vendors.php
CHANGED
@@ -499,7 +499,7 @@ class WCV_Vendors
|
|
499 |
'tax' => $item['line_tax'],
|
500 |
'subtotal_tax' => $item['line_subtotal_tax'],
|
501 |
'tax_data' => maybe_unserialize( $item['line_tax_data'] ),
|
502 |
-
'commission' => WCV_Commission::calculate_commission( $item['line_subtotal'], $item['product_id'], $order ),
|
503 |
);
|
504 |
}
|
505 |
}
|
499 |
'tax' => $item['line_tax'],
|
500 |
'subtotal_tax' => $item['line_subtotal_tax'],
|
501 |
'tax_data' => maybe_unserialize( $item['line_tax_data'] ),
|
502 |
+
'commission' => WCV_Commission::calculate_commission( $item['line_subtotal'], $item['product_id'], $order, $item['qty'] ),
|
503 |
);
|
504 |
}
|
505 |
}
|
classes/front/dashboard/class-vendor-dashboard.php
CHANGED
@@ -32,10 +32,15 @@ class WCV_Vendor_Dashboard
|
|
32 |
$user_id = get_current_user_id();
|
33 |
|
34 |
if ( !empty( $_GET['wc_pv_mark_shipped'] ) ) {
|
35 |
-
$shop_name = WCV_Vendors::get_vendor_shop_name( $user_id );
|
36 |
$order_id = $_GET['wc_pv_mark_shipped'];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
37 |
$shippers = (array) get_post_meta( $order_id, 'wc_pv_shipped', true );
|
38 |
-
$order = new WC_Order( $order_id );
|
39 |
|
40 |
// If not in the shippers array mark as shipped otherwise do nothing.
|
41 |
if( !in_array($user_id, $shippers)) {
|
@@ -46,6 +51,7 @@ class WCV_Vendor_Dashboard
|
|
46 |
}
|
47 |
do_action('wcvendors_vendor_ship', $order_id, $user_id);
|
48 |
wc_add_notice( __( 'Order marked shipped.', 'wcvendors' ), 'success' );
|
|
|
49 |
$order->add_order_note( apply_filters( 'wcvendors_vendor_shipped_note', __( $shop_name . ' has marked as shipped. ', 'wcvendors') ), $user_id ) ;
|
50 |
} elseif ( false != ( $key = array_search( $user_id, $shippers) ) ) {
|
51 |
unset( $shippers[$key] ); // Remove user from the shippers array
|
32 |
$user_id = get_current_user_id();
|
33 |
|
34 |
if ( !empty( $_GET['wc_pv_mark_shipped'] ) ) {
|
|
|
35 |
$order_id = $_GET['wc_pv_mark_shipped'];
|
36 |
+
$order = wc_get_order( $order_id );
|
37 |
+
$vendors = WCV_Vendors::get_vendors_from_order( $order );
|
38 |
+
$vendor_ids = array_keys( $vendors );
|
39 |
+
if ( !in_array( $user_id, $vendor_ids ) ) {
|
40 |
+
wc_add_notice( __( 'You are not allowed to modify this order.', 'wcvendors' ) );
|
41 |
+
return null;
|
42 |
+
}
|
43 |
$shippers = (array) get_post_meta( $order_id, 'wc_pv_shipped', true );
|
|
|
44 |
|
45 |
// If not in the shippers array mark as shipped otherwise do nothing.
|
46 |
if( !in_array($user_id, $shippers)) {
|
51 |
}
|
52 |
do_action('wcvendors_vendor_ship', $order_id, $user_id);
|
53 |
wc_add_notice( __( 'Order marked shipped.', 'wcvendors' ), 'success' );
|
54 |
+
$shop_name = WCV_Vendors::get_vendor_shop_name( $user_id );
|
55 |
$order->add_order_note( apply_filters( 'wcvendors_vendor_shipped_note', __( $shop_name . ' has marked as shipped. ', 'wcvendors') ), $user_id ) ;
|
56 |
} elseif ( false != ( $key = array_search( $user_id, $shippers) ) ) {
|
57 |
unset( $shippers[$key] ); // Remove user from the shippers array
|
classes/front/orders/class-orders.php
CHANGED
@@ -53,11 +53,17 @@ class WCV_Orders
|
|
53 |
$products = array( $this->product_id );
|
54 |
|
55 |
$_product = get_product( $this->product_id );
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
61 |
|
62 |
$this->orders = WCV_Queries::get_orders_for_products( $products, array( 'vendor_id' => get_current_user_id() ) );
|
63 |
|
@@ -111,7 +117,7 @@ class WCV_Orders
|
|
111 |
}
|
112 |
|
113 |
if ( !$this->orders ) {
|
114 |
-
return __( 'No orders.', 'wcvendors' )
|
115 |
}
|
116 |
|
117 |
if ( !empty( $_POST[ 'submit_comment' ] ) ) {
|
53 |
$products = array( $this->product_id );
|
54 |
|
55 |
$_product = get_product( $this->product_id );
|
56 |
+
|
57 |
+
|
58 |
+
if ( is_object( $_product ) ) {
|
59 |
+
|
60 |
+
$children = $_product->get_children();
|
61 |
+
|
62 |
+
if ( !empty( $children ) ) {
|
63 |
+
$products = array_merge($products, $children);
|
64 |
+
$products = array_unique($products);
|
65 |
+
}
|
66 |
+
}
|
67 |
|
68 |
$this->orders = WCV_Queries::get_orders_for_products( $products, array( 'vendor_id' => get_current_user_id() ) );
|
69 |
|
117 |
}
|
118 |
|
119 |
if ( !$this->orders ) {
|
120 |
+
return __( 'No orders.', 'wcvendors' );
|
121 |
}
|
122 |
|
123 |
if ( !empty( $_POST[ 'submit_comment' ] ) ) {
|
classes/gateways/PayPal_AdvPayments/paypal_ap.php
CHANGED
@@ -296,14 +296,14 @@ class WC_PaypalAP extends WC_Payment_Gateway
|
|
296 |
*/
|
297 |
private function get_receivers( $order )
|
298 |
{
|
299 |
-
$response = array();
|
300 |
|
301 |
-
// Process the payment and split as required
|
302 |
-
if ( $this->instapay ) {
|
303 |
|
304 |
$receivers = WCV_Vendors::get_vendor_dues_from_order( $order );
|
305 |
$i = 0;
|
306 |
-
|
307 |
foreach ( $receivers as $author => $values ) {
|
308 |
if ( empty( $values[ 'total' ] ) ) continue;
|
309 |
|
@@ -315,15 +315,15 @@ class WC_PaypalAP extends WC_Payment_Gateway
|
|
315 |
$i++;
|
316 |
}
|
317 |
|
318 |
-
} else {
|
319 |
// Send all monies to the site admin
|
320 |
$single_receiver = new Receiver();
|
321 |
$single_receiver->email = $this->main_paypal;
|
322 |
-
$single_receiver->amount = $order->get_total();
|
323 |
$single_receiver->primary = false;
|
324 |
$single_receiver->invoiceId = $order->id;
|
325 |
-
// Set a single reciever for the transaction
|
326 |
-
$response[] = $single_receiver;
|
327 |
}
|
328 |
|
329 |
if ( $this->debug_me ) {
|
@@ -353,9 +353,9 @@ class WC_PaypalAP extends WC_Payment_Gateway
|
|
353 |
$receiverList = new ReceiverList( $receivers );
|
354 |
|
355 |
$actionType = 'CREATE';
|
356 |
-
$cancelUrl = $order->
|
357 |
$currencyCode = get_woocommerce_currency();
|
358 |
-
$returnUrl =
|
359 |
|
360 |
$payRequest = new PayRequest( new RequestEnvelope( "en_US" ), $actionType, $cancelUrl, $currencyCode, $receiverList, $returnUrl );
|
361 |
|
@@ -425,6 +425,8 @@ class WC_PaypalAP extends WC_Payment_Gateway
|
|
425 |
$shipping_given += $product[ 'shipping' ];
|
426 |
$tax_given += $product[ 'tax' ];
|
427 |
|
|
|
|
|
428 |
if ( !empty( $product[ 'commission' ] ) ) {
|
429 |
$item = new InvoiceItem();
|
430 |
$item->name = get_the_title( $product_id );
|
296 |
*/
|
297 |
private function get_receivers( $order )
|
298 |
{
|
299 |
+
$response = array();
|
300 |
|
301 |
+
// Process the payment and split as required
|
302 |
+
if ( $this->instapay ) {
|
303 |
|
304 |
$receivers = WCV_Vendors::get_vendor_dues_from_order( $order );
|
305 |
$i = 0;
|
306 |
+
|
307 |
foreach ( $receivers as $author => $values ) {
|
308 |
if ( empty( $values[ 'total' ] ) ) continue;
|
309 |
|
315 |
$i++;
|
316 |
}
|
317 |
|
318 |
+
} else {
|
319 |
// Send all monies to the site admin
|
320 |
$single_receiver = new Receiver();
|
321 |
$single_receiver->email = $this->main_paypal;
|
322 |
+
$single_receiver->amount = $order->get_total();
|
323 |
$single_receiver->primary = false;
|
324 |
$single_receiver->invoiceId = $order->id;
|
325 |
+
// Set a single reciever for the transaction
|
326 |
+
$response[] = $single_receiver;
|
327 |
}
|
328 |
|
329 |
if ( $this->debug_me ) {
|
353 |
$receiverList = new ReceiverList( $receivers );
|
354 |
|
355 |
$actionType = 'CREATE';
|
356 |
+
$cancelUrl = $order->get_cancel_order_url_raw();
|
357 |
$currencyCode = get_woocommerce_currency();
|
358 |
+
$returnUrl = esc_url_raw( add_query_arg( 'key', $order->order_key, add_query_arg( 'order-received', $order->id, $order->get_checkout_order_received_url() ) ) );
|
359 |
|
360 |
$payRequest = new PayRequest( new RequestEnvelope( "en_US" ), $actionType, $cancelUrl, $currencyCode, $receiverList, $returnUrl );
|
361 |
|
425 |
$shipping_given += $product[ 'shipping' ];
|
426 |
$tax_given += $product[ 'tax' ];
|
427 |
|
428 |
+
$product[ 'commission' ] = round( $product[ 'commission' ] , 2);
|
429 |
+
|
430 |
if ( !empty( $product[ 'commission' ] ) ) {
|
431 |
$item = new InvoiceItem();
|
432 |
$item->name = get_the_title( $product_id );
|
readme.txt
CHANGED
@@ -6,7 +6,7 @@ Author URI: http://www.wcvendors.com/
|
|
6 |
Plugin URI: http://www.wcvendors.com/
|
7 |
Requires at least: 4.0
|
8 |
Tested up to: 4.5.2
|
9 |
-
Stable tag: 1.9.
|
10 |
License: GPLv2 or later
|
11 |
|
12 |
The free multi-vendor plugin for WooCommerce. Now you can allow anyone to open a store on your site!
|
@@ -120,6 +120,21 @@ No Upgrade required at this time.
|
|
120 |
|
121 |
== Changelog ==
|
122 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
123 |
= Version 1.9.0 - 25th of May 2016
|
124 |
|
125 |
* Added: Support for WooCommerce 2.6
|
6 |
Plugin URI: http://www.wcvendors.com/
|
7 |
Requires at least: 4.0
|
8 |
Tested up to: 4.5.2
|
9 |
+
Stable tag: 1.9.1
|
10 |
License: GPLv2 or later
|
11 |
|
12 |
The free multi-vendor plugin for WooCommerce. Now you can allow anyone to open a store on your site!
|
120 |
|
121 |
== Changelog ==
|
122 |
|
123 |
+
= Version 1.9.1 - 17th of June 2016
|
124 |
+
|
125 |
+
* Added: GitHub Plugin URI for afragen/github-updater #282 thanks Agoruh
|
126 |
+
* Added: Edit and View page settings options
|
127 |
+
* Fixed: Missing Argument WCV_Admin_Users::filter_product_types() #288
|
128 |
+
* Fixed: Critical: PHP Fatal error: Call to a member function get_children() #287
|
129 |
+
* Fixed: Date range session data is not working #285
|
130 |
+
* Fixed HTML escaped characters in PaypalAP Cancel and Return URLs: #286 thanks Nicolas
|
131 |
+
* Fixed: Post type check to trigger_new_product() function #276
|
132 |
+
* Fixed: Updated to notices instead of wordpress errors
|
133 |
+
* Fixed: Product attribute fetch and returning HTML #283 thanks Mikko
|
134 |
+
* Fixed: Vendor Mark Shipped Security Fix #280 thanks Agoruh
|
135 |
+
* Fixed: Missing argument in Vendors Class
|
136 |
+
* Fixed: Rounded product commission to avoid error 589023 when submitting to PayPal #275 thanks Nicolas
|
137 |
+
|
138 |
= Version 1.9.0 - 25th of May 2016
|
139 |
|
140 |
* Added: Support for WooCommerce 2.6
|
templates/dashboard/orders.php
CHANGED
@@ -127,6 +127,9 @@ jQuery(function () {
|
|
127 |
foreach ($valid as $key => $item):
|
128 |
|
129 |
$product_id = !empty( $item['variation_id'] ) ? $item['variation_id'] : $item['product_id'];
|
|
|
|
|
|
|
130 |
$item_meta = new WC_Order_Item_Meta( $item );
|
131 |
$item_meta = $item_meta->display( false, true ); ?>
|
132 |
<?php echo $item['qty'] . 'x ' . $item['name']; ?>
|
127 |
foreach ($valid as $key => $item):
|
128 |
|
129 |
$product_id = !empty( $item['variation_id'] ) ? $item['variation_id'] : $item['product_id'];
|
130 |
+
|
131 |
+
$_product = $order->get_product_from_item( $item );
|
132 |
+
|
133 |
$item_meta = new WC_Order_Item_Meta( $item );
|
134 |
$item_meta = $item_meta->display( false, true ); ?>
|
135 |
<?php echo $item['qty'] . 'x ' . $item['name']; ?>
|