HEX
Server: LiteSpeed
System: Linux premium140.web-hosting.com 4.18.0-553.89.1.lve.el8.x86_64 #1 SMP Wed Dec 10 13:58:50 UTC 2025 x86_64
User: ukqcurpj (1011)
PHP: 8.1.34
Disabled: NONE
Upload Files
File: /home/ukqcurpj/www/wp-content/plugins/paid-memberships-pro/adminpages/advancedsettings.php
<?php
	//only admins can get this
	if(!function_exists("current_user_can") || (!current_user_can("manage_options") && !current_user_can("pmpro_advancedsettings")))
	{
		die(esc_html__("You do not have permissions to perform this action.", 'paid-memberships-pro' ));
	}

	global $wpdb, $msg, $msgt, $allowedposttags;

	//check nonce for saving settings
	if (!empty($_REQUEST['savesettings']) && (empty($_REQUEST['pmpro_advancedsettings_nonce']) || !check_admin_referer('savesettings', 'pmpro_advancedsettings_nonce'))) {
		$msg = -1;
		$msgt = __("Are you sure you want to do that? Try again.", 'paid-memberships-pro' );
		unset($_REQUEST['savesettings']);
	}	

	//get/set settings
	if(!empty($_REQUEST['savesettings']))
	{
		// Dashboard settings.
		pmpro_setOption( 'hide_toolbar' );
		pmpro_setOption( 'block_dashboard' );
		
		// Content settings.
		pmpro_setOption("filterqueries");
		pmpro_setOption("showexcerpts");
		if ( ! empty( $_POST['nonmembertext_type'] ) ) {
			// These use wp_kses for better security handling.
			$nonmembertext = wp_kses( wp_unslash( $_POST['nonmembertext'] ), $allowedposttags );
			update_option( 'pmpro_nonmembertext', $nonmembertext );
		} else {
			delete_option( 'pmpro_nonmembertext' );
		}

		// Communication settings.
		pmpro_setOption("maxnotificationpriority");
		pmpro_setOption("activity_email_frequency");

		// Business settings.
		$business_address = array();
		$business_address['name'] = ! empty( $_POST['business_name'] ) ? sanitize_text_field( wp_unslash( $_POST['business_name'] ) ) : '';
		$business_address['street'] = ! empty( $_POST['business_street'] ) ? sanitize_text_field( wp_unslash( $_POST['business_street'] ) ) : '';
		$business_address['street2'] = ! empty( $_POST['business_street2'] ) ? sanitize_text_field( wp_unslash( $_POST['business_street2'] ) ) : '';
		$business_address['city'] = ! empty( $_POST['business_city'] ) ? sanitize_text_field( wp_unslash( $_POST['business_city'] ) ) : '';
		$business_address['state'] = ! empty( $_POST['business_state'] ) ? sanitize_text_field( wp_unslash( $_POST['business_state'] ) ) : '';
		$business_address['zip'] = ! empty( $_POST['business_zip'] ) ? sanitize_text_field( wp_unslash( $_POST['business_zip'] ) ) : '';
		$business_address['country'] = ! empty( $_POST['business_country'] ) ? sanitize_text_field( wp_unslash( $_POST['business_country'] ) ) : '';
		$business_address['phone'] = ! empty( $_POST['business_phone'] ) ? sanitize_text_field( wp_unslash( $_POST['business_phone'] ) ) : '';
		update_option( 'pmpro_business_address', $business_address );

		// Other settings.
		pmpro_setOption("hideads");
		pmpro_setOption("wisdom_opt_out");
		pmpro_setOption("hideadslevels");
		pmpro_setOption("redirecttosubscription");
		pmpro_setOption("uninstall");
		pmpro_setOption("site_type");

        /**
         * Filter to add custom settings to the advanced settings page.
         * @param array $settings Array of settings, each setting an array with keys field_name, field_type, label, description.
         */
        $custom_settings = apply_filters('pmpro_custom_advanced_settings', array());
        foreach($custom_settings as $setting) {
        	if(!empty($setting['field_name']))
        		pmpro_setOption($setting['field_name']);
        }

		// Assume success.
		$msg = true;
		$msgt = __("Your advanced settings have been updated.", 'paid-memberships-pro' );
	}

	// Dashboard settings.
	$hide_toolbar = get_option( 'pmpro_hide_toolbar' );
	$block_dashboard = get_option( 'pmpro_block_dashboard' );

	// Content settings.
	$filterqueries = get_option( 'pmpro_filterqueries');
	$showexcerpts = get_option( 'pmpro_showexcerpts' );
	$nonmembertext = get_option( 'pmpro_nonmembertext' );

	// Business settings.
	$business_address = get_option( 'pmpro_business_address' );
	if ( empty( $business_address ) ) {
		$business_address = array(
			'name' => '',
			'street' => '',
			'street2' => '',
			'city' => '',
			'state' => '',
			'zip' => '',
			'country' => '',
			'phone' => ''
		);
	}

	// Communication settings.
	$maxnotificationpriority = get_option( "pmpro_maxnotificationpriority");
	$activity_email_frequency = get_option( "pmpro_activity_email_frequency");

	// Other settings.
	$hideads = get_option( "pmpro_hideads");
	$wisdom_opt_out = (int) get_option( "pmpro_wisdom_opt_out");
	$hideadslevels = get_option( "pmpro_hideadslevels");
	if( is_multisite() ) {
		$redirecttosubscription = get_option( "pmpro_redirecttosubscription");
	}
	$uninstall = get_option( 'pmpro_uninstall');
	$site_type = get_option( 'pmpro_site_type' );

	$levels = $wpdb->get_results( "SELECT * FROM {$wpdb->pmpro_membership_levels}", OBJECT );

	if ( empty( $activity_email_frequency ) ) {
		$activity_email_frequency = 'week';
	}

	require_once(dirname(__FILE__) . "/admin_header.php");
