/**
  * Add notices + styles if needed.
  */
 public function add_notices()
 {
     if (get_option('_mailpoet_paid_memberships_pro_add_on_needs_update') == 1) {
         wp_enqueue_style('plugin-name-activation', MailPoet_Paid_Memberships_Pro_Addon()->plugin_url() . '/assets/css/activation.css');
         add_action('admin_notices', array(&$this, 'install_notice'));
     }
 }
 /**
  * Handle updates
  */
 public function update()
 {
     // Do updates
     $current_db_version = get_option('mailpoet_paid_memberships_pro_addon_db_version');
     /*if ( version_compare( $current_db_version, '1.0.1', '<' ) || MAILPOET_PAID_MEMBERSHIPS_PRO_ADDON_VERSION == '1.0.1' ) {
     			include( 'updates/mailpoet-paid-memberships-pro-addon-update-1.0.1.php' );
     			update_option( 'mailpoet_paid_memberships_pro_addon_db_version', '1.0.1' );
     		}*/
     update_option('mailpoet_paid_memberships_pro_addon_db_version', MailPoet_Paid_Memberships_Pro_Addon()->version);
 }
 /**
  * Add help tabs
  */
 public function add_tabs()
 {
     $screen = get_current_screen();
     if (!in_array($screen->id, mailpoet_paid_memberships_pro_addon_get_screen_ids())) {
         return;
     }
     $screen->add_help_tab(array('id' => 'MailPoet_Paid_Memberships_Pro_Addon_docs_tab', 'title' => __('Documentation', MAILPOET_PAID_MEMBERSHIPS_PRO_ADDON_TEXT_DOMAIN), 'content' => '<p>' . __('Thank you for using MailPoet Paid Memberships Pro Add-on :) Should you need help using MailPoet Paid Memberships Pro Add-on please read the documentation.', MAILPOET_PAID_MEMBERSHIPS_PRO_ADDON_TEXT_DOMAIN) . '</p>' . '<p><a href="' . MailPoet_Paid_Memberships_Pro_Addon()->doc_url . '" class="button button-primary">' . __('MailPoet Paid Memberships Pro Add-on Documentation', MAILPOET_PAID_MEMBERSHIPS_PRO_ADDON_TEXT_DOMAIN) . '</a></p>'));
     $screen->add_help_tab(array('id' => 'MailPoet_Paid_Memberships_Pro_Addon_support_tab', 'title' => __('Support', MAILPOET_PAID_MEMBERSHIPS_PRO_ADDON_TEXT_DOMAIN), 'content' => '<p>' . sprintf(__('After <a href="%s">reading the documentation</a>, for further assistance you can use the <a href="%s">community forum</a>.', MAILPOET_PAID_MEMBERSHIPS_PRO_ADDON_TEXT_DOMAIN), MailPoet_Paid_Memberships_Pro_Addon()->doc_url, 'http://wordpress.org/support/plugin/mailpoet-paid-memberships-pro-add-on') . '</p>' . '<p><a href="' . 'http://wordpress.org/support/plugin/mailpoet-paid-memberships-pro-add-on' . '" class="button button-primary">' . __('Community Support', MAILPOET_PAID_MEMBERSHIPS_PRO_ADDON_TEXT_DOMAIN) . '</a></p>'));
     $screen->add_help_tab(array('id' => 'MailPoet_Paid_Memberships_Pro_Addon_bugs_tab', 'title' => __('Found a bug?', MAILPOET_PAID_MEMBERSHIPS_PRO_ADDON_TEXT_DOMAIN), 'content' => '<p>' . sprintf(__('If you find a bug within MailPoet Paid Memberships Pro you can create a ticket via <a href="%s">Github issues</a>. Ensure you read the <a href="%s">contribution guide</a> prior to submitting your report. Be as descriptive as possible.', MAILPOET_PAID_MEMBERSHIPS_PRO_ADDON_TEXT_DOMAIN), GITHUB_REPO_URL . 'issues?state=open', GITHUB_REPO_URL . 'blob/master/CONTRIBUTING.md') . '</p>' . '<p><a href="' . GITHUB_REPO_URL . 'issues?state=open" class="button button-primary">' . __('Report a bug', MAILPOET_PAID_MEMBERSHIPS_PRO_ADDON_TEXT_DOMAIN) . '</a></p>'));
     $screen->set_help_sidebar('<p><strong>' . __('For more information:', MAILPOET_PAID_MEMBERSHIPS_PRO_ADDON_TEXT_DOMAIN) . '</strong></p>' . '<p><a href="' . MailPoet_Paid_Memberships_Pro_Addon()->web_url . '" target="_blank">' . __('Project on WordPress.org', MAILPOET_PAID_MEMBERSHIPS_PRO_ADDON_TEXT_DOMAIN) . '</a></p>' . '<p><a href="' . GITHUB_REPO_URL . '" target="_blank">' . __('Project on Github', MAILPOET_PAID_MEMBERSHIPS_PRO_ADDON_TEXT_DOMAIN) . '</a></p>');
 }
        /**
         * Output admin fields.
         *
         * Loops though the MailPoet Paid Memberships Pro Addon options array and outputs each field.
         *
         * @access public
         * @param array $options Opens array to output
         */
        public static function output_fields($options)
        {
            foreach ($options as $value) {
                if (!isset($value['type'])) {
                    continue;
                }
                if (!isset($value['id'])) {
                    $value['id'] = '';
                }
                if (!isset($value['title'])) {
                    $value['title'] = isset($value['name']) ? $value['name'] : '';
                }
                if (!isset($value['class'])) {
                    $value['class'] = '';
                }
                if (!isset($value['css'])) {
                    $value['css'] = '';
                }
                if (!isset($value['default'])) {
                    $value['default'] = '';
                }
                if (!isset($value['desc'])) {
                    $value['desc'] = '';
                }
                if (!isset($value['desc_tip'])) {
                    $value['desc_tip'] = false;
                }
                // Custom attribute handling
                $custom_attributes = array();
                if (!empty($value['custom_attributes']) && is_array($value['custom_attributes'])) {
                    foreach ($value['custom_attributes'] as $attribute => $attribute_value) {
                        $custom_attributes[] = esc_attr($attribute) . '="' . esc_attr($attribute_value) . '"';
                    }
                }
                // Description handling
                if ($value['desc_tip'] === true) {
                    $description = '';
                    $tip = $value['desc'];
                } elseif (!empty($value['desc_tip'])) {
                    $description = $value['desc'];
                    $tip = $value['desc_tip'];
                } elseif (!empty($value['desc'])) {
                    $description = $value['desc'];
                    $tip = '';
                } else {
                    $description = $tip = '';
                }
                if ($description && in_array($value['type'], array('textarea', 'radio'))) {
                    $description = '<p style="margin-top:0">' . wp_kses_post($description) . '</p>';
                } elseif ($description) {
                    $description = '<span class="description">' . wp_kses_post($description) . '</span>';
                }
                if ($tip && in_array($value['type'], array('checkbox'))) {
                    $tip = '<p class="description">' . $tip . '</p>';
                } elseif ($tip) {
                    $tip = '<img class="help_tip" data-tip="' . esc_attr($tip) . '" src="' . MailPoet_Paid_Memberships_Pro_Addon()->plugin_url() . '/assets/images/help.png" height="16" width="16" />';
                }
                // Switch based on type
                switch ($value['type']) {
                    // Section Titles
                    case 'title':
                        if (!empty($value['title'])) {
                            echo '<h3>' . esc_html($value['title']) . '</h3>';
                        }
                        if (!empty($value['desc'])) {
                            echo wpautop(wptexturize(wp_kses_post($value['desc'])));
                        }
                        echo '<table class="form-table">' . "\n\n";
                        if (!empty($value['id'])) {
                            do_action('mailpoet_paid_memberships_pro_add_on_settings_' . sanitize_title($value['id']));
                        }
                        break;
                        // Section Ends
                    // Section Ends
                    case 'sectionend':
                        if (!empty($value['id'])) {
                            do_action('mailpoet_paid_memberships_pro_add_on_settings_' . sanitize_title($value['id']) . '_end');
                        }
                        echo '</table>';
                        if (!empty($value['id'])) {
                            do_action('mailpoet_paid_memberships_pro_add_on_settings_' . sanitize_title($value['id']) . '_after');
                        }
                        break;
                        // Standard text inputs and subtypes like 'number'
                    // Standard text inputs and subtypes like 'number'
                    case 'text':
                    case 'email':
                    case 'number':
                        $type = $value['type'];
                        $class = '';
                        $option_value = self::get_option($value['id'], $value['default']);
                        ?>
<tr valign="top">
						<th scope="row" class="titledesc">
							<label for="<?php 
                        echo esc_attr($value['id']);
                        ?>
"><?php 
                        echo esc_html($value['title']);
                        ?>
</label>
							<?php 
                        echo $tip;
                        ?>
						</th>
						<td class="forminp forminp-<?php 
                        echo sanitize_title($value['type']);
                        ?>
">
							<input
								name="<?php 
                        echo esc_attr($value['id']);
                        ?>
"
								id="<?php 
                        echo esc_attr($value['id']);
                        ?>
"
								type="<?php 
                        echo esc_attr($type);
                        ?>
"
								style="<?php 
                        echo esc_attr($value['css']);
                        ?>
"
								value="<?php 
                        echo esc_attr($option_value);
                        ?>
"
								class="<?php 
                        echo esc_attr($value['class']);
                        ?>
"
								<?php 
                        echo implode(' ', $custom_attributes);
                        ?>
							/> <?php 
                        echo $description;
                        ?>
						</td>
					</tr><?php 
                        break;
                        // Textarea
                    // Textarea
                    case 'textarea':
                        $option_value = self::get_option($value['id'], $value['default']);
                        ?>
<tr valign="top">
						<th scope="row" class="titledesc">
							<label for="<?php 
                        echo esc_attr($value['id']);
                        ?>
"><?php 
                        echo esc_html($value['title']);
                        ?>
</label>
							<?php 
                        echo $tip;
                        ?>
						</th>
						<td class="forminp forminp-<?php 
                        echo sanitize_title($value['type']);
                        ?>
">
						<?php 
                        echo $description;
                        ?>

						<textarea
								name="<?php 
                        echo esc_attr($value['id']);
                        ?>
"
								id="<?php 
                        echo esc_attr($value['id']);
                        ?>
"
								style="<?php 
                        echo esc_attr($value['css']);
                        ?>
"
								class="<?php 
                        echo esc_attr($value['class']);
                        ?>
"
								<?php 
                        echo implode(' ', $custom_attributes);
                        ?>
								><?php 
                        echo esc_textarea($option_value);
                        ?>
</textarea>
						</td>
					</tr><?php 
                        break;
                        // Select boxes
                    // Select boxes
                    case 'select':
                    case 'multiselect':
                        $option_value = self::get_option($value['id'], $value['default']);
                        ?>
<tr valign="top">
						<th scope="row" class="titledesc">
							<label for="<?php 
                        echo esc_attr($value['id']);
                        ?>
"><?php 
                        echo esc_html($value['title']);
                        ?>
</label>
							<?php 
                        echo $tip;
                        ?>
						</th>
						<td class="forminp forminp-<?php 
                        echo sanitize_title($value['type']);
                        ?>
">
						<select
								name="<?php 
                        echo esc_attr($value['id']);
                        if ($value['type'] == 'multiselect') {
                            echo '[]';
                        }
                        ?>
"
								id="<?php 
                        echo esc_attr($value['id']);
                        ?>
"
								style="<?php 
                        echo esc_attr($value['css']);
                        ?>
"
								class="<?php 
                        echo esc_attr($value['class']);
                        ?>
"
								<?php 
                        echo implode(' ', $custom_attributes);
                        ?>
								<?php 
                        if ($value['type'] == 'multiselect') {
                            echo 'multiple="multiple"';
                        }
                        ?>
>

								<?php 
                        foreach ($value['options'] as $key => $val) {
                            ?>
										<option value="<?php 
                            echo esc_attr($key);
                            ?>
" <?php 
                            if (is_array($option_value)) {
                                selected(in_array($key, $option_value), true);
                            } else {
                                selected($option_value, $key);
                            }
                            ?>
><?php 
                            echo $val;
                            ?>
</option>
										<?php 
                        }
                        ?>
							</select> <?php 
                        echo $description;
                        ?>
						</td>
					</tr><?php 
                        break;
                        // Radio inputs
                    // Radio inputs
                    case 'radio':
                        $option_value = self::get_option($value['id'], $value['default']);
                        ?>
<tr valign="top">
						<th scope="row" class="titledesc">
							<label for="<?php 
                        echo esc_attr($value['id']);
                        ?>
"><?php 
                        echo esc_html($value['title']);
                        ?>
</label>
							<?php 
                        echo $tip;
                        ?>
						</th>
						<td class="forminp forminp-<?php 
                        echo sanitize_title($value['type']);
                        ?>
">
							<fieldset>
								<?php 
                        echo $description;
                        ?>
							<ul>
							<?php 
                        foreach ($value['options'] as $key => $val) {
                            ?>
								<li>
									<label><input
												name="<?php 
                            echo esc_attr($value['id']);
                            ?>
"
												value="<?php 
                            echo $key;
                            ?>
"
												type="radio"
												style="<?php 
                            echo esc_attr($value['css']);
                            ?>
"
												class="<?php 
                            echo esc_attr($value['class']);
                            ?>
"
												<?php 
                            echo implode(' ', $custom_attributes);
                            ?>
												<?php 
                            checked($key, $option_value);
                            ?>
												/> <?php 
                            echo $val;
                            ?>
</label>
								</li>
							<?php 
                        }
                        ?>
							</ul>
							</fieldset>
						</td>
					</tr><?php 
                        break;
                        // Checkbox input
                    // Checkbox input
                    case 'checkbox':
                        $option_value = self::get_option($value['id'], $value['default']);
                        if (!isset($value['hide_if_checked'])) {
                            $value['hide_if_checked'] = false;
                        }
                        if (!isset($value['show_if_checked'])) {
                            $value['show_if_checked'] = false;
                        }
                        if (!isset($value['checkboxgroup']) || isset($value['checkboxgroup']) && $value['checkboxgroup'] == 'start') {
                            ?>
						<tr valign="top" class="<?php 
                            if ($value['hide_if_checked'] == 'yes' || $value['show_if_checked'] == 'yes') {
                                echo 'hidden_option';
                            }
                            if ($value['hide_if_checked'] == 'option') {
                                echo 'hide_options_if_checked';
                            }
                            if ($value['show_if_checked'] == 'option') {
                                echo 'show_options_if_checked';
                            }
                            ?>
">
						<th scope="row" class="titledesc"><?php 
                            echo esc_html($value['title']);
                            ?>
</th>
						<td class="forminp forminp-checkbox">
							<fieldset>
						<?php 
                        } else {
                            ?>
						<fieldset class="<?php 
                            if ($value['hide_if_checked'] == 'yes' || $value['show_if_checked'] == 'yes') {
                                echo 'hidden_option';
                            }
                            if ($value['hide_if_checked'] == 'option') {
                                echo 'hide_options_if_checked';
                            }
                            if ($value['show_if_checked'] == 'option') {
                                echo 'show_options_if_checked';
                            }
                            ?>
">
					<?php 
                        }
                        ?>
						<legend class="screen-reader-text"><span><?php 
                        echo esc_html($value['title']);
                        ?>
</span></legend>

						<label for="<?php 
                        echo $value['id'];
                        ?>
">
						<input
							name="<?php 
                        echo esc_attr($value['id']);
                        ?>
"
							id="<?php 
                        echo esc_attr($value['id']);
                        ?>
"
							type="checkbox"
							value="1"
							<?php 
                        checked($option_value, 'yes');
                        ?>
							<?php 
                        echo implode(' ', $custom_attributes);
                        ?>
						/> <?php 
                        echo wp_kses_post($value['desc']);
                        ?>
</label> <?php 
                        echo $tip;
                        ?>
					<?php 
                        if (!isset($value['checkboxgroup']) || isset($value['checkboxgroup']) && $value['checkboxgroup'] == 'end') {
                            ?>
							</fieldset>
						</td>
						</tr>
						<?php 
                        } else {
                            ?>
						</fieldset>
						<?php 
                        }
                        break;
                        // Default: run an action
                    // Default: run an action
                    default:
                        do_action('mailpoet_paid_memberships_pro_add_on_admin_field_' . $value['type'], $value);
                        break;
                }
                // end switch
            }
        }
