本文整理汇总了PHP中MS_Model_Membership::get_memberships方法的典型用法代码示例。如果您正苦于以下问题:PHP MS_Model_Membership::get_memberships方法的具体用法?PHP MS_Model_Membership::get_memberships怎么用?PHP MS_Model_Membership::get_memberships使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MS_Model_Membership
的用法示例。
在下文中一共展示了MS_Model_Membership::get_memberships方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: init
/**
* Initialize the rule object.
*
* @since 4.6
*/
protected function init()
{
global $wpdb;
$this->filename = basename(__FILE__);
// 'pc_subscription' rule.
$this->add_rule('pc_subscription', __('For Members (Membership 2)', PO_LANG), __('Only shows the PopUp if the user has subscribed to a certain Membership (Membership2 plugin).', PO_LANG), 'pc_unsubscription', 25);
// 'pc_unsubscription' rule.
$this->add_rule('pc_unsubscription', __('For Non-Members (Membership 2)', PO_LANG), __('Only shows the PopUp if the user has not yet subscribed to a certain Membership (Membership2 plugin).', PO_LANG), 'pc_subscription', 25);
// -- Initialize rule.
/**
* Note we're not using the M2 API yet, because it was introduced only
* a few releases back and some people that use older version of M2/PC
* will have problems if we do.
*
* @todo replace with official API function anytime in 2016
*
* $this->is_active = false;
* if ( apply_filters( 'ms_active', false ) ) {
* $this->is_active = true;
* $this->memberships = MS_Plugin::$api->list_memberships( true );
* }
*
*/
$this->is_active = class_exists('MS_Plugin');
if (!$this->is_active) {
return;
}
$args = array('include_base' => false, 'include_guest' => true);
$list = MS_Model_Membership::get_memberships($args);
$this->memberships = $list;
}
示例2: __construct
/**
* Constructor.
*
* @since 1.0.0
*/
public function __construct()
{
parent::__construct(array('singular' => 'member', 'plural' => 'members', 'ajax' => false));
add_action('ms_helper_listtable_searchbox_start', array($this, 'searchbox_filters'));
$memberships = MS_Model_Membership::get_memberships(array('include_guest' => 0));
self::$memberships = array();
foreach ($memberships as $item) {
self::$memberships[$item->id] = (object) array('label' => $item->name, 'attr' => sprintf('data-color="%1$s"', $item->get_color()));
}
}
示例3: get_fields
/**
* Prepares fields for the edit form.
*
* @since 1.0.1.0
* @return array
*/
protected function get_fields()
{
$args = array('include_guest' => false);
$memberships = MS_Model_Membership::get_memberships($args);
$membership = $this->data['membership'];
$action = MS_Controller_Membership::AJAX_ACTION_UPDATE_MEMBERSHIP;
$nonce = wp_create_nonce($action);
$fields = array();
/*
* The value of "allow_val" is negated, because the radio-slider is
* reversed. So allow_val == false means that upgrading is allowed.
*
* This is just a UI tweak, the function ->update_allowed() returns true
* when upgrading is allowed.
*/
$list = array();
$list['guest'] = array('allow' => __('Users without Membership can subscribe', 'membership2'), 'allow_val' => !$membership->update_allowed('guest'));
foreach ($memberships as $item) {
if ($item->id == $membership->id) {
continue;
}
$list[$item->id] = array('allow' => sprintf(__('Members of %s can subscribe', 'membership2'), $item->get_name_tag()), 'allow_val' => !$membership->update_allowed($item->id));
if (MS_Model_Addon::is_enabled(MS_Model_Addon::ADDON_MULTI_MEMBERSHIPS)) {
$list[$item->id]['replace'] = sprintf(__('Cancel %s on subscription', 'membership2'), $item->get_name_tag());
$list[$item->id]['replace_val'] = $membership->update_replaces($item->id);
}
}
foreach ($list as $id => $data) {
$fields[] = array('id' => 'deny_update[' . $id . ']', 'type' => MS_Helper_Html::INPUT_TYPE_RADIO_SLIDER, 'title' => $data['allow'], 'value' => $data['allow_val'], 'before' => __('Allow', 'membership2'), 'after' => __('Deny', 'membership2'), 'class' => 'reverse', 'wrapper_class' => 'ms-block inline-label ms-allow', 'ajax_data' => array(1));
if (!empty($data['replace'])) {
if (MS_Addon_Prorate::is_active()) {
$after_label = __('Cancel and Pro-Rate', 'membership2');
} else {
$after_label = __('Cancel', 'membership2');
}
$fields[] = array('id' => 'replace_update[' . $id . ']', 'type' => MS_Helper_Html::INPUT_TYPE_RADIO_SLIDER, 'title' => $data['replace'], 'value' => $data['replace_val'], 'before' => __('Keep', 'membership2'), 'after' => $after_label, 'class' => 'reverse', 'wrapper_class' => 'ms-block inline-label ms-update-replace', 'ajax_data' => array(1));
}
$fields[] = array('type' => MS_Helper_Html::TYPE_HTML_SEPARATOR);
}
foreach ($fields as $key => $field) {
if (!empty($field['ajax_data'])) {
if (!empty($field['ajax_data']['action'])) {
continue;
}
if (!isset($fields[$key]['ajax_data']['field'])) {
$fields[$key]['ajax_data']['field'] = $fields[$key]['id'];
}
$fields[$key]['ajax_data']['_wpnonce'] = $nonce;
$fields[$key]['ajax_data']['action'] = $action;
$fields[$key]['ajax_data']['membership_id'] = $membership->id;
}
}
return $fields;
}
示例4: prepare_items
public function prepare_items()
{
$this->_column_headers = array($this->get_columns(), $this->get_hidden_columns(), $this->get_sortable_columns());
$args = array();
if (!empty($_REQUEST['orderby']) && !empty($_REQUEST['order'])) {
$args['orderby'] = $_REQUEST['orderby'];
$args['order'] = $_REQUEST['order'];
}
// Prepare order by statement.
if (!empty($args['orderby']) && property_exists('MS_Model_Membership', $args['orderby'])) {
$args['meta_key'] = $args['orderby'];
$args['orderby'] = 'meta_value';
}
$this->items = apply_filters('membership_helper_listtable_membership_items', MS_Model_Membership::get_memberships($args));
}
示例5: __construct
/**
* Initialize the list table
*
* @since 1.0.0
* @param MS_Rule $model Rule-Model
*/
public function __construct($model)
{
parent::__construct(array('singular' => 'rule_' . $this->id, 'plural' => 'rules_' . $this->id, 'ajax' => false));
$this->name['singular'] = __('Item', 'membership2');
$this->name['plural'] = __('Items', 'membership2');
$this->name['default_access'] = __('Everyone', 'membership2');
$this->model = $model;
$this->membership = MS_Model_Membership::get_base();
$memberships = MS_Model_Membership::get_memberships();
self::$memberships = array();
foreach ($memberships as $item) {
self::$memberships[$item->id] = (object) array('label' => $item->name, 'attr' => sprintf('data-color="%1$s"', $item->get_color()));
}
// Add code right before the bulk actions are displayed.
add_action('ms_listtable_before_bulk_actions', array($this, 'add_rule_type'));
}
示例6: can_subscribe_to
/**
* Checks if the current user is allowed to subscribe to the specified
* membership.
*
* @since 1.0.1.0
* @api
* @param int $membership_id A membership_id.
* @return bool Whether subscription is allowed or not.
*/
public function can_subscribe_to($membership_id)
{
static $Access_Flags = null;
if (null === $Access_Flags) {
$Access_Flags = array();
$active_memberships = $this->get_active_memberships();
$all_memberships = MS_Model_Membership::get_memberships();
/**
* Controls how to handle conflicts in upgrade path settings when a
* member has multiple memberships.
*
* Default is true:
* If one membership forbids the upgrade, then that's it.
*
* Custom set to false:
* If one membership allows the upgrade, then allow it.
*
* @since 1.0.1.0
* @var bool
*/
$prefer_forbidden = apply_filters('ms_model_member_can_subscribe_to_prefer_forbidden', true);
foreach ($active_memberships as $membership) {
$base_id = $membership->id;
if ($membership->is_guest() || $membership->is_user()) {
$base_id = 'guest';
}
foreach ($all_memberships as $ms) {
if (isset($active_memberships[$ms->id])) {
continue;
}
$is_allowed = $ms->update_allowed($base_id);
if (!isset($Access_Flags[$ms->id])) {
$Access_Flags[$ms->id] = $is_allowed;
} else {
if ($prefer_forbidden && !$is_allowed) {
$Access_Flags[$ms->id] = $is_allowed;
} elseif (!$prefer_forbidden && $is_allowed) {
$Access_Flags[$ms->id] = $is_allowed;
}
}
}
}
}
$result = true;
if (isset($Access_Flags[$membership_id])) {
$result = $Access_Flags[$membership_id];
}
return apply_filters('ms_model_member_can_subscribe_to', $result, $membership_id);
}
示例7: _upgrade_1_0_2_4
/**
* Upgrade from 1.0.2.x version to 1.0.2.4 version.
*/
private static function _upgrade_1_0_2_4()
{
lib3()->updates->clear();
$memberships = MS_Model_Membership::get_memberships();
foreach ($memberships as $item) {
$source_id = $membership->source_id;
if (empty($source_id)) {
continue;
}
$data = lib3()->array->get($membership->get_custom_data('matching'));
if (!isset($data['m1'])) {
$data['m1'] = array();
}
$data['m1'] = lib3()->array->get($data['m1']);
$data['m1'][] = $source_id;
$membership->set_custom_data('matching', $data);
$membership->save();
}
}
示例8: prepare_fields_edit
/**
* Input fields displayed in the "Edit Member" screen.
*
* @since 1.0.1.0
* @return array
*/
public function prepare_fields_edit()
{
$action_update = MS_Controller_Member::ACTION_UPDATE_MEMBER;
$action_modify = MS_Controller_Member::ACTION_MODIFY_SUBSCRIPTIONS;
$user_id = $this->data['user_id'];
$user = MS_Factory::load('MS_Model_Member', $user_id);
$unused_memberships = array();
$temp_memberships = MS_Model_Membership::get_memberships(array('include_guest' => 0));
foreach ($temp_memberships as $membership) {
$unused_memberships[$membership->id] = $membership;
}
$fields = array();
$fields['editor'] = array('title' => array('type' => MS_Helper_Html::TYPE_HTML_TEXT, 'class' => 'group-title', 'value' => __('Basic Profile details', MS_TEXT_DOMAIN)), 'username' => array('id' => 'username', 'type' => MS_Helper_Html::INPUT_TYPE_TEXT, 'title' => __('Username', MS_TEXT_DOMAIN), 'value' => $user->username, 'class' => 'ms-text-medium', 'config' => array('disabled' => 'disabled')), 'email' => array('id' => 'email', 'type' => MS_Helper_Html::INPUT_TYPE_TEXT, 'title' => __('Email', MS_TEXT_DOMAIN), 'value' => $user->email, 'class' => 'ms-text-medium'), 'first_name' => array('id' => 'first_name', 'type' => MS_Helper_Html::INPUT_TYPE_TEXT, 'title' => __('First Name', MS_TEXT_DOMAIN), 'value' => $user->first_name, 'class' => 'ms-text-medium'), 'last_name' => array('id' => 'last_name', 'type' => MS_Helper_Html::INPUT_TYPE_TEXT, 'title' => __('Last Name', MS_TEXT_DOMAIN), 'value' => $user->last_name, 'class' => 'ms-text-medium'), 'displayname' => array('id' => 'displayname', 'type' => MS_Helper_Html::INPUT_TYPE_TEXT, 'title' => __('Display Name', MS_TEXT_DOMAIN), 'value' => $user->get_user()->display_name, 'class' => 'ms-text-medium'), 'sep' => array('type' => MS_Helper_Html::TYPE_HTML_SEPARATOR), 'user_id' => array('id' => 'user_id', 'type' => MS_Helper_Html::INPUT_TYPE_HIDDEN, 'value' => $user->id), 'button' => array('id' => 'btn_save', 'type' => MS_Helper_Html::INPUT_TYPE_SUBMIT, 'value' => __('Save', MS_TEXT_DOMAIN)), 'profile' => array('id' => 'user_profile', 'type' => MS_Helper_Html::TYPE_HTML_LINK, 'value' => __('Full User Profile', MS_TEXT_DOMAIN) . ' »', 'url' => admin_url('user-edit.php?user_id=' . $user->id), 'class' => 'button wpmui-field-input'), 'action' => array('id' => 'action', 'type' => MS_Helper_Html::INPUT_TYPE_HIDDEN, 'value' => $action_update), '_wpnonce' => array('id' => '_wpnonce', 'type' => MS_Helper_Html::INPUT_TYPE_HIDDEN, 'value' => wp_create_nonce($action_update)));
$fields['subscriptions'] = array();
// Section: Edit existing subscriptions.
$fields['subscriptions'][] = array('type' => MS_Helper_Html::TYPE_HTML_TEXT, 'class' => 'group-title', 'value' => __('Manage Subscriptions', MS_TEXT_DOMAIN));
if ($user->subscriptions) {
$gateways = MS_Model_Gateway::get_gateway_names(false, true);
foreach ($user->subscriptions as $subscription) {
if (MS_Model_Relationship::STATUS_DEACTIVATED == $subscription->status) {
continue;
}
$the_membership = $subscription->get_membership();
unset($unused_memberships[$the_membership->id]);
$status_options = array(MS_Model_Relationship::STATUS_PENDING => __('Pending (activate on next payment)', MS_TEXT_DOMAIN), MS_Model_Relationship::STATUS_WAITING => __('Waiting (activate on start date)', MS_TEXT_DOMAIN), MS_Model_Relationship::STATUS_TRIAL => __('Trial Active', MS_TEXT_DOMAIN), MS_Model_Relationship::STATUS_ACTIVE => __('Active', MS_TEXT_DOMAIN), MS_Model_Relationship::STATUS_CANCELED => __('Cancelled (deactivate on expire date)', MS_TEXT_DOMAIN), MS_Model_Relationship::STATUS_TRIAL_EXPIRED => __('Trial Expired (activate on next payment)', MS_TEXT_DOMAIN), MS_Model_Relationship::STATUS_EXPIRED => __('Expired (no access) ', MS_TEXT_DOMAIN), MS_Model_Relationship::STATUS_DEACTIVATED => __('Deactivated (no access)', MS_TEXT_DOMAIN));
if (!$the_membership->has_trial()) {
unset($status_options[MS_Model_Relationship::STATUS_TRIAL]);
unset($status_options[MS_Model_Relationship::STATUS_TRIAL_EXPIRED]);
}
if (isset($gateways[$subscription->gateway_id])) {
$gateway_name = $gateways[$subscription->gateway_id];
} elseif (empty($subscription->gateway_id)) {
$gateway_name = __('- No Gateway -', MS_TEXT_DOMAIN);
} else {
$gateway_name = '(' . $subscription->gateway_id . ')';
}
$field_start = array('name' => 'mem_' . $the_membership->id . '[start]', 'type' => MS_Helper_Html::INPUT_TYPE_DATEPICKER, 'value' => $subscription->start_date);
$field_expire = array('name' => 'mem_' . $the_membership->id . '[expire]', 'type' => MS_Helper_Html::INPUT_TYPE_DATEPICKER, 'value' => $subscription->expire_date);
$field_status = array('name' => 'mem_' . $the_membership->id . '[status]', 'type' => MS_Helper_Html::INPUT_TYPE_SELECT, 'value' => $subscription->status, 'field_options' => $status_options);
$fields['subscriptions'][] = array('name' => 'memberships[]', 'type' => MS_Helper_Html::INPUT_TYPE_HIDDEN, 'value' => $the_membership->id);
$fields['subscriptions'][] = array('title' => $the_membership->get_name_tag(), 'type' => MS_Helper_Html::TYPE_HTML_TABLE, 'value' => array(array(__('Subscription ID', MS_TEXT_DOMAIN), $subscription->id), array(__('Payment Gateway', MS_TEXT_DOMAIN), $gateway_name), array(__('Payment Type', MS_TEXT_DOMAIN), $subscription->get_payment_description(null, true)), array(__('Start Date', MS_TEXT_DOMAIN) . ' <sup>*)</sup>', MS_Helper_Html::html_element($field_start, true)), array(__('Expire Date', MS_TEXT_DOMAIN) . ' <sup>*)</sup>', MS_Helper_Html::html_element($field_expire, true)), array(__('Status', MS_TEXT_DOMAIN) . ' <sup>*)</sup>', MS_Helper_Html::html_element($field_status, true))), 'field_options' => array('head_col' => true));
}
} else {
$fields['subscriptions'][] = array('type' => MS_Helper_Html::TYPE_HTML_TEXT, 'value' => __('This user does not have any subscriptions yet.', MS_TEXT_DOMAIN));
}
// Section: Add new subscription.
if (count($unused_memberships)) {
$options = array();
if (MS_Model_Addon::is_enabled(MS_Model_Addon::ADDON_MULTI_MEMBERSHIPS)) {
$field_type = MS_Helper_Html::INPUT_TYPE_CHECKBOX;
$group_title = __('Add Subscriptions', MS_TEXT_DOMAIN);
} else {
$field_type = MS_Helper_Html::INPUT_TYPE_RADIO;
$group_title = __('Set Subscription', MS_TEXT_DOMAIN);
}
$fields['subscriptions'][] = array('type' => MS_Helper_Html::TYPE_HTML_SEPARATOR);
$fields['subscriptions'][] = array('type' => MS_Helper_Html::TYPE_HTML_TEXT, 'class' => 'group-title', 'value' => $group_title);
foreach ($unused_memberships as $the_membership) {
$options[$the_membership->id] = $the_membership->get_name_tag();
}
$fields['subscriptions'][] = array('id' => 'subscribe', 'type' => $field_type, 'field_options' => $options);
$fields['subscriptions'][] = array('id' => 'user_id', 'type' => MS_Helper_Html::INPUT_TYPE_HIDDEN, 'value' => $user->id);
}
if ($user->subscriptions) {
$fields['subscriptions'][] = array('type' => MS_Helper_Html::TYPE_HTML_SEPARATOR);
$fields['subscriptions'][] = array('type' => MS_Helper_Html::TYPE_HTML_TEXT, 'value' => '<sup>*)</sup> ' . __('Subscription Dates and Status are validated when saved and might result in a different value then the one specified above.', MS_TEXT_DOMAIN), 'class' => 'info-field');
}
$fields['subscriptions'][] = array('id' => 'btn_modify', 'type' => MS_Helper_Html::INPUT_TYPE_SUBMIT, 'value' => __('Save Changes', MS_TEXT_DOMAIN));
$fields['subscriptions'][] = array('id' => 'history', 'type' => MS_Helper_Html::TYPE_HTML_LINK, 'value' => '<i class="dashicons dashicons-id"></i>' . __('History and logs', MS_TEXT_DOMAIN), 'url' => '#history', 'class' => 'button wpmui-field-input', 'config' => array('data-ms-dialog' => 'View_Member_Dialog', 'data-ms-data' => array('member_id' => $user->id)));
$fields['subscriptions'][] = array('id' => 'action', 'type' => MS_Helper_Html::INPUT_TYPE_HIDDEN, 'value' => $action_modify);
$fields['subscriptions'][] = array('id' => '_wpnonce', 'type' => MS_Helper_Html::INPUT_TYPE_HIDDEN, 'value' => wp_create_nonce($action_modify));
return apply_filters('ms_view_member_editor_fields_edit', $fields);
}
示例9: toggle_membership_access
/**
* Toggle membership access.
*
* @since 1.0.0
*
* @param int $post_id The post id or attachment id to save access to.
* @param string $rule_type The membership rule type.
* @param array $membership_id The membership id to toggle access
*/
public function toggle_membership_access($post_id, $rule_type, $membership_id)
{
if ($this->is_admin_user()) {
$membership = MS_Factory::load('MS_Model_Membership', $membership_id);
$rule = $membership->get_rule($rule_type);
$protected = !$rule->get_rule_value($post_id);
if ($membership->is_base()) {
/*
* If we just modified the protection for the whole post then we
* have to update every single membership with the new rule
* value before changing the base rule itself.
*/
$all_memberships = MS_Model_Membership::get_memberships();
foreach ($all_memberships as $the_membership) {
if ($the_membership->is_base) {
continue;
}
$the_rule = $the_membership->get_rule($rule_type);
if ($protected) {
$the_rule->give_access($post_id);
} else {
$the_rule->remove_access($post_id);
}
$the_membership->set_rule($rule_type, $the_rule);
$the_membership->save();
}
}
if ($rule) {
if ($protected) {
$rule->give_access($post_id);
} else {
$rule->remove_access($post_id);
}
$membership->set_rule($rule_type, $rule);
$membership->save();
}
}
do_action('ms_controller_membership_metabox_toggle_membership_access', $post_id, $rule_type, $membership_id, $this);
}
示例10: views
/**
* Display custom text after the view-links are rendered.
*
* @since 1.0.1.2
*/
public function views()
{
parent::views();
if (!$this->matching_type || !$this->matching_type_id) {
if (!MS_Model_Import::can_match()) {
$url = MS_Controller_Plugin::get_admin_url('billing', array('show' => 'logs'));
echo '<p>';
_e('No suitable transaction found.', 'membership2');
echo '</p><p>';
printf('<strong>%s</strong><br />', __('Nothing to do right now:', 'membership2'));
_e('Transactions that can be automatically matched will appear here when they are processed by a payment gateway.<br>So simply check again later after new payments were made.', 'membership2');
echo '</p><p>';
printf(__('If you are impatient then "Retry" some error-state transactions in the %sTransaction Logs%s section and then see if they appear on this page.', 'membership2'), '<a href="' . $url . '">', '</a>');
echo '</p>';
}
// Don't display anything if no matching source was selected.
return;
}
if (!MS_Model_Import::can_match($this->matching_type_id, $this->matching_type)) {
// For this transaction details is no matching possible right now.
return;
}
$settings = MS_Factory::load('MS_Model_Settings');
$label = $this->get_source_label($this->matching_type, $this->matching_type_id);
$memberships = MS_Model_Membership::get_memberships();
$options = array('0' => '-----');
foreach ($memberships as $item) {
if ($item->is_system()) {
continue;
}
if ($item->is_free()) {
$options[$item->id] = sprintf('%s • %s', $item->name, __('Free', 'membership2'));
} else {
$options[$item->id] = sprintf('%s • %s • %s', $item->name, $settings->currency . ' ' . MS_Helper_Billing::format_price($item->price), $item->get_payment_type_desc());
}
}
asort($options);
$field_memberships = array('id' => 'match_with', 'type' => MS_Helper_Html::INPUT_TYPE_SELECT, 'before' => sprintf(__('2. Link %s with', 'membership2'), '<b>' . $label . '</b>'), 'field_options' => $options);
$field_action = array('id' => 'action', 'type' => MS_Helper_Html::INPUT_TYPE_HIDDEN, 'value' => MS_Controller_Import::AJAX_ACTION_MATCH);
$field_source = array('id' => 'source', 'type' => MS_Helper_Html::INPUT_TYPE_HIDDEN, 'value' => $this->matching_type);
$field_source_id = array('id' => 'source_id', 'type' => MS_Helper_Html::INPUT_TYPE_HIDDEN, 'value' => $this->matching_type_id);
$field_save = array('class' => 'action-match', 'type' => MS_Helper_Html::INPUT_TYPE_SUBMIT, 'value' => __('Save', 'membership2'));
$field_retry_action = array('class' => 'retry_action', 'type' => MS_Helper_Html::INPUT_TYPE_HIDDEN, 'value' => MS_Controller_Import::AJAX_ACTION_RETRY);
$field_retry_nonce = array('class' => 'retry_nonce', 'type' => MS_Helper_Html::INPUT_TYPE_HIDDEN, 'value' => wp_create_nonce(MS_Controller_Import::AJAX_ACTION_RETRY));
?>
<div class="cf"></div>
<form class="transaction-matching">
<?php
wp_nonce_field(MS_Controller_Import::AJAX_ACTION_MATCH);
MS_Helper_Html::html_element($field_retry_action);
MS_Helper_Html::html_element($field_retry_nonce);
MS_Helper_Html::html_element($field_action);
MS_Helper_Html::html_element($field_source);
MS_Helper_Html::html_element($field_source_id);
?>
<div class="content">
<p><?php
printf(__('1. Below is a list of possible "%s" transactions. Examine these transactions to find out which Membership they refer to.', 'membership2'), '<b>' . $label . '</b>');
?>
</p>
<hr />
<p><?php
MS_Helper_Html::html_element($field_memberships);
?>
</p>
<div style="margin-left:14px">
<?php
_e('Notes:', 'membership2');
?>
<br />
<?php
_e('This choice is saved so new transactions are processed automatically from now on.', 'membership2');
?>
<br />
<?php
_e('Upon saving all transactions below will be processed, this might take a while.', 'membership2');
?>
</div>
</div>
<div class="buttons">
<?php
MS_Helper_Html::html_element($field_save);
?>
</div>
</form>
<?php
}
开发者ID:nayabbukhari,项目名称:circulocristiano,代码行数:92,代码来源:class-ms-helper-listtable-transactionmatching.php
示例11: get_access_info
/**
* Returns an array with access-information on the current page/user
*
* @since 1.0.0
*
* @return array {
* Access information
*
* @type bool $has_access If the current user can view the current page.
* @type array $memberships List of active membership-IDs the user has
* registered to.
* }
*/
public function get_access_info()
{
static $Info = null;
if (null === $Info) {
$Info = array('has_access' => null, 'is_admin' => false, 'memberships' => array(), 'url' => MS_Helper_Utility::get_current_url());
// The ID of the main system membership.
$base_id = MS_Model_Membership::get_base()->id;
$simulation = $this->member->is_simulated_user() || isset($_GET['explain']) && 'access' == $_GET['explain'];
if ($simulation) {
$Info['reason'] = array();
}
if ($this->member->is_normal_admin()) {
// Admins have access to ALL memberships.
$Info['is_admin'] = true;
$Info['has_access'] = true;
if ($simulation) {
$Info['reason'][] = __('Allow: Admin-User always has access', MS_TEXT_DOMAIN);
}
$memberships = MS_Model_Membership::get_memberships();
foreach ($memberships as $membership) {
$Info['memberships'][] = $membership->id;
}
} else {
/*
* A non-admin visitor is only guaranteed access to special
* Membership2 pages:
* Registration, Login, etc.
*/
$ms_page = MS_Model_Pages::current_page();
if ($ms_page) {
$Info['has_access'] = true;
if ($simulation) {
$Info['reason'][] = __('Allow: This is a Membership Page', MS_TEXT_DOMAIN);
}
}
// Build a list of memberships the user belongs to and check permission.
foreach ($this->member->subscriptions as $subscription) {
// Verify status of the membership.
// Only active, trial or canceled (until it expires) status memberships.
if (!$this->member->has_membership($subscription->membership_id)) {
if ($simulation) {
$Info['reason'][] = sprintf(__('Skipped: Not a member of "%s"', MS_TEXT_DOMAIN), $subscription->get_membership()->name);
}
continue;
}
if ($base_id !== $subscription->membership_id) {
$Info['memberships'][] = $subscription->membership_id;
}
// If permission is not clear yet then check current membership...
if (true !== $Info['has_access']) {
$membership = $subscription->get_membership();
$access = $membership->has_access_to_current_page();
if (null === $access) {
if ($simulation) {
$Info['reason'][] = sprintf(__('Ignored: Membership "%s"', MS_TEXT_DOMAIN), $membership->name);
$Info['reason'][] = $membership->_access_reason;
}
continue;
}
if ($simulation) {
$Info['reason'][] = sprintf(__('%s: Membership "%s"', MS_TEXT_DOMAIN), $access ? __('Allow', MS_TEXT_DOMAIN) : __('Deny', MS_TEXT_DOMAIN), $membership->name);
$Info['deciding_membership'] = $membership->id;
if ($access) {
$Info['deciding_rule'] = $membership->_allow_rule;
} else {
$Info['deciding_rule'] = $membership->_deny_rule;
}
$Info['reason'][] = $membership->_access_reason;
}
$Info['has_access'] = $access;
}
}
if (null === $Info['has_access']) {
$Info['has_access'] = true;
if ($simulation) {
$Info['reason'][] = __('Allow: Page is not protected', MS_TEXT_DOMAIN);
}
}
// "membership-id: 0" means: User does not belong to any membership.
if (!count($Info['memberships'])) {
$Info['memberships'][] = 0;
}
}
$Info = apply_filters('ms_model_plugin_get_access_info', $Info);
if ($simulation) {
$access = lib2()->session->get_clear('ms-access');
lib2()->session->add('ms-access', $Info);
//.........这里部分代码省略.........
示例12: update_stripe_data
/**
* Checks all Memberships and creates/updates the payment plan on stripe if
* the membership changed since the plan was last changed.
*
* This function is called when the gateway is activated and after a
* membership was saved to database.
*
* @since 1.0.0
*/
public function update_stripe_data()
{
if (!$this->active) {
return false;
}
$this->_api->set_gateway($this);
// 1. Update all playment plans.
$memberships = MS_Model_Membership::get_memberships();
foreach ($memberships as $membership) {
$this->update_stripe_data_membership($membership);
}
// 2. Update all coupons (if Add-on is enabled)
if (MS_Addon_Coupon::is_active()) {
$coupons = MS_Addon_Coupon_Model::get_coupons();
foreach ($coupons as $coupon) {
$this->update_stripe_data_coupon($coupon);
}
}
}
示例13: prepare_fields
/**
* Prepare html fields.
*
* @since 1.0.0
*
* @return array
*/
public function prepare_fields()
{
// The ID of the main system membership.
$base_id = MS_Model_Membership::get_base()->id;
$sorted_memberships = array();
$memberships = MS_Model_Membership::get_memberships(array('include_base' => 1));
foreach ($memberships as $membership) {
if ($base_id == $membership->id) {
$label = __('- No membership / Visitor -', MS_TEXT_DOMAIN);
} else {
$label = $membership->name;
if (!$membership->active) {
$label .= ' ' . __('(Inactive)', MS_TEXT_DOMAIN);
}
}
$sorted_memberships[$membership->id] = $label;
}
asort($sorted_memberships);
$fields = array('exit_button' => array('type' => MS_Helper_Html::TYPE_HTML_LINK, 'value' => __('Exit Test Mode', MS_TEXT_DOMAIN), 'url' => MS_Controller_Adminbar::get_simulation_exit_url(), 'class' => 'button'), 'action_field' => array('name' => 'action', 'value' => 'ms_simulate', 'type' => MS_Helper_Html::INPUT_TYPE_HIDDEN), 'membership_id' => array('id' => 'ab-membership-id', 'name' => 'membership_id', 'value' => $this->data['membership_id'], 'type' => MS_Helper_Html::INPUT_TYPE_SELECT, 'field_options' => $sorted_memberships), 'nonce_field' => array('id' => '_wpnonce', 'value' => wp_create_nonce('ms_simulate'), 'type' => MS_Helper_Html::INPUT_TYPE_HIDDEN), 'simulate_date' => array('id' => 'simulate_date', 'type' => MS_Helper_Html::INPUT_TYPE_DATEPICKER, 'value' => $this->data['simulate_date'], 'class' => 'ms-admin-bar-date ms-date'), 'simulate_submit' => array('id' => 'simulate_submit', 'type' => MS_Helper_Html::INPUT_TYPE_SUBMIT, 'value' => __('Go', MS_TEXT_DOMAIN), 'class' => 'ms-admin-bar-submit'));
return apply_filters('ms_view_admin_bar_prepare_fields', $fields, $this);
}
示例14: members_admin_page_process_list
/**
* Manages membership actions.
*
* Verifies GET and POST requests to manage members
*
* @since 1.0.0
*/
public function members_admin_page_process_list()
{
$msg = 0;
$redirect = false;
if ($this->is_admin_user()) {
$fields_new = array('new_member', 'action');
$fields_edit = array('member_id', 'action');
// Execute list table single action.
if ($this->verify_nonce(null, 'GET') && self::validate_required($fields_edit, 'GET')) {
$msg = $this->member_list_do_action($_GET['action'], array($_GET['member_id']));
$redirect = esc_url_raw(add_query_arg(array('msg' => $msg), remove_query_arg(array('member_id', 'action', '_wpnonce'))));
} elseif ($this->verify_nonce('bulk')) {
lib2()->array->equip_post('action', 'action2', 'member_id');
$action = $_POST['action'];
if (empty($action) || $action == '-1') {
$action = $_POST['action2'];
}
$members = $_POST['member_id'];
/*
* The Bulk-Edit action is built like 'cmd-id'
* e.g. 'add-123' will add membership 123 to the selected items.
*/
if (empty($action)) {
$cmd = array();
} elseif (empty($members)) {
$cmd = array();
} elseif ('-1' == $action) {
$cmd = array();
} else {
$cmd = explode('-', $action);
}
if (2 == count($cmd)) {
$action = $cmd[0];
$action_id = $cmd[1];
// Get a list of specified memberships...
if (is_numeric($action_id)) {
// ... either a single membership.
$memberships = array(MS_Factory::load('MS_Model_Membership', $action_id));
} elseif ('all' == $action_id) {
// ... or all memberships.
$memberships = MS_Model_Membership::get_memberships();
}
// Loop defined memberships and add/remove members.
foreach ($memberships as $membership) {
$msg = $this->member_list_do_action($action, $members, $membership->id);
}
$redirect = esc_url_raw(add_query_arg(array('msg' => $msg)));
}
} elseif (isset($_POST['submit']) && $this->verify_nonce() && self::validate_required($fields_edit, 'POST')) {
if (is_array($_POST['member_id'])) {
$member_ids = $_POST['member_id'];
} else {
$member_ids = explode(',', $_POST['member_id']);
}
$msg = $this->member_list_do_action($_POST['action'], $member_ids, $_POST['membership_id']);
$redirect = esc_url_raw(add_query_arg(array('msg' => $msg)));
}
}
if ($redirect) {
wp_safe_redirect($redirect);
exit;
}
}
示例15: membership_by_matching
/**
* Find a M2 membership by a custom matching ID.
*
* The matching key and matching ID are stored in the memberships custom
* data array.
*
* See MS_Helper_Listtable_TransactionMatching for a list of matching_keys.
*
* @since 1.0.1.2
* @param int $matching_key The matching key.
* @param int $matching_id The matching ID.
* @return MS_Model_Membership|null The M2 membership.
*/
public static function membership_by_matching($matching_key, $matching_id)
{
$res = null;
$args = array('include_guest' => 0);
$memberships = MS_Model_Membership::get_memberships($args);
foreach ($memberships as $membership) {
$data = $membership->get_custom_data('matching');
if (empty($data) || !is_array($data)) {
continue;
}
if (!isset($data[$matching_key])) {
continue;
}
$ids = lib3()->array->get($data[$matching_key]);
foreach ($ids as $id) {
if ($matching_id == $id) {
$res = $membership;
break 2;
}
}
}
return $res;
}