コード例 #1
0
/**
 * 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;
}
コード例 #2
0
/**
 * 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);
}
コード例 #3
0
				<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>&nbsp;&nbsp;
コード例 #4
0
 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));
 }