/** * 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> – 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();