/** * Returns a list of all registered Add-Ons * * @since 1.0.0 * @return array Add-on lisl */ public static function get_addons() { static $Done = false; $res = null; if (!$Done || self::$_reload_files) { self::$_registered = array(); $addons = array(); $Done = true; self::load_core_addons(); // Register core add-ons $addons = self::get_core_list(); /** * Register new addons. * * @since 1.0.0 */ $addons = apply_filters('ms_model_addon_register', $addons); // Sanitation and populate default fields. foreach ($addons as $key => $data) { self::$_registered[$key] = $data->name; $addons[$key]->id = $key; $addons[$key]->active = self::is_enabled($key); $addons[$key]->title = $data->name; if (isset($addons[$key]->icon)) { $addons[$key]->icon = '<i class="' . $addons[$key]->icon . '"></i>'; } else { $addons[$key]->icon = '<i class="wpmui-fa wpmui-fa-puzzle-piece"></i>'; } if (empty($addons[$key]->action)) { $addons[$key]->action = array(); $addons[$key]->action[] = array('id' => 'ms-toggle-' . $key, 'type' => MS_Helper_Html::INPUT_TYPE_RADIO_SLIDER, 'value' => self::is_enabled($key), 'class' => 'toggle-plugin', 'ajax_data' => array('action' => MS_Controller_Addon::AJAX_ACTION_TOGGLE_ADDON, 'field' => 'active', 'addon' => $key)); $addons[$key]->action[] = MS_Helper_Html::save_text(null, false, true); } /** * Add custom Actions or remove default actions * * @since 1.0.0 */ $addons[$key]->action = apply_filters('ms_model_addon_action-' . $key, $addons[$key]->action, $addons[$key]); } natcasesort(self::$_registered); foreach (self::$_registered as $key => $dummy) { self::$_registered[$key] = $addons[$key]; } /** * The Add-on list is prepared. Initialize the addons now. * * @since 1.0.0 */ do_action('ms_model_addon_initialize'); } return self::$_registered; }
/** * Render the payment box for a single Membership subscription. * * @since 1.0.0 */ public function specific_payment_settings() { $membership = $this->data['membership']; $title = sprintf(__('Payment settings for %s', MS_TEXT_DOMAIN), $membership->get_name_tag()); $type_class = $this->data['is_global_payments_set'] ? '' : 'ms-half right'; ?> <div class="ms-specific-payment-wrapper <?php echo esc_attr($type_class); ?> "> <div class="ms-header"> <div class="ms-settings-tab-title"> <h3><?php echo $title; ?> </h3> </div> <?php MS_Helper_Html::html_separator(); ?> </div> <div class="inside"> <?php $view = MS_Factory::create('MS_View_Membership_Tab_Payment'); $view->data = $this->data; echo $view->to_html(); ?> </div> <?php MS_Helper_Html::save_text(); ?> </div> <?php }