/** * register widget : multiple instance * admin instance * * @param array $widget_args * @return void * @since 1.0 */ function mgm_sidebar_widget_registration_admin($widget_args = 1) { global $wp_registered_widgets, $mgm_sidebar_widget; static $updated = false; if (is_numeric($widget_args)) { $widget_args = array('number' => $widget_args); } $widget_args = wp_parse_args($widget_args, array('number' => -1)); extract($widget_args, EXTR_SKIP); // options init $options = $mgm_sidebar_widget->register_widget; // default if (!is_array($options)) { $options = array(); } // m_sidebar $m_sidebar = mgm_post_var('sidebar'); // update if (!$updated && !empty($m_sidebar)) { $sidebar = (string) $m_sidebar; $sidebars_widgets = wp_get_sidebars_widgets(); if (isset($sidebars_widgets[$sidebar])) { $this_sidebar =& $sidebars_widgets[$sidebar]; } else { $this_sidebar = array(); } foreach ($this_sidebar as $_widget_id) { // check if (isset($wp_registered_widgets[$_widget_id]['callback']) && isset($wp_registered_widgets[$_widget_id]['params'][0]['number'])) { if ('mgm_widget_registration' == $wp_registered_widgets[$_widget_id]['callback']) { $widget_number = $wp_registered_widgets[$_widget_id]['params'][0]['number']; if (!in_array("registration-{$widget_number}", mgm_post_var('widget-id'))) { // the widget has been removed. unset($options[$widget_number]); } } } } // update foreach ((array) mgm_post_var('mgm_widget_registration') as $widget_number => $mgm_widget_registration) { if (!isset($mgm_widget_registration['title']) && isset($options[$widget_number])) { // user clicked cancel continue; } // set vars $title = isset($mgm_widget_registration['title']) ? stripslashes($mgm_widget_registration['title']) : ''; $intro = isset($mgm_widget_registration['intro']) ? stripslashes($mgm_widget_registration['intro']) : ''; $use_custom_fields = isset($mgm_widget_registration['use_custom_fields']) ? $mgm_widget_registration['use_custom_fields'] : false; //Issue #777 $default_subscription_pack = isset($mgm_widget_registration['default_subscription_pack']) ? $mgm_widget_registration['default_subscription_pack'] : 'free'; // set $options[$widget_number] = compact('title', 'intro', 'use_custom_fields', 'default_subscription_pack'); } // update $mgm_sidebar_widget->register_widget = $options; // save $mgm_sidebar_widget->save(); // updated $updated = true; } // get selected if (-1 == $number) { $number = '%i%'; // convert to js expression $js_number = '_i_'; $title = __('Register', 'mgm'); $intro = trim($mgm_sidebar_widget->default_text['active_intro']); $use_custom_fields = false; $default_subscription_pack = 'free'; } else { // convert to js expression $js_number = $number; $title = stripslashes($options[$number]['title']); $intro = stripslashes($options[$number]['intro']); $use_custom_fields = $options[$number]['use_custom_fields']; $default_subscription_pack = $options[$number]['default_subscription_pack']; } // Issue #777 $subscription_pack_list = sprintf('<option value="-">%s</option>', __('Select', 'mgm')); foreach ($packages = mgm_get_subscription_packages() as $pack) { if ($default_subscription_pack == $pack['key']) { $subscription_pack_list .= sprintf('<option selected="selected" value="%s">%s</option>', $pack['key'], $pack['label']); } else { $subscription_pack_list .= sprintf('<option value="%s">%s</option>', $pack['key'], $pack['label']); } } // generate html $html = '<input type="hidden" name="mgm_widget_registration[' . $number . '][submit]" id="mgm_widget_registration_submit_' . $js_number . '" value="1" /> <p> <div class="mgm_margin_bottom_5px"> <label for="mgm_register_sidebar_widget_title"> <div><strong>' . __('Widget Title', 'mgm') . '</strong></div> <input class="mgm_width_300px" type="text" name="mgm_widget_registration[' . $number . '][title]" id="mgm_widget_registration_title_' . $js_number . '" value="' . $title . '"/> </label> </div> <div class="mgm_margin_bottom_5px"> <label for="mgm_register_sidebar_widget_use_custom_fields"> <input class="mgm_width_30px" type="checkbox" ' . ($use_custom_fields ? 'checked="checked"' : '') . ' name="mgm_widget_registration[' . $number . '][use_custom_fields]" id="mgm_widget_registration_use_custom_fields_' . $js_number . '" value="1"/> <strong>' . __('Use Custom Fields in form?', 'mgm') . '</strong> </label> </div> <div class="mgm_margin_bottom_5px" id="cusFldDropdown_' . $number . '"> <label for="mgm_register__widget_default_subscription_pack"> <div><strong>' . __('Select default subscription pack ', 'mgm') . '</strong></div> <select class="mgm_width_300px" name="mgm_widget_registration[' . $number . '][default_subscription_pack]" id="mgm_widget_registration_default_subscription_pack_' . $js_number . '">' . $subscription_pack_list . '</select> </label> </div> <div class="mgm_margin_bottom_5px"> <label for="mgm_register_sidebar_widget_active_intro"> <div><strong>' . __('Introduction', 'mgm') . '</strong></div> <textarea rows="6" cols="50" name="mgm_widget_registration[' . $number . '][intro]" id="mgm_widget_registration_intro_' . $js_number . '" >' . $intro . '</textarea> </label> </div> </p>'; // script $html .= '<script language="javascript"> jQuery(document).ready(function(){ if(jQuery("#mgm_widget_registration_use_custom_fields_' . $js_number . '").val() == 1){ //issue #1298 if(jQuery("#mgm_widget_registration_use_custom_fields_' . $js_number . '").is(":checked")){ jQuery("#cusFldDropdown_' . $js_number . '").hide(); } }else{ jQuery("#cusFldDropdown_' . $js_number . '").show(); } jQuery("#mgm_widget_registration_use_custom_fields_' . $js_number . '").click(function() { if(this.checked){ jQuery("#cusFldDropdown_' . $js_number . '").hide(); jQuery("#mgm_widget_registration_use_custom_fields_' . $js_number . '").val(1); }else{ jQuery("#cusFldDropdown_' . $js_number . '").show(); jQuery("#mgm_widget_registration_use_custom_fields_' . $js_number . '").val(1); } }); }); </script>'; // print print $html; }
/** * check limited memberships, processes limited members cancel or expire where rebill status query * not supported or failed * * @param void * @return void */ function mgm_check_limited_memberships() { global $wpdb; // meta query, to fetch active and awaiting cancel for limited billing only $meta_query = array(); //loop foreach ($packages = mgm_get_subscription_packages() as $pack) { $meta_query[] = array(array('key' => '_mgm_user_status', 'value' => array(MGM_STATUS_ACTIVE, MGM_STATUS_AWAITING_CANCEL), 'type' => 'CHAR', 'compare' => 'IN'), array('key' => sprintf('mgm_user_billing_num_cycles_%d', $pack['id']), 'value' => 'ongoing', 'compare' => '!=')); } //users $a_users = array(); //loop foreach ($meta_query as $key) { // fetch on meta $a_users = array_merge($a_users, mgm_get_users_with_meta($key, null, null, null)); //'OR' ); } // process mgm_check_memberships_to_extend($a_users); }
<input type="checkbox" class="checkbox" name="update_opt[]" value="subscription" /> <b><?php _e('Subscription Pack', 'mgm'); ?> </b> </div> </div> <div class="row"> <div class="cell "> <div id="upd_elements_subscription"> <select name="upd_subscription_pack" id="upd_subscription_pack" disabled="disabled" class="width250px"> <option value="-"><?php _e('Select', 'mgm'); ?> </option> <?php foreach ($packages = mgm_get_subscription_packages() as $pack) { echo '<option value="' . $pack['key'] . '">' . $pack['label'] . '</option>'; } ?> </select> <div style="padding-top:5px"> <?php if ($data['enable_multiple_level_purchase']) { ?> <input type="checkbox" name="insert_new_level" id="insert_new_level" value="new" disabled="disabled" class="checkbox"/> <b><?php _e('Apply as additional subscription', 'mgm'); ?> </b>
function subscription_package() { global $wpdb; // extract extract($_POST); // roles $wproles = new WP_Roles(); $roles = array_reverse($wproles->role_names); $payment_modules = mgm_get_class('system')->get_active_modules('payment'); // check if any module supports trial setup i.e. paypal authorizenet $supports_trial = false; foreach ($payment_modules as $payment_module) { if (mgm_get_module($payment_module, 'payment')->is_trial_supported()) { $supports_trial = true; break; } } // get object $obj_sp = mgm_get_class('subscription_packs'); // create empty pack $new_pack = $obj_sp->add_pack($type); // pack data $pack_data = array(); // roles $pack_data['roles'] = $roles; // supports_trial $pack_data['supports_trial'] = $supports_trial; // payment_modules $pack_data['payment_modules'] = $payment_modules; // set $pack_data['pack_ctr'] = key($new_pack); // pack $pack = current($new_pack); // def values $pack['num_cycles'] = isset($pack['num_cycles']) ? $pack['num_cycles'] : 1; $pack['role'] = isset($pack['role']) ? $pack['role'] : 'subscriber'; $pack['default'] = (int) (isset($pack['default']) ? $pack['default'] : 0); // pack $pack_data['pack'] = $pack; // objects $pack_data['obj_sp'] = $obj_sp; // packs $pack_data['packages'] = mgm_get_subscription_packages($obj_sp, NULL, array($pack['id'])); // load template view $this->load->template('members/subscription/package', array('data' => $pack_data)); }