Version Description
07/05/2018 =
New - Add extra log message "Start process_payment for order ..."
Fix - Fix "Uncaught Error: Call to undefined function wcs_order_contains_renewal()" when users don't have WooCommerce Subscriptions installed
Fix - Improve condition(s) for disableMollieOnPaymentMethodChange, make sure not to disable payment methods on checkout (because of is_account_page() false positives, bug in WooCommerce)
Fix - Improve is_available() check for minimum/maximum amounts, better check renewal payment amounts
Download this release
Release Info
Developer | davdebcom |
Plugin | Mollie Payments for WooCommerce |
Version | 3.0.2 |
Comparing to | |
See all releases |
Code changes from version 3.0.1 to 3.0.2
includes/mollie/wc/gateway/abstract.php
CHANGED
@@ -268,26 +268,48 @@ abstract class Mollie_WC_Gateway_Abstract extends WC_Payment_Gateway
|
|
268 |
// Only in WooCommerce checkout, check min/max amounts
|
269 |
if ( WC()->cart ) {
|
270 |
|
271 |
-
//
|
272 |
$order_total = $this->get_order_total();
|
273 |
|
274 |
-
//
|
275 |
-
if (
|
276 |
-
|
277 |
-
|
|
|
|
|
|
|
|
|
|
|
278 |
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
return false;
|
284 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
285 |
|
286 |
-
// Validate max amount
|
287 |
-
if ( 0 < $this->max_amount && $this->max_amount < $order_total ) {
|
288 |
-
return false;
|
289 |
}
|
|
|
290 |
}
|
|
|
291 |
}
|
292 |
|
293 |
return true;
|
@@ -323,6 +345,12 @@ abstract class Mollie_WC_Gateway_Abstract extends WC_Payment_Gateway
|
|
323 |
return array ( 'result' => 'failure' );
|
324 |
}
|
325 |
|
|
|
|
|
|
|
|
|
|
|
|
|
326 |
$initial_order_status = $this->getInitialOrderStatus();
|
327 |
|
328 |
// Overwrite plugin-wide
|
@@ -1636,11 +1664,15 @@ abstract class Mollie_WC_Gateway_Abstract extends WC_Payment_Gateway
|
|
1636 |
|
1637 |
if ( isset( WC()->cart ) ) {
|
1638 |
|
1639 |
-
|
1640 |
-
|
1641 |
-
|
1642 |
-
|
1643 |
-
$
|
|
|
|
|
|
|
|
|
1644 |
}
|
1645 |
}
|
1646 |
|
268 |
// Only in WooCommerce checkout, check min/max amounts
|
269 |
if ( WC()->cart ) {
|
270 |
|
271 |
+
// Check the current (normal) order total
|
272 |
$order_total = $this->get_order_total();
|
273 |
|
274 |
+
// Don't check SEPA Direct Debit, as it's only available for recurring payments
|
275 |
+
if ( $this->id !== 'mollie_wc_gateway_directdebit' ) {
|
276 |
+
|
277 |
+
// If order total is more then zero, check min/max amounts
|
278 |
+
if ( $order_total > 0 ) {
|
279 |
+
// Validate min amount
|
280 |
+
if ( 0 < $this->min_amount && $this->min_amount > $order_total ) {
|
281 |
+
return false;
|
282 |
+
}
|
283 |
|
284 |
+
// Validate max amount
|
285 |
+
if ( 0 < $this->max_amount && $this->max_amount < $order_total ) {
|
286 |
+
return false;
|
287 |
+
}
|
|
|
288 |
}
|
289 |
+
}
|
290 |
+
|
291 |
+
// If WooCommerce Subscriptions is installed, also check recurring order total
|
292 |
+
if ( class_exists( 'WC_Subscriptions' ) ) {
|
293 |
+
|
294 |
+
foreach ( $this->get_recurring_total() as $order_total ) {
|
295 |
+
|
296 |
+
// If order total is more then zero, check min/max amounts
|
297 |
+
if ( $order_total > 0 ) {
|
298 |
+
// Validate min amount
|
299 |
+
if ( 0 < $this->min_amount && $this->min_amount > $order_total ) {
|
300 |
+
return false;
|
301 |
+
}
|
302 |
+
|
303 |
+
// Validate max amount
|
304 |
+
if ( 0 < $this->max_amount && $this->max_amount < $order_total ) {
|
305 |
+
return false;
|
306 |
+
}
|
307 |
+
}
|
308 |
|
|
|
|
|
|
|
309 |
}
|
310 |
+
|
311 |
}
|
312 |
+
|
313 |
}
|
314 |
|
315 |
return true;
|
345 |
return array ( 'result' => 'failure' );
|
346 |
}
|
347 |
|
348 |
+
if ( version_compare( WC_VERSION, '3.0', '<' ) ) {
|
349 |
+
Mollie_WC_Plugin::debug( $this->id . ': Start process_payment for order ' . $order->id, true );
|
350 |
+
} else {
|
351 |
+
Mollie_WC_Plugin::debug( $this->id . ': Start process_payment for order ' . $order->get_id(), true );
|
352 |
+
}
|
353 |
+
|
354 |
$initial_order_status = $this->getInitialOrderStatus();
|
355 |
|
356 |
// Overwrite plugin-wide
|
1664 |
|
1665 |
if ( isset( WC()->cart ) ) {
|
1666 |
|
1667 |
+
$this->recurring_total = array (); // Reset for cached carts
|
1668 |
+
|
1669 |
+
foreach ( WC()->cart->recurring_carts as $cart ) {
|
1670 |
+
|
1671 |
+
if ( ! $cart->prices_include_tax ) {
|
1672 |
+
$this->recurring_total[] = $cart->cart_contents_total;
|
1673 |
+
} else {
|
1674 |
+
$this->recurring_total[] = $cart->cart_contents_total + $cart->tax_total;
|
1675 |
+
}
|
1676 |
}
|
1677 |
}
|
1678 |
|
includes/mollie/wc/gateway/abstractsubscription.php
CHANGED
@@ -709,7 +709,7 @@ abstract class Mollie_WC_Gateway_AbstractSubscription extends Mollie_WC_Gateway_
|
|
709 |
// Add messages to log
|
710 |
Mollie_WC_Plugin::debug( __METHOD__ . ' called for order ' . $order_id );
|
711 |
|
712 |
-
if ( wcs_order_contains_renewal( $order_id ) ) {
|
713 |
|
714 |
// New order status
|
715 |
$new_order_status = self::STATUS_ON_HOLD;
|
@@ -735,7 +735,7 @@ abstract class Mollie_WC_Gateway_AbstractSubscription extends Mollie_WC_Gateway_
|
|
735 |
$restore_stock = false
|
736 |
);
|
737 |
|
738 |
-
Mollie_WC_Plugin::debug( __METHOD__ . ' called for order ' . $order_id . ' and payment ' . $payment->id . ', renewal order payment failed, order set to On-Hold for shop-owner review.
|
739 |
|
740 |
|
741 |
// Send a "Failed order" email to notify the admin
|
709 |
// Add messages to log
|
710 |
Mollie_WC_Plugin::debug( __METHOD__ . ' called for order ' . $order_id );
|
711 |
|
712 |
+
if ( function_exists( 'wcs_order_contains_renewal' ) && wcs_order_contains_renewal( $order_id ) ) {
|
713 |
|
714 |
// New order status
|
715 |
$new_order_status = self::STATUS_ON_HOLD;
|
735 |
$restore_stock = false
|
736 |
);
|
737 |
|
738 |
+
Mollie_WC_Plugin::debug( __METHOD__ . ' called for order ' . $order_id . ' and payment ' . $payment->id . ', renewal order payment failed, order set to On-Hold for shop-owner review.' );
|
739 |
|
740 |
|
741 |
// Send a "Failed order" email to notify the admin
|
includes/mollie/wc/plugin.php
CHANGED
@@ -7,7 +7,7 @@ class Mollie_WC_Plugin
|
|
7 |
{
|
8 |
const PLUGIN_ID = 'mollie-payments-for-woocommerce';
|
9 |
const PLUGIN_TITLE = 'Mollie Payments for WooCommerce';
|
10 |
-
const PLUGIN_VERSION = '3.0.
|
11 |
|
12 |
const DB_VERSION = '1.0';
|
13 |
const DB_VERSION_PARAM_NAME = 'mollie-db-version';
|
@@ -524,13 +524,17 @@ class Mollie_WC_Plugin
|
|
524 |
// because slugs/endpoints can be translated (with WPML) and other plugins.
|
525 |
// So disabling on is_account_page and $_GET['change_payment_method'] for now.
|
526 |
|
527 |
-
|
528 |
-
|
529 |
-
|
530 |
-
|
|
|
|
|
|
|
|
|
|
|
531 |
}
|
532 |
}
|
533 |
-
|
534 |
}
|
535 |
|
536 |
return $available_gateways;
|
7 |
{
|
8 |
const PLUGIN_ID = 'mollie-payments-for-woocommerce';
|
9 |
const PLUGIN_TITLE = 'Mollie Payments for WooCommerce';
|
10 |
+
const PLUGIN_VERSION = '3.0.2';
|
11 |
|
12 |
const DB_VERSION = '1.0';
|
13 |
const DB_VERSION_PARAM_NAME = 'mollie-db-version';
|
524 |
// because slugs/endpoints can be translated (with WPML) and other plugins.
|
525 |
// So disabling on is_account_page and $_GET['change_payment_method'] for now.
|
526 |
|
527 |
+
// Only disable payment methods if WooCommerce Subscriptions is installed
|
528 |
+
if ( class_exists( 'WC_Subscription' ) ) {
|
529 |
+
// Do not disable is account page is also checkout, do disable on change payment method page (param)
|
530 |
+
if ( ( ! is_checkout() && is_account_page() ) || ! empty( $_GET['change_payment_method'] ) ) {
|
531 |
+
// Final check, disable on is_account_page and on Change payment method
|
532 |
+
foreach ( $available_gateways as $key => $value ) {
|
533 |
+
if ( strpos( $key, 'mollie_' ) !== false ) {
|
534 |
+
unset( $available_gateways[ $key ] );
|
535 |
+
}
|
536 |
}
|
537 |
}
|
|
|
538 |
}
|
539 |
|
540 |
return $available_gateways;
|
mollie-payments-for-woocommerce.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Plugin Name: Mollie Payments for WooCommerce
|
4 |
* Plugin URI: https://www.mollie.com
|
5 |
* Description: Accept payments in WooCommerce with the official Mollie plugin
|
6 |
-
* Version: 3.0.
|
7 |
* Author: Mollie
|
8 |
* Author URI: https://www.mollie.com
|
9 |
* Requires at least: 3.8
|
@@ -12,7 +12,7 @@
|
|
12 |
* Domain Path: /i18n/languages/
|
13 |
* License: GPLv2 or later
|
14 |
* WC requires at least: 2.2.0
|
15 |
-
* WC tested up to: 3.
|
16 |
*/
|
17 |
|
18 |
// Exit if accessed directly.
|
3 |
* Plugin Name: Mollie Payments for WooCommerce
|
4 |
* Plugin URI: https://www.mollie.com
|
5 |
* Description: Accept payments in WooCommerce with the official Mollie plugin
|
6 |
+
* Version: 3.0.2
|
7 |
* Author: Mollie
|
8 |
* Author URI: https://www.mollie.com
|
9 |
* Requires at least: 3.8
|
12 |
* Domain Path: /i18n/languages/
|
13 |
* License: GPLv2 or later
|
14 |
* WC requires at least: 2.2.0
|
15 |
+
* WC tested up to: 3.4
|
16 |
*/
|
17 |
|
18 |
// Exit if accessed directly.
|
readme.txt
CHANGED
@@ -3,8 +3,7 @@ Contributors: daanvm, davdebcom, l.vangunst, ndijkstra, robin-mollie
|
|
3 |
Tags: mollie, payments, woocommerce, payment gateway, e-commerce, credit card, ideal, sofort, bancontact, bitcoin, direct debit, subscriptions
|
4 |
Requires at least: 3.8
|
5 |
Tested up to: 4.9
|
6 |
-
|
7 |
-
Stable tag: 3.0.1
|
8 |
Requires PHP: 5.3
|
9 |
License: GPLv2 or later
|
10 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
@@ -164,6 +163,13 @@ Automatic updates should work like a charm; as always though, ensure you backup
|
|
164 |
|
165 |
== Changelog ==
|
166 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
167 |
= 3.0.1 - 17/04/2018 =
|
168 |
|
169 |
* [Fix/Revert, see issue 173](https://github.com/mollie/WooCommerce/issues/173) - Improve support for Polylang option "Hide URL language information for default language" in webhook and return URLs
|
3 |
Tags: mollie, payments, woocommerce, payment gateway, e-commerce, credit card, ideal, sofort, bancontact, bitcoin, direct debit, subscriptions
|
4 |
Requires at least: 3.8
|
5 |
Tested up to: 4.9
|
6 |
+
Stable tag: 3.0.2
|
|
|
7 |
Requires PHP: 5.3
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
163 |
|
164 |
== Changelog ==
|
165 |
|
166 |
+
= 3.0.2 - 07/05/2018 =
|
167 |
+
|
168 |
+
* New - Add extra log message "Start process_payment for order ..."
|
169 |
+
* Fix - Fix "Uncaught Error: Call to undefined function wcs_order_contains_renewal()" when users don't have WooCommerce Subscriptions installed
|
170 |
+
* Fix - Improve condition(s) for disableMollieOnPaymentMethodChange, make sure not to disable payment methods on checkout (because of is_account_page() false positives, bug in WooCommerce)
|
171 |
+
* Fix - Improve is_available() check for minimum/maximum amounts, better check renewal payment amounts
|
172 |
+
|
173 |
= 3.0.1 - 17/04/2018 =
|
174 |
|
175 |
* [Fix/Revert, see issue 173](https://github.com/mollie/WooCommerce/issues/173) - Improve support for Polylang option "Hide URL language information for default language" in webhook and return URLs
|