<?php

if (!defined('ABSPATH')) {
    exit;
}
// Exit if accessed directly
?>
<div id="message" class="updated mailpoet-paid-memberships-pro-add-on-message">
	<p><?php 
echo sprintf(__('<strong>%s Data Update Required</strong> &#8211; We just need to update your install to the latest version', 'mailpoet_paid_memberships_pro_addon'), MailPoet_Paid_Memberships_Pro_Addon()->name);
?>
</p>
	<p class="submit"><a href="<?php 
echo add_query_arg('do_update_mailpoet_paid_memberships_pro_add_on', 'true', admin_url('options-general.php?page=pmpro-mailpoet'));
?>
" class="mailpoet-paid-memberships-pro-add-on-update-now button-primary"><?php 
_e('Run the updater', 'mailpoet_paid_memberships_pro_addon');
?>
</a></p>
</div>
<script type="text/javascript">
	jQuery('.mailpoet-paid-memberships-pro-add-on-update-now').click('click', function(){
		var answer = confirm( '<?php 
_e('It is strongly recommended that you backup your database before proceeding. Are you sure you wish to run the updater now?', 'mailpoet_paid_memberships_pro_addon');
?>
' );
		return answer;
	});
</script>
        {
            $url = $this->plugin_url() . $file_path;
            $file = $this->plugin_path() . $file_path;
            if (file_exists($file)) {
                if ($is_script) {
                    wp_register_script($name, $url, $support, $version);
                    wp_enqueue_script($name);
                } else {
                    wp_register_style($name, $url);
                    wp_enqueue_style($name);
                }
                // end if
            }
            // end if
        }
    }
    // end class
}
// end if class exists
/**
 * Returns the main instance of MailPoet_Paid_Memberships_Pro_Addon to prevent the need to use globals.
 *
 * @return 
 */
function MailPoet_Paid_Memberships_Pro_Addon()
{
    return MailPoet_Paid_Memberships_Pro_Addon::instance();
}
// Global for backwards compatibility.
$GLOBALS['mailpoet_paid_memberships_pro_addon'] = MailPoet_Paid_Memberships_Pro_Addon();