Version Description
- BUG: Fixed SQL in pmpro_changeMembershipLevel that caused issues with some MySQL setups.
- BUG: Fixed URL PayPal Express and PayPal standard redirect to at checkout. (Although the incorrect URL was still working on the PayPal side.)
- BUG: Addon page now passes $status to the plugin_row_meta filter to fix warnings that were sometimes showing up. (Thanks, jawhite)
- BUG: Fixed typo in the pmpro_orders_csv_extra_columns filter introduced in 1.8.9.1. (Thanks, Johannes Jokelin)
Download this release
Release Info
Developer | strangerstudios |
Plugin | Paid Memberships Pro |
Version | 1.8.9.2 |
Comparing to | |
See all releases |
Code changes from version 1.8.9.1 to 1.8.9.2
- adminpages/orders-csv.php +2 -1
- classes/gateways/class.pmprogateway_paypalexpress.php +2 -2
- includes/functions.php +46 -50
- includes/upgradecheck.php +14 -3
- paid-memberships-pro.php +2 -2
- readme.txt +9 -2
adminpages/orders-csv.php
CHANGED
@@ -316,7 +316,8 @@ $csv_file_header_array = apply_filters( "pmpro_order_list_csv_export_header_arra
|
|
316 |
$dateformat = apply_filters( 'pmpro_order_list_csv_dateformat', get_option( 'date_format' ) . ' ' . get_option( 'time_format' ) );
|
317 |
|
318 |
//any extra columns
|
319 |
-
$extra_columns = apply_filters( "
|
|
|
320 |
|
321 |
if ( ! empty( $extra_columns ) ) {
|
322 |
foreach ( $extra_columns as $heading => $callback ) {
|
316 |
$dateformat = apply_filters( 'pmpro_order_list_csv_dateformat', get_option( 'date_format' ) . ' ' . get_option( 'time_format' ) );
|
317 |
|
318 |
//any extra columns
|
319 |
+
$extra_columns = apply_filters( "pmpro_orders_csv_extra_columns", array() ); //the original filter
|
320 |
+
$extra_columns = apply_filters( "pmpro_order_list_csv_extra_columns", $extra_columns ); //in case anyone used the typo'd filter
|
321 |
|
322 |
if ( ! empty( $extra_columns ) ) {
|
323 |
foreach ( $extra_columns as $heading => $callback ) {
|
classes/gateways/class.pmprogateway_paypalexpress.php
CHANGED
@@ -547,11 +547,11 @@
|
|
547 |
$order->saveOrder();
|
548 |
|
549 |
//redirect to paypal
|
550 |
-
$paypal_url = "https://www.paypal.com/webscr
|
551 |
$environment = pmpro_getOption("gateway_environment");
|
552 |
if("sandbox" === $environment || "beta-sandbox" === $environment)
|
553 |
{
|
554 |
-
$paypal_url = "https://www.sandbox.paypal.com/webscr
|
555 |
}
|
556 |
|
557 |
wp_redirect($paypal_url);
|
547 |
$order->saveOrder();
|
548 |
|
549 |
//redirect to paypal
|
550 |
+
$paypal_url = "https://www.paypal.com/webscr?cmd=_express-checkout&useraction=commit&token=" . $this->httpParsedResponseAr['TOKEN'];
|
551 |
$environment = pmpro_getOption("gateway_environment");
|
552 |
if("sandbox" === $environment || "beta-sandbox" === $environment)
|
553 |
{
|
554 |
+
$paypal_url = "https://www.sandbox.paypal.com/webscr?cmd=_express-checkout&useraction=commit&token=" . $this->httpParsedResponseAr['TOKEN'];
|
555 |
}
|
556 |
|
557 |
wp_redirect($paypal_url);
|
includes/functions.php
CHANGED
@@ -849,63 +849,59 @@ function pmpro_changeMembershipLevel($level, $user_id = NULL, $old_level_status
|
|
849 |
|
850 |
//insert current membership
|
851 |
if(!empty($level)) //are we getting a new one or just cancelling the old ones
|
852 |
-
{
|
|
|
853 |
if(is_array($level))
|
854 |
{
|
855 |
-
//make sure the dates are in good formats
|
856 |
-
if($level['startdate'] != current_time('mysql') && $level['startdate'] != "NULL" && substr($level['startdate'], 0, 1) != "'")
|
857 |
-
$level['startdate'] = "'" . $level['startdate'] . "'";
|
858 |
-
|
859 |
-
if($level['enddate'] != current_time('mysql') && $level['enddate'] != "NULL" && substr($level['enddate'], 0, 1) != "'")
|
860 |
-
$level['enddate'] = "'" . $level['enddate'] . "'";
|
861 |
-
|
862 |
//Better support mySQL Strict Mode by passing a proper enum value for cycle_period
|
863 |
-
if ($level['cycle_period'] == '') $level['cycle_period'] = 0;
|
864 |
-
|
865 |
-
$sql =
|
866 |
-
|
867 |
-
|
868 |
-
|
869 |
-
|
870 |
-
|
871 |
-
|
872 |
-
|
873 |
-
|
874 |
-
|
875 |
-
|
876 |
-
|
877 |
-
|
878 |
-
|
879 |
-
|
880 |
-
|
881 |
-
$
|
882 |
-
|
883 |
-
}
|
884 |
}
|
885 |
else
|
886 |
{
|
887 |
-
$sql =
|
888 |
-
|
889 |
-
|
890 |
-
|
891 |
-
|
892 |
-
|
893 |
-
|
894 |
-
|
895 |
-
|
896 |
-
|
897 |
-
|
898 |
-
|
899 |
-
|
900 |
-
|
901 |
-
|
902 |
-
|
903 |
-
|
904 |
-
|
905 |
-
$pmpro_error = __("Error interacting with database", "pmpro") . ": ".($wpdb->last_error?$wpdb->last_error:'unavailable');
|
906 |
-
return false;
|
907 |
-
}
|
908 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
909 |
}
|
910 |
|
911 |
//remove cached level
|
849 |
|
850 |
//insert current membership
|
851 |
if(!empty($level)) //are we getting a new one or just cancelling the old ones
|
852 |
+
{
|
853 |
+
//make sure the dates are in good formats
|
854 |
if(is_array($level))
|
855 |
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
856 |
//Better support mySQL Strict Mode by passing a proper enum value for cycle_period
|
857 |
+
if ($level['cycle_period'] == '') { $level['cycle_period'] = 0; }
|
858 |
+
|
859 |
+
$sql = $wpdb->prepare("
|
860 |
+
INSERT INTO {$wpdb->pmpro_memberships_users}
|
861 |
+
(`user_id`, `membership_id`, `code_id`, `initial_payment`, `billing_amount`, `cycle_number`, `cycle_period`, `billing_limit`, `trial_amount`, `trial_limit`, `startdate`, `enddate`)
|
862 |
+
VALUES
|
863 |
+
( %d, %d, %d, %s, %s, %d, %s, %d, %s, %d, %s, %s )",
|
864 |
+
$level['user_id'], // integer
|
865 |
+
$level['membership_id'], // integer
|
866 |
+
$level['code_id'], // integer
|
867 |
+
$level['initial_payment'], // float (string)
|
868 |
+
$level['billing_amount'], // float (string)
|
869 |
+
$level['cycle_number'], // integer
|
870 |
+
$level['cycle_period'], // string (enum)
|
871 |
+
$level['billing_limit'], // integer
|
872 |
+
$level['trial_amount'], // float (string)
|
873 |
+
$level['trial_limit'], // integer
|
874 |
+
$level['startdate'], // string (date)
|
875 |
+
$level['enddate'] // string (date)
|
876 |
+
);
|
|
|
877 |
}
|
878 |
else
|
879 |
{
|
880 |
+
$sql = $wpdb->prepare("
|
881 |
+
INSERT INTO {$wpdb->pmpro_memberships_users}
|
882 |
+
( `user_id`, `membership_id`, `code_id`, `initial_payment`, `billing_amount`, `cycle_number`, `cycle_period`, `billing_limit`, `trial_amount`, `trial_limit`, `startdate`, `enddate`)
|
883 |
+
VALUES
|
884 |
+
( %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %s, %s )",
|
885 |
+
$user_id,
|
886 |
+
$level_id,
|
887 |
+
'0',
|
888 |
+
'0',
|
889 |
+
'0',
|
890 |
+
'0',
|
891 |
+
'0',
|
892 |
+
'0',
|
893 |
+
'0',
|
894 |
+
'0',
|
895 |
+
current_time('mysql'),
|
896 |
+
'0000-00-00 00:00:00'
|
897 |
+
);
|
|
|
|
|
|
|
898 |
}
|
899 |
+
|
900 |
+
if( false === $wpdb->query($sql) )
|
901 |
+
{
|
902 |
+
$pmpro_error = sprintf( __("Error interacting with database: %s", "pmpro"), (!empty($wpdb->last_error) ? $wpdb->last_error : 'unavailable' ));
|
903 |
+
return false;
|
904 |
+
}
|
905 |
}
|
906 |
|
907 |
//remove cached level
|
includes/upgradecheck.php
CHANGED
@@ -163,7 +163,18 @@ function pmpro_checkForUpgrades()
|
|
163 |
require_once(PMPRO_DIR . "/includes/updates/upgrade_1_8_9_1.php");
|
164 |
if($pmpro_db_version < 1.891) {
|
165 |
$pmpro_db_version = pmpro_upgrade_1_8_9_1();
|
166 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
167 |
}
|
168 |
|
169 |
function pmpro_db_delta()
|
@@ -211,7 +222,7 @@ function pmpro_db_delta()
|
|
211 |
$sqlQuery = "
|
212 |
CREATE TABLE `" . $wpdb->pmpro_membership_orders . "` (
|
213 |
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
|
214 |
-
`code` varchar(
|
215 |
`session_id` varchar(64) NOT NULL DEFAULT '',
|
216 |
`user_id` int(11) unsigned NOT NULL DEFAULT '0',
|
217 |
`membership_id` int(11) unsigned NOT NULL DEFAULT '0',
|
@@ -377,4 +388,4 @@ function pmpro_db_delta()
|
|
377 |
);
|
378 |
";
|
379 |
dbDelta($sqlQuery);
|
380 |
-
}
|
163 |
require_once(PMPRO_DIR . "/includes/updates/upgrade_1_8_9_1.php");
|
164 |
if($pmpro_db_version < 1.891) {
|
165 |
$pmpro_db_version = pmpro_upgrade_1_8_9_1();
|
166 |
+
}
|
167 |
+
|
168 |
+
/*
|
169 |
+
v1.9
|
170 |
+
* Changed 'code' column of pmpro_membership_orders table to 32 characters.
|
171 |
+
*/
|
172 |
+
if($pmpro_db_version < 1.9) {
|
173 |
+
pmpro_db_delta();
|
174 |
+
|
175 |
+
$pmpro_db_version = 1.9;
|
176 |
+
pmpro_setOption("db_version", "1.9");
|
177 |
+
}
|
178 |
}
|
179 |
|
180 |
function pmpro_db_delta()
|
222 |
$sqlQuery = "
|
223 |
CREATE TABLE `" . $wpdb->pmpro_membership_orders . "` (
|
224 |
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
|
225 |
+
`code` varchar(32) NOT NULL,
|
226 |
`session_id` varchar(64) NOT NULL DEFAULT '',
|
227 |
`user_id` int(11) unsigned NOT NULL DEFAULT '0',
|
228 |
`membership_id` int(11) unsigned NOT NULL DEFAULT '0',
|
388 |
);
|
389 |
";
|
390 |
dbDelta($sqlQuery);
|
391 |
+
}
|
paid-memberships-pro.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
Plugin Name: Paid Memberships Pro
|
4 |
Plugin URI: http://www.paidmembershipspro.com
|
5 |
Description: Plugin to Handle Memberships
|
6 |
-
Version: 1.8.9.
|
7 |
Author: Stranger Studios
|
8 |
Author URI: http://www.strangerstudios.com
|
9 |
*/
|
@@ -13,7 +13,7 @@ Author URI: http://www.strangerstudios.com
|
|
13 |
*/
|
14 |
|
15 |
//version constant
|
16 |
-
define("PMPRO_VERSION", "1.8.9.
|
17 |
define("PMPRO_USER_AGENT", "Paid Memberships Pro v" . PMPRO_VERSION . "; " . site_url());
|
18 |
|
19 |
//if the session has been started yet, start it (ignore if running from command line)
|
3 |
Plugin Name: Paid Memberships Pro
|
4 |
Plugin URI: http://www.paidmembershipspro.com
|
5 |
Description: Plugin to Handle Memberships
|
6 |
+
Version: 1.8.9.2
|
7 |
Author: Stranger Studios
|
8 |
Author URI: http://www.strangerstudios.com
|
9 |
*/
|
13 |
*/
|
14 |
|
15 |
//version constant
|
16 |
+
define("PMPRO_VERSION", "1.8.9.2");
|
17 |
define("PMPRO_USER_AGENT", "Paid Memberships Pro v" . PMPRO_VERSION . "; " . site_url());
|
18 |
|
19 |
//if the session has been started yet, start it (ignore if running from command line)
|
readme.txt
CHANGED
@@ -2,8 +2,8 @@
|
|
2 |
Contributors: strangerstudios
|
3 |
Tags: memberships, membership, authorize.net, ecommerce, paypal, stripe, braintree, restrict access, restrict content, directory site, payflow
|
4 |
Requires at least: 3.5
|
5 |
-
Tested up to: 4.5
|
6 |
-
Stable tag: 1.8.9.
|
7 |
|
8 |
A revenue-generating machine for membership sites. Unlimited levels with recurring payment, protected content and member management.
|
9 |
|
@@ -115,6 +115,13 @@ Not sure? You can find out by doing a bit a research.
|
|
115 |
[View All Screenshots](http://www.paidmembershipspro.com/features/screenshots/)
|
116 |
|
117 |
== Changelog ==
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
118 |
= 1.8.9.1 =
|
119 |
* BUG: Fixed bug where some recurring orders members who checked out with Stripe in very old versions of PMPro would show up as orders with a blank user_id and membership_id. This update includes a fix for this and an update script to fix old orders affected by this.
|
120 |
* BUG: Fixed bug where the Stripe class activation/deactivation methods were setup too late to actually run on activation/deactivation.
|
2 |
Contributors: strangerstudios
|
3 |
Tags: memberships, membership, authorize.net, ecommerce, paypal, stripe, braintree, restrict access, restrict content, directory site, payflow
|
4 |
Requires at least: 3.5
|
5 |
+
Tested up to: 4.5.2
|
6 |
+
Stable tag: 1.8.9.2
|
7 |
|
8 |
A revenue-generating machine for membership sites. Unlimited levels with recurring payment, protected content and member management.
|
9 |
|
115 |
[View All Screenshots](http://www.paidmembershipspro.com/features/screenshots/)
|
116 |
|
117 |
== Changelog ==
|
118 |
+
=======
|
119 |
+
= 1.8.9.2 =
|
120 |
+
* BUG: Fixed SQL in pmpro_changeMembershipLevel that caused issues with some MySQL setups.
|
121 |
+
* BUG: Fixed URL PayPal Express and PayPal standard redirect to at checkout. (Although the incorrect URL was still working on the PayPal side.)
|
122 |
+
* BUG: Addon page now passes $status to the plugin_row_meta filter to fix warnings that were sometimes showing up. (Thanks, jawhite)
|
123 |
+
* BUG: Fixed typo in the pmpro_orders_csv_extra_columns filter introduced in 1.8.9.1. (Thanks, Johannes Jokelin)
|
124 |
+
|
125 |
= 1.8.9.1 =
|
126 |
* BUG: Fixed bug where some recurring orders members who checked out with Stripe in very old versions of PMPro would show up as orders with a blank user_id and membership_id. This update includes a fix for this and an update script to fix old orders affected by this.
|
127 |
* BUG: Fixed bug where the Stripe class activation/deactivation methods were setup too late to actually run on activation/deactivation.
|