PATH:
home
/
lab2454c
/
incforce.com
/
wp-content
/
plugins
/
paid-memberships-pro
/
includes
/
updates
<?php /* Upgrade to 1.8.6.9 1. Find all orders for stripe gateway with a subscription_transaction_id LIKE 'cus_%' 2. Search for an order for the same user_id and membership_id with a subscription_transaction_id LIKE 'sub_%' 3. Replace subscription_transaction_id field. */ function pmpro_upgrade_1_8_6_9() { global $wpdb; $orders = $wpdb->get_results("SELECT id, user_id, membership_id, subscription_transaction_id FROM $wpdb->pmpro_membership_orders WHERE gateway = 'stripe' AND subscription_transaction_id LIKE 'cus_%'"); if(!empty($orders)) { if(count($orders) > 100) { //if more than 100 orders, we'll need to do this via AJAX pmpro_addUpdate('pmpro_upgrade_1_8_6_9_ajax'); } else { //less than 100, let's just do them now $subids = array(); foreach($orders as $order) { if(!empty($subids[$order->subscription_transaction_id])) { $wpdb->query("UPDATE $wpdb->pmpro_membership_orders SET subscription_transaction_id = '" . esc_sql($subids[$order->subscription_transaction_id]) . "' WHERE id = '" . $order->id . "' LIMIT 1"); //echo "Updating subid for #" . $order->id . " " . $order->subscription_transaction_id . ".<br />"; } elseif(isset($subids[$order->subscription_transaction_id])) { //no sub id found, so let it go //echo "No subid found for #" . $order->id . " " . $order->subscription_transaction_id . " in cache.<br />"; } else { //need to look for a sub id in the database $subid = $wpdb->get_var("SELECT subscription_transaction_id FROM $wpdb->pmpro_membership_orders WHERE membership_id = '" . $order->membership_id . "' AND user_id = '" . $order->user_id . "' AND subscription_transaction_id LIKE 'sub_%' LIMIT 1"); $subids[$order->subscription_transaction_id] = $subid; if(!empty($subid)) { $wpdb->query("UPDATE $wpdb->pmpro_membership_orders SET subscription_transaction_id = '" . esc_sql($subid) . "' WHERE id = '" . $order->id . "' LIMIT 1"); //echo "Updating subid for #" . $order->id . " " . $order->subscription_transaction_id . ".<br />"; } else { //echo "No subid found for #" . $order->id . " " . $order->subscription_transaction_id . ".<br />"; } } } } } pmpro_setOption("db_version", "1.869"); return 1.869; } /* If a site has > 100 orders then we run this pasrt of the update via AJAX from the updates page. */ function pmpro_upgrade_1_8_6_9_ajax() { global $wpdb; //keeping track of which order we're working on $last_order_id = get_option('pmpro_upgrade_1_8_6_9_last_order_id', 0); //get orders $orders = $wpdb->get_results("SELECT id, user_id, membership_id, subscription_transaction_id FROM $wpdb->pmpro_membership_orders WHERE id > $last_order_id AND gateway = 'stripe' AND subscription_transaction_id LIKE 'cus_%' ORDER BY id LIMIT 100"); if(empty($orders)) { //done with this update pmpro_removeUpdate('pmpro_upgrade_1_8_6_9_ajax'); delete_option('pmpro_upgrade_1_8_6_9_last_order_id'); } else { $subids = array(); //cache of subids found foreach($orders as $order) { $last_order_id = $order->id; //keeping track of the last order we processed if(!empty($subids[$order->subscription_transaction_id])) { $wpdb->query("UPDATE $wpdb->pmpro_membership_orders SET subscription_transaction_id = '" . esc_sql($subids[$order->subscription_transaction_id]) . "' WHERE id = '" . $order->id . "' LIMIT 1"); } elseif(isset($subids[$order->subscription_transaction_id])) { //no sub id found, so let it go } else { //need to look for a sub id in the database $subid = $wpdb->get_var("SELECT subscription_transaction_id FROM $wpdb->pmpro_membership_orders WHERE membership_id = '" . $order->membership_id . "' AND user_id = '" . $order->user_id . "' AND subscription_transaction_id LIKE 'sub_%' LIMIT 1"); $subids[$order->subscription_transaction_id] = $subid; if(!empty($subid)) { $wpdb->query("UPDATE $wpdb->pmpro_membership_orders SET subscription_transaction_id = '" . esc_sql($subid) . "' WHERE id = '" . $order->id . "' LIMIT 1"); } else { //no sub id found, so let it go } } } update_option('pmpro_upgrade_1_8_6_9_last_order_id', $last_order_id); } }
[-] upgrade_2_4.php
[edit]
[-] upgrade_2_10.php
[edit]
[-] upgrade_1_9_4.php
[edit]
[-] upgrade_2_6.php
[edit]
[-] upgrade_2_10_6.php
[edit]
[+]
..
[-] upgrade_1_3_18.php
[edit]
[-] upgrade_1_2_3.php
[edit]
[-] upgrade_1_4_2.php
[edit]
[-] upgrade_1_4_8.php
[edit]
[-] upgrade_1_8_6_9.php
[edit]
[-] upgrade_1_7.php
[edit]
[-] upgrade_1_8_8.php
[edit]
[-] upgrade_1_1_15.php
[edit]
[-] upgrade_1.php
[edit]
[-] upgrade_1_5_9.php
[edit]
[-] upgrade_1_4.php
[edit]
[-] upgrade_1_8_7.php
[edit]
[-] upgrade_1_6.php
[edit]
[-] upgrade_1_8_9_3.php
[edit]
[-] upgrade_1_8_9_1.php
[edit]
[-] upgrade_1_5.php
[edit]