function pmpro_upgrade_1_8_9_3_ajax()
{
    global $wpdb;
    $debug = false;
    $run = true;
    //some vars
    $all_levels = pmpro_getAllLevels(true, true);
    //keeping track of which user we're working on
    $last_user_id = get_option('pmpro_upgrade_1_8_9_3_last_user_id', 0);
    //get all active users during the period where things may have been broken
    $user_ids = $wpdb->get_col("SELECT user_id FROM {$wpdb->pmpro_memberships_users} WHERE status = 'active' AND modified > '2016-05-19' AND user_id > {$last_user_id} ORDER BY user_id LIMIT 10");
    //track progress
    $first_load = get_transient('pmpro_updates_first_load');
    if ($first_load) {
        $total_users = $wpdb->get_var("SELECT COUNT(user_id) FROM {$wpdb->pmpro_memberships_users} WHERE status = 'active' AND modified > '2016-05-19' ORDER BY user_id");
        update_option('pmpro_upgrade_1_8_9_3_total', $total_users, 'no');
        $progress = 0;
    } else {
        $total_users = get_option('pmpro_upgrade_1_8_9_3_total', 0);
        $progress = get_option('pmpro_upgrade_1_8_9_3_progress', 0);
    }
    update_option('pmpro_upgrade_1_8_9_3_progress', $progress + count($user_ids), 'no');
    global $pmpro_updates_progress;
    if ($total_users > 0) {
        $pmpro_updates_progress = "[" . $progress . "/" . $total_users . "]";
    } else {
        $pmpro_updates_progress = "";
    }
    if (empty($user_ids)) {
        //done with this update
        pmpro_removeUpdate('pmpro_upgrade_1_8_9_3_ajax');
        delete_option('pmpro_upgrade_1_8_9_3_last_user_id');
        delete_option('pmpro_upgrade_1_8_9_3_total');
        delete_option('pmpro_upgrade_1_8_9_3_progress');
    } else {
        foreach ($user_ids as $user_id) {
            $last_user_id = $user_id;
            //keeping track of the last user we processed
            $user = get_userdata($user_id);
            //user not found for some reason
            if (empty($user)) {
                if ($debug) {
                    echo "User #" . $user_id . " not found.\n";
                }
                continue;
            }
            //get level
            $user->membership_level = pmpro_getMembershipLevelForUser($user->ID);
            //has a start and end date already
            if (!empty($user->membership_level->enddate) && !empty($user->membership_level->startdate)) {
                if ($debug) {
                    echo "User #" . $user_id . ", " . $user->user_email . " already has a start and end date.\n";
                }
                continue;
            }
            //get order
            $last_order = new MemberOrder();
            $last_order->getLastMemberOrder();
            /*
            	Figure out if this user should have been given an end date.
            	The level my have an end date.
            	They might have used a discount code.
            	They might be using the set-expiration-dates code.
            	They might have custom code setting the end date.
            
            	Let's setup some vars as if we are at checkout.
            	Then pass recreate the level with the pmpro_checkout_level filter.
            	And use the end date there if there is one.
            */
            global $pmpro_level, $discount_code, $discount_code_id;
            //level
            $level_id = $user->membership_level->id;
            $_REQUEST['level'] = $level_id;
            //gateway
            if (!empty($last_order) && !empty($last_order->gateway)) {
                $_REQUEST['gateway'] = $last_order->gateway;
            } else {
                $_REQUEST['gateway'] = pmpro_getGateway();
            }
            //discount code
            $discount_code_id = $user->membership_level->code_id;
            $discount_code = $wpdb->get_var("SELECT code FROM {$wpdb->pmpro_discount_codes} WHERE id = '" . $discount_code_id . "' LIMIT 1");
            //get level
            if (!empty($discount_code_id)) {
                $sqlQuery = "SELECT l.id, cl.*, l.name, l.description, l.allow_signups FROM {$wpdb->pmpro_discount_codes_levels} cl LEFT JOIN {$wpdb->pmpro_membership_levels} l ON cl.level_id = l.id LEFT JOIN {$wpdb->pmpro_discount_codes} dc ON dc.id = cl.code_id WHERE dc.code = '" . $discount_code . "' AND cl.level_id = '" . (int) $level_id . "' LIMIT 1";
                $pmpro_level = $wpdb->get_row($sqlQuery);
                //if the discount code doesn't adjust the level, let's just get the straight level
                if (empty($pmpro_level)) {
                    $pmpro_level = $all_levels[$level_id];
                }
                //filter adjustments to the level
                $pmpro_level->code_id = $discount_code_id;
                $pmpro_level = apply_filters("pmpro_discount_code_level", $pmpro_level, $discount_code_id);
            }
            //no level yet, use default
            if (empty($pmpro_level)) {
                $pmpro_level = $all_levels[$level_id];
            }
            //no level for some reason
            if (empty($pmpro_level) && empty($pmpro_level->id)) {
                if ($debug) {
                    echo "No level found with ID #" . $level_id . " for user #" . $user_id . ", " . $user->user_email . ".\n";
                }
                continue;
            }
            //filter level
            $pmpro_level = apply_filters("pmpro_checkout_level", $pmpro_level);
            if ($debug) {
                echo "User #" . $user_id . ", " . $user->user_email . ". Fixing.\n";
            }
            //calculate and fix start date
            if (empty($user->membership_level->startdate)) {
                $startdate = $wpdb->get_var("SELECT modified FROM {$wpdb->pmpro_memberships_users} WHERE user_id = {$user_id} AND membership_id = {$level_id} AND status = 'active' LIMIT 1");
                //filter
                $filtered_startdate = apply_filters("pmpro_checkout_start_date", $startdate, $user_id, $pmpro_level);
                //only use filtered value if it's not 0
                if (!empty($filtered_startdate) && $filtered_startdate != '0000-00-00 00:00:00' && $filtered_startdate != "'0000-00-00 00:00:00'") {
                    $startdate = $filtered_startdate;
                }
                if ($debug) {
                    echo "- Adding startdate " . $startdate . ".\n";
                }
                if ($run) {
                    $sqlQuery = "UPDATE {$wpdb->pmpro_memberships_users} SET startdate = '" . esc_sql($startdate) . "' WHERE user_id = {$user_id} AND membership_id = {$level_id} AND status = 'active' LIMIT 1";
                    $wpdb->query($sqlQuery);
                }
            } else {
                $startdate = date_i18n("Y-m-d", $user->membership_level->startdate);
            }
            //calculate and fix the end date
            if (empty($user->membership_level->enddate)) {
                if (!empty($pmpro_level->expiration_number)) {
                    $enddate = date_i18n("Y-m-d", strtotime("+ " . $pmpro_level->expiration_number . " " . $pmpro_level->expiration_period, $last_order->timestamp));
                } else {
                    $enddate = "NULL";
                }
                $enddate = apply_filters("pmpro_checkout_end_date", $enddate, $user_id, $pmpro_level, $startdate);
                if (!empty($enddate) && $enddate != "NULL") {
                    if ($debug) {
                        echo "- Adding enddate " . $enddate . ".\n";
                    }
                    if ($run) {
                        $sqlQuery = "UPDATE {$wpdb->pmpro_memberships_users} SET enddate = '" . esc_sql($enddate) . "' WHERE user_id = {$user_id} AND membership_id = {$level_id} AND status = 'active' LIMIT 1";
                        $wpdb->query($sqlQuery);
                    }
                }
            }
            //clear vars for next pass
            $user_id = NULL;
            $level_id = NULL;
            $discount_code = NULL;
            $discount_code_id = NULL;
            $pmpro_level = NULL;
            $last_order = NULL;
            $startdate = NULL;
            $filtered_startdate = NULL;
            $enddate = NULL;
            echo "\n";
        }
        update_option('pmpro_upgrade_1_8_9_3_last_user_id', $last_user_id, 'no');
    }
}
 /**
  * Run on WP init
  *		 
  * @since 1.8
  */
 static function init()
 {
     //make sure PayPal Express is a gateway option
     add_filter('pmpro_gateways', array('PMProGateway_paypalstandard', 'pmpro_gateways'));
     //add fields to payment settings
     add_filter('pmpro_payment_options', array('PMProGateway_paypalstandard', 'pmpro_payment_options'));
     /*
     	This code is the same for PayPal Website Payments Pro, PayPal Express, and PayPal Standard
     	So we only load it if we haven't already.
     */
     global $pmpro_payment_option_fields_for_paypal;
     if (empty($pmpro_payment_option_fields_for_paypal)) {
         add_filter('pmpro_payment_option_fields', array('PMProGateway_paypalstandard', 'pmpro_payment_option_fields'), 10, 2);
         $pmpro_payment_option_fields_for_paypal = true;
     }
     //code to add at checkout
     $gateway = pmpro_getGateway();
     if ($gateway == "paypalstandard") {
         add_filter('pmpro_include_billing_address_fields', '__return_false');
         add_filter('pmpro_include_payment_information_fields', '__return_false');
         add_filter('pmpro_required_billing_fields', array('PMProGateway_paypalstandard', 'pmpro_required_billing_fields'));
         add_filter('pmpro_checkout_default_submit_button', array('PMProGateway_paypalstandard', 'pmpro_checkout_default_submit_button'));
         add_filter('pmpro_checkout_before_change_membership_level', array('PMProGateway_paypalstandard', 'pmpro_checkout_before_change_membership_level'), 10, 2);
     }
 }
 /**
  * Run on WP init
  *
  * @since 1.8
  */
 static function init()
 {
     global $wpdb;
     $result = $wpdb->query("SELECT fondy_token from `{$wpdb->pmpro_membership_orders}` LIMIT 1' ");
     if (!$result) {
         $wpdb->query("ALTER TABLE {$wpdb->pmpro_membership_orders} ADD fondy_token TEXT");
     }
     //make sure fondy is a gateway option
     add_filter('pmpro_gateways', array('PMProGateway_fondy', 'pmpro_gateways'));
     //add fields to payment settings
     add_filter('pmpro_payment_options', array('PMProGateway_fondy', 'pmpro_payment_options'));
     add_filter('pmpro_payment_option_fields', array('PMProGateway_fondy', 'pmpro_payment_option_fields'), 10, 2);
     //add some fields to edit user page (Updates)
     add_action('pmpro_after_membership_level_profile_fields', array('PMProGateway_fondy', 'user_profile_fields'));
     add_action('profile_update', array('PMProGateway_fondy', 'user_profile_fields_save'));
     //updates cron
     add_action('pmpro_activation', array('PMProGateway_fondy', 'pmpro_activation'));
     add_action('pmpro_deactivation', array('PMProGateway_fondy', 'pmpro_deactivation'));
     add_action('pmpro_cron_fondy_subscription_updates', array('PMProGateway_fondy', 'pmpro_cron_fondy_subscription_updates'));
     //code to add at checkout if fondy is the current gateway
     $gateway = pmpro_getOption("gateway");
     $gateway = pmpro_getGateway();
     if ($gateway == "fondy") {
         //add_filter('pmpro_include_billing_address_fields', '__return_false');
         add_filter('pmpro_include_payment_information_fields', '__return_false');
         add_filter('pmpro_required_billing_fields', array('PMProGateway_fondy', 'pmpro_required_billing_fields'));
         add_filter('pmpro_checkout_default_submit_button', array('PMProGateway_fondy', 'pmpro_checkout_default_submit_button'));
         add_filter('pmpro_checkout_before_change_membership_level', array('PMProGateway_fondy', 'pmpro_checkout_before_change_membership_level'), 10, 2);
     }
 }
 /**
  * Run on WP init
  *
  * @since 1.8
  */
 static function init()
 {
     //make sure PayPal Express is a gateway option
     add_filter('pmpro_gateways', array('PMProGateway_payfast', 'pmpro_gateways'));
     //add fields to payment settings
     add_filter('pmpro_payment_options', array('PMProGateway_payfast', 'pmpro_payment_options'));
     add_filter('pmpro_payment_option_fields', array('PMProGateway_payfast', 'pmpro_payment_option_fields'), 10, 2);
     //code to add at checkout
     $gateway = pmpro_getGateway();
     add_filter('pmpro_include_billing_address_fields', '__return_false');
     add_filter('pmpro_include_payment_information_fields', '__return_false');
     add_filter('pmpro_required_billing_fields', '__return_false');
     add_filter('pmpro_checkout_default_submit_button', array('PMProGateway_payfast', 'pmpro_checkout_default_submit_button'));
     add_filter('pmpro_checkout_before_change_membership_level', array('PMProGateway_payfast', 'pmpro_checkout_before_change_membership_level'), 10, 2);
 }
 /**
  * Run on WP init
  *		 
  * @since 1.8
  */
 static function init()
 {
     //make sure Pay by Check is a gateway option
     add_filter('pmpro_gateways', array('PMProGateway_check', 'pmpro_gateways'));
     //add fields to payment settings
     add_filter('pmpro_payment_options', array('PMProGateway_check', 'pmpro_payment_options'));
     add_filter('pmpro_payment_option_fields', array('PMProGateway_check', 'pmpro_payment_option_fields'), 10, 2);
     //code to add at checkout
     $gateway = pmpro_getGateway();
     if ($gateway == "check") {
         add_filter('pmpro_include_billing_address_fields', '__return_false');
         add_filter('pmpro_include_payment_information_fields', '__return_false');
         add_filter('pmpro_required_billing_fields', array('PMProGateway_check', 'pmpro_required_billing_fields'));
     }
 }
 /**
  * Run on WP init
  *		 
  * @since 1.8
  */
 static function init()
 {
     //make sure Braintree Payments is a gateway option
     add_filter('pmpro_gateways', array('PMProGateway_braintree', 'pmpro_gateways'));
     //add fields to payment settings
     add_filter('pmpro_payment_options', array('PMProGateway_braintree', 'pmpro_payment_options'));
     add_filter('pmpro_payment_option_fields', array('PMProGateway_braintree', 'pmpro_payment_option_fields'), 10, 2);
     //code to add at checkout if Braintree is the current gateway
     $gateway = pmpro_getGateway();
     if ($gateway == "braintree") {
         add_action('pmpro_checkout_before_submit_button', array('PMProGateway_braintree', 'pmpro_checkout_before_submit_button'));
         add_filter('pmpro_checkout_order', array('PMProGateway_braintree', 'pmpro_checkout_order'));
         add_filter('pmpro_required_billing_fields', array('PMProGateway_braintree', 'pmpro_required_billing_fields'));
         add_filter('pmpro_include_payment_information_fields', array('PMProGateway_braintree', 'pmpro_include_payment_information_fields'));
     }
 }
 /**
  * 1.2 Run on WP init
  */
 public static function init()
 {
     //make sure Pay by Bitcoin/Altcoin is a gateway option
     add_filter('pmpro_gateways', array('PMProGateway_gourl', 'pmpro_gateways'));
     //add fields to payment settings
     add_filter('pmpro_payment_options', array('PMProGateway_gourl', 'pmpro_payment_options'));
     add_filter('pmpro_payment_option_fields', array('PMProGateway_gourl', 'pmpro_payment_option_fields'), 10, 2);
     //code to add at checkout
     $gateway = pmpro_getGateway();
     if ($gateway == "gourl") {
         add_filter('pmpro_include_billing_address_fields', '__return_false');
         add_filter('pmpro_include_payment_information_fields', '__return_false');
         add_filter('pmpro_required_billing_fields', array('PMProGateway_gourl', 'pmpro_required_billing_fields'));
         add_filter('pmpro_checkout_before_change_membership_level', array('PMProGateway_gourl', 'pmpro_checkout_before_change_membership_level'), 10, 2);
     }
 }
 /**
  * Run on WP init
  *
  * @since 1.8
  */
 static function init()
 {
     //make sure PayPal Website Payments Pro is a gateway option
     add_filter('pmpro_gateways', array('PMProGateway_paypal', 'pmpro_gateways'));
     //add fields to payment settings
     add_filter('pmpro_payment_options', array('PMProGateway_paypal', 'pmpro_payment_options'));
     /*
     	This code is the same for PayPal Website Payments Pro, PayPal Express, and PayPal Standard
     	So we only load it if we haven't already.
     */
     global $pmpro_payment_option_fields_for_paypal;
     if (empty($pmpro_payment_option_fields_for_paypal)) {
         add_filter('pmpro_payment_option_fields', array('PMProGateway_paypal', 'pmpro_payment_option_fields'), 10, 2);
         $pmpro_payment_option_fields_for_paypal = true;
     }
     //code to add at checkout
     $gateway = pmpro_getGateway();
     if ($gateway == "paypal") {
         add_filter('pmpro_checkout_default_submit_button', array('PMProGateway_paypal', 'pmpro_checkout_default_submit_button'));
         add_action('pmpro_checkout_after_form', array('PMProGateway_paypal', 'pmpro_checkout_after_form'));
     }
 }
 /**
  * Run on WP init
  *
  * @since 1.8
  */
 static function init()
 {
     //make sure PayPal Express is a gateway option
     add_filter('pmpro_gateways', array('PMProGateway_paypalexpress', 'pmpro_gateways'));
     //add fields to payment settings
     add_filter('pmpro_payment_options', array('PMProGateway_paypalexpress', 'pmpro_payment_options'));
     /*
     	Filter pmpro_next_payment to get actual value
     	via the PayPal API. This is disabled by default
     	for performance reasons, but you can enable it
     	by copying this line into a custom plugin or
     	your active theme's functions.php and uncommenting
     	it there.
     */
     //add_filter('pmpro_next_payment', array('PMProGateway_paypalexpress', 'pmpro_next_payment'), 10, 3);
     /*
     	This code is the same for PayPal Website Payments Pro, PayPal Express, and PayPal Standard
     	So we only load it if we haven't already.
     */
     global $pmpro_payment_option_fields_for_paypal;
     if (empty($pmpro_payment_option_fields_for_paypal)) {
         add_filter('pmpro_payment_option_fields', array('PMProGateway_paypalexpress', 'pmpro_payment_option_fields'), 10, 2);
         $pmpro_payment_option_fields_for_paypal = true;
     }
     //code to add at checkout
     $gateway = pmpro_getGateway();
     if ($gateway == "paypalexpress") {
         add_filter('pmpro_include_billing_address_fields', '__return_false');
         add_filter('pmpro_include_payment_information_fields', '__return_false');
         add_filter('pmpro_required_billing_fields', array('PMProGateway_paypalexpress', 'pmpro_required_billing_fields'));
         add_filter('pmpro_checkout_new_user_array', array('PMProGateway_paypalexpress', 'pmpro_checkout_new_user_array'));
         add_filter('pmpro_checkout_confirmed', array('PMProGateway_paypalexpress', 'pmpro_checkout_confirmed'));
         add_action('pmpro_checkout_before_processing', array('PMProGateway_paypalexpress', 'pmpro_checkout_before_processing'));
         add_filter('pmpro_checkout_default_submit_button', array('PMProGateway_paypalexpress', 'pmpro_checkout_default_submit_button'));
         add_action('pmpro_checkout_after_form', array('PMProGateway_paypalexpress', 'pmpro_checkout_after_form'));
         add_action('http_api_curl', array('PMProGateway_paypalexpress', 'http_api_curl'), 10, 3);
     }
 }