?>

	<form action="" method="post" enctype="multipart/form-data">
		<?php wp_nonce_field('savesettings', 'pmpro_advancedsettings_nonce');?>
		<hr class="wp-header-end">
		<h1><?php esc_html_e( 'Advanced Settings', 'paid-memberships-pro' ); ?></h1>
		<p><?php
			$advanced_settings_link = '<a title="' . esc_attr__( 'Paid Memberships Pro - Advanced Settings', 'paid-memberships-pro' ) . '" target="_blank" rel="nofollow noopener" href="https://www.paidmembershipspro.com/documentation/admin/advanced-settings/?utm_source=plugin&utm_medium=pmpro-advancedsettings&utm_campaign=documentation&utm_content=advanced-settings">' . esc_html__( 'Advanced Settings', 'paid-memberships-pro' ) . '</a>';
			// translators: %s: Link to Advanced Settings doc.
			printf( esc_html__('Learn more about %s.', 'paid-memberships-pro' ), $advanced_settings_link ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
		?></p>
		<div id="restrict-dashboard-access-settings" class="pmpro_section" data-visibility="shown" data-activated="true">
			<div class="pmpro_section_toggle">
				<button class="pmpro_section-toggle-button" type="button" aria-expanded="true">
					<span class="dashicons dashicons-arrow-up-alt2"></span>
					<?php esc_html_e( 'Restrict Dashboard Access', 'paid-memberships-pro' ); ?>
				</button>
			</div>
			<div class="pmpro_section_inside">
				<table class="form-table">
				<tbody>
					<tr>
						<th scope="row" valign="top">
							<label for="block_dashboard"><?php esc_html_e('WordPress Dashboard', 'paid-memberships-pro' );?></label>
						</th>
						<td>
							<input id="block_dashboard" name="block_dashboard" type="checkbox" value="yes" <?php checked( $block_dashboard, 'yes' ); ?> /> <label for="block_dashboard"><?php esc_html_e('Block all users with the Subscriber role from accessing the Dashboard.', 'paid-memberships-pro' );?></label>
						</td>
					</tr>
					<tr>
						<th scope="row" valign="top">
							<label for="hide_toolbar"><?php esc_html_e('WordPress Toolbar', 'paid-memberships-pro' );?></label>
						</th>
						<td>
							<input id="hide_toolbar" name="hide_toolbar" type="checkbox" value="yes" <?php checked( $hide_toolbar, 'yes' ); ?> /> <label for="hide_toolbar"><?php esc_html_e('Hide the Toolbar from all users with the Subscriber role.', 'paid-memberships-pro' );?></label>
						</td>
					</tr>
				</tbody>
				</table>
			</div> <!-- end pmpro_section_inside -->
		</div> <!-- end pmpro_section -->
		<div id="content-settings" class="pmpro_section" data-visibility="shown" data-activated="true">
			<div class="pmpro_section_toggle">
				<button class="pmpro_section-toggle-button" type="button" aria-expanded="true">
					<span class="dashicons dashicons-arrow-up-alt2"></span>
					<?php esc_html_e( 'Content Settings', 'paid-memberships-pro' ); ?>
				</button>
			</div>
			<div class="pmpro_section_inside">
				<table class="form-table">
				<tbody>
					<tr>
						<th scope="row" valign="top">
							<label for="filterqueries"><?php esc_html_e("Filter searches and archives?", 'paid-memberships-pro' ); ?></label>
						</th>
						<td>
							<select id="filterqueries" name="filterqueries">
								<option value="0" <?php if(!$filterqueries) { ?>selected="selected"<?php } ?>><?php esc_html_e('No - Non-members will see restricted posts/pages in searches and archives.', 'paid-memberships-pro' ); ?></option>
								<option value="1" <?php if($filterqueries == 1) { ?>selected="selected"<?php } ?>><?php esc_html_e('Yes - Only members will see restricted posts/pages in searches and archives.', 'paid-memberships-pro' ); ?></option>
							</select>
						</td>
					</tr>
					<tr>
						<th scope="row" valign="top">
							<label for="showexcerpts"><?php esc_html_e('Show Excerpts to Non-Members?', 'paid-memberships-pro' ); ?></label>
						</th>
						<td>
							<select id="showexcerpts" name="showexcerpts">
								<option value="0" <?php if(!$showexcerpts) { ?>selected="selected"<?php } ?>><?php esc_html_e('No - Hide excerpts.', 'paid-memberships-pro' ); ?></option>
								<option value="1" <?php if($showexcerpts == 1) { ?>selected="selected"<?php } ?>><?php esc_html_e('Yes - Show excerpts.', 'paid-memberships-pro' ); ?></option>
							</select>
						</td>
					</tr>
					<?php
					// Only show the custom message field if the option is set.
					if ( ! empty( $nonmembertext ) ) {
						?>
						<tr>
							<th scope="row" valign="top">
								<label for="nonmembertext_type"><?php esc_html_e( 'Membership Required Message', 'paid-memberships-pro' );?></label>
							</th>
							<td>
								<select id="nonmembertext_type" name="nonmembertext_type">
									<option value="custom"><?php esc_html_e( 'Use my custom membership required message. (Legacy)', 'paid-memberships-pro' ); ?></option>
									<option value=""><?php esc_html_e( 'Let Paid Memberships Pro generate the message.', 'paid-memberships-pro' ); ?></option>
								</select>
								<p class="description"><?php esc_html_e( 'We recommend that you allow Paid Memberships Pro to generate the message for protected content.', 'paid-memberships-pro' ); ?></p>

								<div id="pmpro_notice-nonmembertext_type" class="notice notice-warning pmpro-notice inline" style="display: none;">
									<p><strong><?php esc_html_e( 'Warning: Saving these settings will permanently delete your custom message. This change is irreversible.', 'paid-memberships-pro' ); ?></strong></p>
									<?php esc_html_e( 'We recommend updating to allow PMPro to generate a smart message for protected content. This message is fully compatible with all of your PMPro Add Ons and includes a link to the checkout or levels page, based on whether the content is protected for a single level or multiple levels.', 'paid-memberships-pro' ); ?></p>
								</div>
							</td>
						</tr>
						<tr class="toggle_nonmembertext">
							<th scope="row" valign="top">
								<label for="nonmembertext"><?php esc_html_e( 'Custom Membership Required Message (Legacy)', 'paid-memberships-pro' );?></label>
							</th>
							<td>
								<textarea name="nonmembertext" rows="3" cols="50" class="large-text"><?php echo wp_kses_post( stripslashes($nonmembertext) )?></textarea>
								<p class="description"><?php esc_html_e('This is a legacy option that will be removed in a future version of PMPro. This message is shown in place of the post content for non-members. Available variables', 'paid-memberships-pro' );?>: <code>!!levels!!</code> <code>!!referrer!!</code> <code>!!levels_page_url!!</code></p>
							</td>
						</tr>
						<script>
							jQuery(document).ready(function() {
								jQuery('#nonmembertext_type').change(function() {
									if(jQuery(this).val() == 'custom') {
										jQuery('.toggle_nonmembertext').show();
										jQuery('#pmpro_notice-nonmembertext_type').hide();
									} else {
										jQuery('.toggle_nonmembertext').hide();
										jQuery('#pmpro_notice-nonmembertext_type').show();
									}
								});
							});
						</script>
						<?php
					}
					?>
				</tbody>
				</table>
			</div> <!-- end pmpro_section_inside -->
		</div> <!-- end pmpro_section -->
		<div id="communication-settings" class="pmpro_section" data-visibility="shown" data-activated="true">
			<div class="pmpro_section_toggle">
				<button class="pmpro_section-toggle-button" type="button" aria-expanded="true">
					<span class="dashicons dashicons-arrow-up-alt2"></span>
					<?php esc_html_e( 'Communication Settings', 'paid-memberships-pro' ); ?>
				</button>
			</div>
			<div class="pmpro_section_inside">
				<table class="form-table">
					<tr>
						<th><?php esc_html_e( 'Notifications', 'paid-memberships-pro' ); ?></th>
						<td>
							<select name="maxnotificationpriority">
								<option value="5" <?php selected( $maxnotificationpriority, 5 ); ?>>
									<?php esc_html_e( 'Show all notifications.', 'paid-memberships-pro' ); ?>
								</option>
								<option value="1" <?php selected( $maxnotificationpriority, 1 ); ?>>
									<?php esc_html_e( 'Show only security notifications.', 'paid-memberships-pro' ); ?>
								</option>
							</select>
							<br />
							<p class="description"><?php esc_html_e('Notifications are occasionally shown on the Paid Memberships Pro settings pages.', 'paid-memberships-pro' );?></p>
						</td>
					</tr>
					<tr>
						<th>
							<label for="activity_email_frequency"><?php esc_html_e('Activity Email Frequency', 'paid-memberships-pro' );?></label>
						</th>
						<td>
							<select name="activity_email_frequency">
								<option value="day" <?php selected( $activity_email_frequency, 'day' ); ?>>
									<?php esc_html_e( 'Daily', 'paid-memberships-pro' ); ?>
								</option>
								<option value="week" <?php selected( $activity_email_frequency, 'week' ); ?>>
									<?php esc_html_e( 'Weekly', 'paid-memberships-pro' ); ?>
								</option>
								<option value="month" <?php selected( $activity_email_frequency, 'month' ); ?>>
									<?php esc_html_e( 'Monthly', 'paid-memberships-pro' ); ?>
								</option>
								<option value="never" <?php selected( $activity_email_frequency, 'never' ); ?>>
									<?php esc_html_e( 'Never', 'paid-memberships-pro' ); ?>
								</option>
							</select>
							<br />
							<p class="description"><?php esc_html_e( 'Send periodic sales and revenue updates from this site to the administration email address.', 'paid-memberships-pro' );?></p>
						</td>
					</tr>
				</tbody>
				</table>
			</div> <!-- end pmpro_section_inside -->
		</div> <!-- end pmpro_section -->
		<div id="business-settings" class="pmpro_section" data-visibility="shown" data-activated="true">
			<div class="pmpro_section_toggle">
				<button class="pmpro_section-toggle-button" type="button" aria-expanded="true">
					<span class="dashicons dashicons-arrow-up-alt2"></span>
					<?php esc_html_e( 'Business Settings', 'paid-memberships-pro' ); ?>
				</button>
			</div>
			<div class="pmpro_section_inside">
				<p class="description">
					<?php esc_html_e( 'Enter your business name and address. This information will be shown to members on the Membership Orders page and Orders print view.', 'paid-memberships-pro' );?>
				</p>
				<table class="form-table">
					<tbody>
						<tr>
							<th scope="row" valign="top">
								<label for="business_name"><?php esc_html_e( 'Business Name', 'paid-memberships-pro' );?></label>
							</th>
							<td>
								<input type="text" id="business_name" name="business_name" value="<?php echo esc_attr( $business_address['name'] ); ?>" class="regular-text" />
							</td>
						</tr>
						<tr>
							<th scope="row" valign="top">
								<label for="business_street"><?php esc_html_e( 'Business Street', 'paid-memberships-pro' );?></label>
							</th>
							<td>
								<input type="text" id="business_street" name="business_street" value="<?php echo esc_attr( $business_address['street'] ); ?>" class="regular-text" />
							</td>
						</tr>
						<tr>
							<th scope="row" valign="top">
								<label for="business_street2"><?php esc_html_e( 'Business Street 2', 'paid-memberships-pro' );?></label>
							</th>
							<td>
								<input type="text" id="business_street2" name="business_street2" value="<?php echo esc_attr( $business_address['street2'] ); ?>" class="regular-text" />
							</td>
						<tr>
							<th scope="row" valign="top">
								<label for="business_city"><?php esc_html_e( 'Business City', 'paid-memberships-pro' ); ?></label>
							</th>
							<td>
							<input type="text" id="business_city" name="business_city" value="<?php echo esc_attr( $business_address['city'] ); ?>" class="regular-text" />
							</td>
						</tr>
						<tr>
							<th scope="row" valign="top">
							<label for="business_state"><?php esc_html_e( 'Business State', 'paid-memberships-pro' ); ?></label>
							</th>
							<td>
								<input type="text" id="business_state" name="business_state" value="<?php echo esc_attr( $business_address['state'] ); ?>" class="regular-text" />
							</td>
						</tr>
						<tr>
							<th scope="row" valign="top">
								<label for="business_zip"><?php esc_html_e( 'Business Postal Code', 'paid-memberships-pro' ); ?></label>
							</th>
							<td>
								<input type="text" id="business_zip" name="business_zip" value="<?php echo esc_attr( $business_address['zip'] ); ?>" class="regular-text" />
							</td>
						</tr>
						<tr>
							<th scope="row" valign="top">
								<label for="business_country"><?php esc_html_e( 'Business Country', 'paid-memberships-pro' ); ?></label>
							</th>
							<td>
								<select id="business_country" name="business_country">
									<option value="0" <?php selected( $business_address['country'], '0' ); ?>><?php esc_html_e( '-- Select a Country --', 'paid-memberships-pro' ); ?></option>
								<?php
									global $pmpro_countries;
									foreach( $pmpro_countries as $abbr => $country ) {
										?>
										<option value="<?php echo esc_attr( $abbr ) ?>" <?php selected( $business_address['country'], $abbr ); ?>><?php echo esc_html( $country ); ?></option>
										<?php
									}
								?>
								</select>
							</td>
						</tr>
						<tr>
							<th scope="row" valign="top">
								<label for="business_phone"><?php esc_html_e( 'Business Phone', 'paid-memberships-pro' ); ?></label>
							</th>
							<td>
								<input type="text" id="business_phone" name="business_phone" value="<?php echo esc_attr( $business_address['phone'] ); ?>" class="regular-text" />
							</td>
						</tr>
					</tbody>
				</table>
			</div> <!-- end pmpro_section_inside -->
		</div> <!-- end pmpro_section -->
		<div id="other-settings" class="pmpro_section" data-visibility="shown" data-activated="true">
			<div class="pmpro_section_toggle">
				<button class="pmpro_section-toggle-button" type="button" aria-expanded="true">
					<span class="dashicons dashicons-arrow-up-alt2"></span>
					<?php esc_html_e( 'Other Settings', 'paid-memberships-pro' ); ?>
				</button>
			</div>
			<div class="pmpro_section_inside">
				<table class="form-table">
				<tbody>
					<tr>
						<th scope="row" valign="top">
							<label for="site_type"><?php esc_html_e('What type of membership site are you creating?', 'paid-memberships-pro' );?></label>
						</th>
						<td>
							<select id="site_type" name="site_type" class="pmpro-wizard__field-block">
								<option value=""><?php esc_html_e( '-- Select --', 'paid-memberships-pro' ); ?></option>
								<?php
								$site_types = pmpro_get_site_types();
								foreach ( $site_types as $site_type_key => $name ) {
									?>
									<option value="<?php echo esc_attr( $site_type_key ); ?>" <?php selected( $site_type_key, $site_type ); ?>><?php echo esc_html( $name ); ?></option>
									<?php
								}
								?>
							</select>
							<p class="description"><?php esc_html_e( 'Choose the answer that best fits the primary value of your membership site.', 'paid-memberships-pro' ); ?></p>
						</td>
					</tr>
					<tr>
						<th scope="row" valign="top">
							<label for="pmpro-hideads"><?php esc_html_e("Hide Ads From Members?", 'paid-memberships-pro' );?></label>
						</th>
						<td>
							<select id="pmpro-hideads" name="hideads" onchange="pmpro_updateHideAdsTRs();">
								<option value="0" <?php if(!$hideads) { ?>selected="selected"<?php } ?>><?php esc_html_e('No', 'paid-memberships-pro' );?></option>
								<option value="1" <?php if($hideads == 1) { ?>selected="selected"<?php } ?>><?php esc_html_e('Hide Ads From All Members', 'paid-memberships-pro' );?></option>
								<option value="2" <?php if($hideads == 2) { ?>selected="selected"<?php } ?>><?php esc_html_e('Hide Ads From Certain Members', 'paid-memberships-pro' );?></option>
							</select>
						</td>
					</tr>
					<tr id="hideads_explanation" <?php if($hideads < 2) { ?>style="display: none;"<?php } ?>>
						<th scope="row" valign="top">&nbsp;</th>
						<td>
							<p><?php esc_html_e('To hide ads in your template code, use code like the following', 'paid-memberships-pro' );?>:</p>
						<pre lang="PHP">
if ( function_exists( 'pmpro_displayAds' ) && pmpro_displayAds() ) {
	//insert ad code here
}</pre>
						</td>
					</tr>
					<tr id="hideadslevels_tr" <?php if($hideads != 2) { ?>style="display: none;"<?php } ?>>
						<th scope="row" valign="top">
							<label for="hideadslevels"><?php esc_html_e('Choose Levels to Hide Ads From', 'paid-memberships-pro' );?>:</label>
						</th>
						<td>
							<?php
								// Build the selectors for the checkbox list based on number of levels.
								$classes = array();
								$classes[] = "pmpro_checkbox_box";
								if ( count( $levels ) > 5 ) {
									$classes[] = "pmpro_scrollable";
								}
								$class = implode( ' ', array_unique( $classes ) );
							?>
							<div class="<?php echo esc_attr( $class ); ?>">
								<?php
									$hideadslevels = get_option( "pmpro_hideadslevels" );
									if(!is_array($hideadslevels))
										$hideadslevels = explode(",", $hideadslevels);

									$sqlQuery = "SELECT * FROM $wpdb->pmpro_membership_levels ";
									$levels = $wpdb->get_results($sqlQuery, OBJECT);
									$levels = pmpro_sort_levels_by_order( $levels );
									foreach($levels as $level)
									{
								?>
									<div class="pmpro_clickable">
										<input type="checkbox" id="hideadslevels_<?php echo esc_attr( $level->id ); ?>" name="hideadslevels[]" value="<?php echo esc_attr( $level->id); ?>" <?php checked( in_array( $level->id, $hideadslevels ), true ); ?>>
										<label for="hideadslevels_<?php echo esc_attr( $level->id ); ?>"><?php echo esc_html( $level->name ); ?></label>
									</div>
								<?php
									}
								?>
							</div>
						</td>
					</tr>
					<?php if(is_multisite()) { ?>
					<tr>
						<th scope="row" valign="top">
							<label for="redirecttosubscription"><?php esc_html_e('Redirect all traffic from registration page to /subscription/?', 'paid-memberships-pro' );?>: <em>(<?php esc_html_e('multisite only', 'paid-memberships-pro' );?>)</em></label>
						</th>
						<td>
							<select id="redirecttosubscription" name="redirecttosubscription">
								<option value="0" <?php if(!$redirecttosubscription) { ?>selected="selected"<?php } ?>><?php esc_html_e('No', 'paid-memberships-pro' );?></option>
								<option value="1" <?php if($redirecttosubscription == 1) { ?>selected="selected"<?php } ?>><?php esc_html_e('Yes', 'paid-memberships-pro' );?></option>
							</select>
						</td>
					</tr>
					<?php } ?>
					<?php
					// Filter to Add More Advanced Settings for Misc Plugin Options, etc.
					if (has_action('pmpro_custom_advanced_settings')) {
						$custom_fields = apply_filters('pmpro_custom_advanced_settings', array());
						foreach ($custom_fields as $field) {
						?>
						<tr>
							<th valign="top" scope="row">
								<label
									for="<?php echo esc_attr( $field['field_name'] ); ?>"><?php echo esc_textarea( $field['label'] ); ?></label>
							</th>
							<td>
								<?php
								switch ($field['field_type']) {
									case 'select':
										?>
										<select id="<?php echo esc_attr( $field['field_name'] ); ?>"
												name="<?php echo esc_attr( $field['field_name'] ); ?>">
											<?php
												//For associative arrays, we use the array keys as values. For numerically indexed arrays, we use the array values.
												$is_associative = !empty($field['is_associative']) || (bool)count(array_filter(array_keys($field['options']), 'is_string'));
												foreach ($field['options'] as $key => $option) {
													if(!$is_associative) $key = $option;
													?>
													<option value="<?php echo esc_attr($key); ?>" <?php selected($key, get_option( 'pmpro_' . $field['field_name'] ));?>>
														<?php echo esc_textarea($option); ?>
													</option>
													<?php
												}
											?>
										</select>
										<?php
										break;
									case 'text':
										?>
										<input id="<?php echo esc_attr( $field['field_name'] ); ?>"
											name="<?php echo esc_attr( $field['field_name'] ); ?>"
											type="<?php echo esc_attr( $field['field_type'] ); ?>"
											value="<?php echo esc_attr(get_option( 'pmpro_' . $field['field_name'] )); ?> "
											class="regular-text">
										<?php
										break;
									case 'textarea':
										?>
										<textarea id="<?php echo esc_attr( $field['field_name'] ); ?>"
												name="<?php echo esc_attr( $field['field_name'] ); ?>"
												class="large-text">
											<?php echo esc_textarea(get_option( 'pmpro_' . $field['field_name'] )); ?>
										</textarea>
										<?php
										break;
									case 'callback':
										call_user_func($field['callback']);
										break;
									default:
										break;
								}
								if ( ! empty( $field['description'] ) ) {
									$allowed_pmpro_custom_advanced_settings_html = array (
										'strong' => array(),
										'code' => array(),
										'em' => array(),
										'br' => array(),
										'p' => array(),
										'a' => array (
											'href' => array(),
											'target' => array(),
											'title' => array(),
										)
									);
									?>
									<p class="description"><?php echo wp_kses( $field['description'], $allowed_pmpro_custom_advanced_settings_html ); ?></p>
									<?php } ?>
							</td>
						</tr>
						<?php
						}
					}
					?>
					<tr>
						<th scope="row" valign="top">
							<label for="wisdom_opt_out">
								<?php esc_html_e( 'Enable Plugin Usage Data Sharing', 'paid-memberships-pro' ); ?>
							</label>
						</th>
						<td>
							<p>
								<label>								
									<input name="wisdom_opt_out" type="radio" value="0"<?php checked( 0, $wisdom_opt_out ); ?> />
									<?php esc_html_e( 'Allow usage of Paid Memberships Pro to be shared with us.', 'paid-memberships-pro' );?>
								</label>
							</p>
							<p>
								<label>
									<input name="wisdom_opt_out" type="radio" value="1"<?php checked( 1, $wisdom_opt_out ); ?> />
									<?php esc_html_e( 'Do not share usage of Paid Memberships Pro on my site.', 'paid-memberships-pro' );?>
								</label>
							</p>
							<p class="description">
								<?php esc_html_e( 'Sharing non-sensitive membership site data helps us analyze how our plugin is meeting your needs and identify opportunities to improve. Read about what usage data is tracked:', 'paid-memberships-pro' ); ?>
								<a href="https://www.paidmembershipspro.com/privacy-policy/usage-tracking/" title="<?php esc_attr_e( 'PaidMembershipsPro.com Usage Tracking', 'paid-memberships-pro' ); ?>" target="_blank" rel="nofollow noopener"><?php esc_html_e( 'Paid Memberships Pro Usage Tracking', 'paid-memberships-pro' ); ?></a>.
							</p>
						</td>
					</tr>
					<tr>
						<th scope="row" valign="top">
							<label for="uninstall"><?php esc_html_e('Uninstall PMPro on deletion?', 'paid-memberships-pro' );?></label>
						</th>
						<td>
							<select id="uninstall" name="uninstall">
								<option value="0" <?php if ( ! $uninstall ) { ?>selected="selected"<?php } ?>><?php esc_html_e( 'No', 'paid-memberships-pro' );?></option>
								<option value="1" <?php if ( $uninstall == 1 ) { ?>selected="selected"<?php } ?>><?php esc_html_e( 'Yes - Delete all PMPro Data.', 'paid-memberships-pro' );?></option>
							</select>
							<p class="description"><?php esc_html_e( 'To delete all PMPro data from the database, set to Yes, deactivate PMPro, and then click to delete PMPro from the plugins page.', 'paid-memberships-pro' ); ?></p>
						</td>
					</tr>
				</tbody>
				</table>
				<script>
					function pmpro_updateHideAdsTRs()
					{
						var hideads = jQuery('#pmpro-hideads').val();
						if(hideads == 2)
						{
							jQuery('#hideadslevels_tr').show();
						}
						else
						{
							jQuery('#hideadslevels_tr').hide();
						}

						if(hideads > 0)
						{
							jQuery('#hideads_explanation').show();
						}
						else
						{
							jQuery('#hideads_explanation').hide();
						}
					}
					pmpro_updateHideAdsTRs();
				</script>
			</div> <!-- end pmpro_section_inside -->
		</div> <!-- end pmpro_section -->
		<p class="submit">
			<input name="savesettings" type="submit" class="button button-primary" value="<?php esc_attr_e('Save Settings', 'paid-memberships-pro' );?>" />
		</p>
	</form>

<?php
	require_once(dirname(__FILE__) . "/admin_footer.php");
?>