Пример #10
0
    ?>
		</p>
	<?php 
}
?>

	<?php 
do_action('pmpro_checkout_after_user_fields');
?>

	<?php 
do_action('pmpro_checkout_boxes');
?>

	<?php 
if (pmpro_getGateway() == "paypal" && empty($pmpro_review)) {
    ?>
		<table id="pmpro_payment_method" class="pmpro_checkout top1em" width="100%" cellpadding="0" cellspacing="0" border="0" <?php 
    if (!$pmpro_requirebilling) {
        ?>
style="display: none;"<?php 
    }
    ?>
>
		<thead>
			<tr>
				<th><?php 
    _e('Choose your Payment Method', 'pmpro');
    ?>
</th>
			</tr>
 /**
  * Run on WP init
  *
  * @since 1.8
  */
 static function init()
 {
     //make sure Stripe is a gateway option
     add_filter('pmpro_gateways', array('PMProGateway_stripe', 'pmpro_gateways'));
     //add fields to payment settings
     add_filter('pmpro_payment_options', array('PMProGateway_stripe', 'pmpro_payment_options'));
     add_filter('pmpro_payment_option_fields', array('PMProGateway_stripe', 'pmpro_payment_option_fields'), 10, 2);
     //add some fields to edit user page (Updates)
     add_action('pmpro_after_membership_level_profile_fields', array('PMProGateway_stripe', 'user_profile_fields'));
     add_action('profile_update', array('PMProGateway_stripe', 'user_profile_fields_save'));
     //old global RE showing billing address or not
     global $pmpro_stripe_lite;
     $pmpro_stripe_lite = apply_filters("pmpro_stripe_lite", !pmpro_getOption("stripe_billingaddress"));
     //default is oposite of the stripe_billingaddress setting
     //updates cron
     add_action('pmpro_cron_stripe_subscription_updates', array('PMProGateway_stripe', 'pmpro_cron_stripe_subscription_updates'));
     /*
     	Filter pmpro_next_payment to get actual value
     	via the Stripe API. This is disabled by default
     	for performance reasons, but you can enable it
     	by copying this line into a custom plugin or
     	your active theme's functions.php and uncommenting
     	it there.
     */
     //add_filter('pmpro_next_payment', array('PMProGateway_stripe', 'pmpro_next_payment'), 10, 3);
     //code to add at checkout if Stripe is the current gateway
     $default_gateway = pmpro_getOption('gateway');
     $current_gateway = pmpro_getGateway();
     if (($default_gateway == "stripe" || $current_gateway == "stripe") && empty($_REQUEST['review'])) {
         add_action('pmpro_checkout_preheader', array('PMProGateway_stripe', 'pmpro_checkout_preheader'));
         add_filter('pmpro_checkout_order', array('PMProGateway_stripe', 'pmpro_checkout_order'));
         add_filter('pmpro_include_billing_address_fields', array('PMProGateway_stripe', 'pmpro_include_billing_address_fields'));
         add_filter('pmpro_include_cardtype_field', array('PMProGateway_stripe', 'pmpro_include_billing_address_fields'));
         add_filter('pmpro_include_payment_information_fields', array('PMProGateway_stripe', 'pmpro_include_payment_information_fields'));
     }
 }
}
//hide/show billing
if (pmpro_isLevelFree($code_level) || pmpro_getGateway() == "paypalexpress" || pmpro_getGateway() == "paypalstandard" || pmpro_getGateway() == 'check') {
    ?>
				jQuery('#pmpro_billing_address_fields').hide();
				jQuery('#pmpro_payment_information_fields').hide();			
				<?php 
} else {
    ?>
			
				jQuery('#pmpro_billing_address_fields').show();
				jQuery('#pmpro_payment_information_fields').show();			
				<?php 
}
//hide/show paypal button
if (pmpro_getGateway() == "paypalexpress" || pmpro_getGateway() == "paypalstandard") {
    if (pmpro_isLevelFree($code_level)) {
        ?>
					
					jQuery('#pmpro_paypalexpress_checkout').hide();
					jQuery('#pmpro_submit_span').show();
					<?php 
    } else {
        ?>
					
					jQuery('#pmpro_submit_span').hide();
					jQuery('#pmpro_paypalexpress_checkout').show();				
					<?php 
    }
}
//filter to insert your own code
<?php

global $current_user, $pmpro_invoice;
if ($current_user->ID) {
    $current_user->membership_level = pmpro_getMembershipLevelForUser($current_user->ID);
}
/*
	Use the filter to add your gateway here if you want to show them a message on the confirmation page while their checkout is pending.
	For example, when PayPal Standard is used, we need to wait for PayPal to send a message through IPN that the payment was accepted.
	In the meantime, the order is in pending status and the confirmation page shows a message RE waiting.
*/
$gateways_with_pending_status = apply_filters('pmpro_gateways_with_pending_status', array('paypalstandard', 'twocheckout', 'gourl'));
//must be logged in
if (empty($current_user->ID) || empty($current_user->membership_level->ID) && !in_array(pmpro_getGateway(), $gateways_with_pending_status)) {
    wp_redirect(home_url());
}
//if membership is a paying one, get invoice from DB
if (!empty($current_user->membership_level) && !pmpro_isLevelFree($current_user->membership_level)) {
    $pmpro_invoice = new MemberOrder();
    $pmpro_invoice->getLastMemberOrder($current_user->ID, apply_filters("pmpro_confirmation_order_status", array("success", "pending")));
}
function pmpropbc_init_include_billing_address_fields()
{
    //make sure PMPro is active
    if (!function_exists('pmpro_getGateway')) {
        return;
    }
    if (pmpro_getGateway() !== 'check') {
        remove_filter('pmpro_include_billing_address_fields', '__return_false');
    } elseif (!empty($_REQUEST['level'])) {
        $level_id = intval($_REQUEST['level']);
        $options = pmpropbc_getOptions($level_id);
        if ($options['setting'] == 2) {
            //hide billing address and payment info fields
            add_filter('pmpro_include_billing_address_fields', '__return_false', 20);
            add_filter('pmpro_include_payment_information_fields', '__return_false', 20);
        }
    }
}