本文整理汇总了PHP中rcp_get_subscription_id函数的典型用法代码示例。如果您正苦于以下问题:PHP rcp_get_subscription_id函数的具体用法?PHP rcp_get_subscription_id怎么用?PHP rcp_get_subscription_id使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了rcp_get_subscription_id函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: widget_visibility
/**
* Filter Jobify widget output depending on RCP subscription level.
*
* @since Jobify 1.6.0
*
* @return $widget
*/
function widget_visibility($widget, $instance, $args)
{
extract($args);
if (!isset($instance['subscription'])) {
return $widget;
}
$sub_level = maybe_unserialize($instance['subscription']);
if (!is_array($sub_level)) {
$sub_level = array();
}
if (!in_array(rcp_get_subscription_id(get_current_user_id()), $sub_level) && !empty($sub_level)) {
$widget = $before_widget . $this->subscription_teaser() . $after_widget;
}
return $widget;
}
示例2: jp_hide_lower_cost_levels
/**
* This will hide subscription levels on the registration form page
* if their price is lower than the price of member's current
* subscription level.
*/
function jp_hide_lower_cost_levels($levels)
{
if (!rcp_is_registration_page() || !is_user_logged_in()) {
return $levels;
}
$existing_sub = rcp_get_subscription_id(wp_get_current_user()->ID);
if (empty($existing_sub)) {
return $levels;
}
foreach ($levels as $key => $level) {
if (rcp_get_subscription_price($level->id) < rcp_get_subscription_price($existing_sub)) {
unset($levels[$key]);
}
}
return $levels;
}
示例3: rcp_filter_restricted_category_content
/**
* Filter restricted content based on category restrictions
*
* @access public
* @since 2.0
* @return $content
*/
function rcp_filter_restricted_category_content($content)
{
global $post, $user_ID, $rcp_options;
$has_access = true;
$categories = get_the_category($post->ID);
if (empty($categories)) {
return $content;
}
// Loop through the categories and determine if one has restriction options
foreach ($categories as $category) {
$term_meta = get_option("rcp_category_meta_{$category->term_id}");
if (!empty($term_meta)) {
/**
* Check that the user has a paid subscription
*/
$paid_only = !empty($term_meta['paid_only']);
if ($paid_only && !rcp_is_paid_user()) {
$has_access = false;
}
/**
* If restricted to one or more subscription levels, make sure that the user is a member of one of the levls
*/
$subscriptions = !empty($term_meta['subscriptions']) ? array_map('absint', $term_meta['subscriptions']) : false;
if ($subscriptions && !in_array(rcp_get_subscription_id(), $subscriptions)) {
$has_access = false;
}
/**
* If restricted to one or more access levels, make sure that the user is a member of one of the levls
*/
$access_level = !empty($term_meta['access_level']) ? absint($term_meta['access_level']) : 0;
if ($access_level > 0 && !rcp_user_has_access($user_ID, $access_level)) {
$has_access = false;
}
}
}
if (!$has_access) {
$message = !empty($rcp_options['paid_message']) ? $rcp_options['paid_message'] : __('You need to have an active subscription to view this content.', 'rcp');
return rcp_format_teaser($message);
}
return $content;
}
示例4: rcp_user_has_access
function rcp_user_has_access( $user_id = 0, $access_level_needed ) {
$subscription_level = rcp_get_subscription_id( $user_id );
$user_access_level = rcp_get_subscription_access_level( $subscription_level );
if( ( $user_access_level >= $access_level_needed ) || $access_level_needed == 0 || current_user_can( 'manage_options' ) ) {
// the user has access
return true;
}
// the user does not have access
return false;
}
示例5: rcp_process_data
//.........这里部分代码省略.........
$member->set_status('active');
break;
case 'mark-expired':
$member->set_status('expired');
break;
case 'mark-cancelled':
$member->set_status('cancelled');
break;
case 'delete':
wp_delete_user($member->ID);
break;
}
}
}
wp_redirect(admin_url('admin.php?page=rcp-members&rcp_message=members_updated'));
exit;
}
// edit a member's subscription
if (isset($_POST['rcp-action']) && $_POST['rcp-action'] == 'edit-member') {
if (!current_user_can('rcp_manage_members')) {
wp_die(__('You do not have permission to perform this action.', 'rcp'));
}
$levels = new RCP_Levels();
$user_id = absint($_POST['user']);
$member = new RCP_Member($user_id);
$status = sanitize_text_field($_POST['status']);
$level_id = absint($_POST['level']);
$expiration = isset($_POST['expiration']) ? sanitize_text_field($_POST['expiration']) : 'none';
$expiration = 'none' !== $expiration ? date('Y-m-d 23:59:59', strtotime($_POST['expiration'])) : $expiration;
if (!empty($_POST['expiration'])) {
$member->set_expiration_date($expiration);
}
if (isset($_POST['level'])) {
$current_id = rcp_get_subscription_id($user_id);
$new_level = $levels->get_level($level_id);
$old_level = $levels->get_level($current_id);
if ($current_id != $level_id) {
update_user_meta($user_id, 'rcp_subscription_level', $level_id);
// Remove the old user role
$role = !empty($old_level->role) ? $old_level->role : 'subscriber';
$member->remove_role($role);
// Add the new user role
$role = !empty($new_level->role) ? $new_level->role : 'subscriber';
$member->add_role($role);
}
}
if (isset($_POST['recurring'])) {
$member->set_recurring(true);
} else {
$member->set_recurring(false);
}
if (isset($_POST['trialing'])) {
update_user_meta($user_id, 'rcp_is_trialing', 'yes');
} else {
delete_user_meta($user_id, 'rcp_is_trialing');
}
if (isset($_POST['signup_method'])) {
update_user_meta($user_id, 'rcp_signup_method', $_POST['signup_method']);
}
if (isset($_POST['notes'])) {
update_user_meta($user_id, 'rcp_notes', wp_kses($_POST['notes'], array()));
}
if (isset($_POST['status'])) {
rcp_set_status($user_id, $status);
}
if (isset($_POST['payment-profile-id'])) {
示例6: rcp_get_upgrade_paths
/**
* Get subscriptions to which this user can upgrade
*
* @since 2.5
* @param int $user_id the ID of the user to check
*
* @return mixed|void
*/
function rcp_get_upgrade_paths($user_id = 0)
{
if (empty($user_id)) {
$user_id = get_current_user_id();
}
// make sure the user is active and get the subscription ID
$user_subscription = rcp_is_recurring($user_id) && rcp_is_active($user_id) && 'cancelled' !== rcp_get_status() ? rcp_get_subscription_id($user_id) : '';
$subscriptions = rcp_get_subscription_levels('active');
// remove the user's current subscription from the list
foreach ($subscriptions as $key => $subscription) {
if ($user_subscription == $subscription->id) {
unset($subscriptions[$key]);
}
}
return apply_filters('rcp_get_upgrade_paths', array_values($subscriptions), $user_id);
}
示例7: edd_search
//.........这里部分代码省略.........
<li class='title'>
<h1 class="home-widget-title" style="text-transform:none;">
What are looking for?
</h1>
</li>
<li><label><input type="checkbox" name="parent[]" data-all="all" value="all" <?php
echo check_if_posted('all');
?>
<?php
echo !isset($_POST) ? "checked" : '';
?>
/> Match any</label></li>
<?php
$finished_items = array();
$data = get_categories_structure();
foreach ($data['finished'] as $key => $options_) {
$finished_items[] = $key;
?>
<li><label><input type="checkbox" name="parent[]" <?php
echo check_if_posted($key);
?>
value="<?php
echo $key;
?>
" data-type="<?php
echo $key;
?>
" /> <?php
echo ucfirst($options_['key']);
?>
</label></li>
<?php
}
if (rcp_get_subscription_id(get_current_user_id()) == 1) {
?>
<li><label><input type="checkbox" name="parent[]" <?php
echo check_if_posted('67');
?>
value="67" data-type="67" /> Compose</label></li>
<li><label><input type="checkbox" name="parent[]" <?php
echo check_if_posted('4');
?>
value="4" data-type="4" /> Unfinished design</label></li>
<li><label><input type="checkbox" name="parent[]" <?php
echo check_if_posted('80');
?>
value="80" data-type="80" /> Write</label></li>
<?php
}
?>
</ul>
<?php
$op_ = '';
if (check_if_posted('all', 'parent', false) == true) {
$op_ = 'display:none;text-transform:none;';
} else {
$op_ = 'display:block;text-transform:none;';
}
?>
<h1 data-group="sub" class="home-widget-title" style="<?php
echo $op_;
?>
">
Do you want more filter options?
</h1>
示例8: rcp_restrict_shortcode
function rcp_restrict_shortcode( $atts, $content = null ) {
extract( shortcode_atts( array(
'userlevel' => 'none',
'message' => '',
'paid' => false,
'level' => 0,
'subscription' => ''
), $atts ) );
global $rcp_options, $user_ID;
if( strlen( trim( $message ) ) > 0 ) {
$teaser = $message;
} elseif( $paid ) {
$teaser = $rcp_options['paid_message'];
} else {
$teaser = $rcp_options['free_message'];
}
$subscription = explode( ',', $subscription );
if( $paid ) {
$has_access = false;
if( rcp_is_active( $user_ID ) && rcp_user_has_access( $user_ID, $level ) ) {
$has_access = true;
if( ! empty( $subscription ) && ! empty( $subscription[0] ) ) {
if( ! in_array( rcp_get_subscription_id( $user_ID ), $subscription ) ) {
$has_access = false;
}
}
}
if ( $userlevel == 'admin' && current_user_can( 'switch_themes' ) && $has_access ) {
return do_shortcode( wpautop( $content ) );
}
if ( $userlevel == 'editor' && current_user_can( 'moderate_comments' ) && $has_access ) {
return do_shortcode( wpautop( $content ) );
}
if ( $userlevel == 'author' && current_user_can( 'upload_files' ) && $has_access ) {
return do_shortcode( wpautop( $content ) );
}
if ( $userlevel == 'contributor' && current_user_can( 'edit_posts' ) && $has_access ) {
return do_shortcode( wpautop( $content ) );
}
if ( $userlevel == 'subscriber' && current_user_can( 'read' ) && $has_access ) {
return do_shortcode( wpautop( $content ) );
}
if ( $userlevel == 'none' && is_user_logged_in() && $has_access ) {
return do_shortcode( wpautop( $content ) );
} else {
return '<div class="rcp_restricted rcp_paid_only">' . rcp_format_teaser($teaser) . '</div>';
}
} else {
$has_access = false;
if(rcp_user_has_access($user_ID, $level)) {
$has_access = true;
if( ! empty( $subscription ) && ! empty( $subscription[0] ) ) {
if( in_array( rcp_get_subscription_id( $user_ID ), $subscription ) ) {
$has_access = false;
}
}
}
if ( $userlevel == 'admin' && current_user_can( 'switch_themes' ) && $has_access ) {
return do_shortcode( wpautop( $content ) );
} elseif ( $userlevel == 'editor' && current_user_can( 'moderate_comments' ) && $has_access ) {
return do_shortcode( wpautop( $content ) );
} elseif ( $userlevel == 'author' && current_user_can( 'upload_files' ) && $has_access ) {
return do_shortcode( wpautop( $content ) );
} elseif ( $userlevel == 'contributor' && current_user_can( 'edit_posts' ) && $has_access ) {
return do_shortcode( wpautop( $content ) );
} elseif ( $userlevel == 'subscriber' && current_user_can( 'read' ) && $has_access ) {
return do_shortcode( wpautop( $content ) );
} elseif ( $userlevel == 'none' && is_user_logged_in() && $has_access ) {
return do_shortcode( wpautop( $content ) );
} else {
return '<div class="rcp_restricted">' . do_shortcode( wpautop( $teaser ) ) . '</div>';
}
}
}
示例9: rcp_is_post_taxonomy_restricted
/**
* Check the provided taxonomy along with the given post id to see if any restrictions are found
*
* @since 2.5
* @param $post_id
* @param $taxonomy
* @param null $user_id
*
* @return int|bool true if tax is restricted, false if user can access, -1 if unrestricted or invalid
*/
function rcp_is_post_taxonomy_restricted($post_id, $taxonomy, $user_id = null)
{
$restricted = -1;
if (current_user_can('edit_post', $post_id)) {
return $restricted;
}
// make sure this post supports the supplied taxonomy
$post_taxonomies = get_post_taxonomies($post_id);
if (!in_array($taxonomy, (array) $post_taxonomies)) {
return $restricted;
}
$terms = get_the_terms($post_id, $taxonomy);
if (empty($terms) || is_wp_error($terms)) {
return $restricted;
}
if (!$user_id) {
$user_id = get_current_user_id();
}
// Loop through the categories and determine if one has restriction options
foreach ($terms as $term) {
$term_meta = rcp_get_term_restrictions($term->term_id);
if (empty($term_meta['paid_only']) && empty($term_meta['subscriptions']) && (empty($term_meta['access_level']) || 'None' == $term_meta['access_level'])) {
continue;
}
$restricted = false;
/** Check that the user has a paid subscription ****************************************************************/
$paid_only = !empty($term_meta['paid_only']);
if ($paid_only && !rcp_is_paid_user($user_id)) {
$restricted = true;
}
/** If restricted to one or more subscription levels, make sure that the user is a member of one of the levels */
$subscriptions = !empty($term_meta['subscriptions']) ? array_map('absint', $term_meta['subscriptions']) : false;
if ($subscriptions && !in_array(rcp_get_subscription_id($user_id), $subscriptions)) {
$restricted = true;
}
/** If restricted to one or more access levels, make sure that the user is a member of one of the levls ********/
$access_level = !empty($term_meta['access_level']) ? absint($term_meta['access_level']) : 0;
if ($access_level > 0 && !rcp_user_has_access($user_id, $access_level)) {
$restricted = true;
}
$match_all = apply_filters('rcp_restricted_taxonomy_term_match_all', false, $post_id, $taxonomy, $user_id);
// if we are matching all terms then it only takes one restricted term to restrict the taxonomy
if ($restricted && $match_all) {
break;
}
// if we are matching any term, then we only need the user to have access to one
if (!$match_all && !$restricted) {
break;
}
}
return apply_filters('rcp_is_post_taxonomy_restricted', $restricted, $taxonomy, $post_id, $user_id);
}
示例10: rcp_user_subscription_name_shortcode
/**
* Show User's Subscription ID Shortcode
*
* @since 2.5
* @access public
*
* @return string
*/
function rcp_user_subscription_name_shortcode()
{
if (!is_user_logged_in()) {
return '';
}
if (!($id = rcp_get_subscription_id())) {
return '';
}
return rcp_get_subscription_name($id);
}
示例11: get_checkout_details
public function get_checkout_details($token = '')
{
$args = array('USER' => $this->username, 'PWD' => $this->password, 'SIGNATURE' => $this->signature, 'VERSION' => '121', 'METHOD' => 'GetExpressCheckoutDetails', 'TOKEN' => $token);
$request = wp_remote_get(add_query_arg($args, $this->api_endpoint), array('timeout' => 45, 'sslverify' => false));
if (is_wp_error($request)) {
return $request;
} elseif (200 == $request['response']['code'] && 'OK' == $request['response']['message']) {
parse_str($request['body'], $data);
$data['subscription'] = (array) rcp_get_subscription_details(rcp_get_subscription_id($_GET['user_id']));
return $data;
}
return false;
}
示例12: rcp_show_subscription_level
function rcp_show_subscription_level($level_id = 0, $user_id = 0)
{
if (empty($user_id)) {
$user_id = get_current_user_id();
}
$ret = true;
$user_level = rcp_get_subscription_id($user_id);
$sub_length = rcp_get_subscription_length($level_id);
$sub_price = rcp_get_subscription_price($level_id);
// Don't show free trial if user has already used it. Don't show if sub is free and user is already free
if (is_user_logged_in() && $sub_price == '0' && $sub_length->duration > 0 && rcp_has_used_trial($user_id) || is_user_logged_in() && $sub_price == '0' && $user_level == $level_id) {
$ret = false;
}
return apply_filters('rcp_show_subscription_level', $ret, $level_id, $user_id);
}
示例13: get_users_collab_alerts
function get_users_collab_alerts()
{
if (is_user_logged_in() && rcp_get_subscription_id(get_current_user_id()) == 1) {
$alerts = edd_get_unread_alerts(get_current_user_id());
$styles = '';
//if(sizeof($alerts)>0){
$styles = '<span id="Alert_Count" class="nav_notice_counter">' . sizeof($alerts) . '</span>';
//}
$str .= ' <li class="collabnoticeparent">
<a href="JavaScript:void(0)">
<i class="fa fa-envelope"></i>
<span>Notifications ' . $styles . '</span>
</a>';
if (sizeof($alerts) > 0) {
$str .= '<ul class="collabnotices" id="alert_ul">';
foreach ($alerts as $val) {
$url = get_post_meta($val->ID, 'Edd_Alert_Message_Url', true);
$str .= ' <li data-alert-id="' . $val->ID . '">
<a href="' . $url . '">
<span>' . $val->post_title . '</span>
</a>
</li>';
}
$str .= '</ul>';
}
$str .= '</li>';
return $str;
}
}
示例14: apply_discounts
/**
* Apply the discounts to the cart
*
* @since 1.0
*
* @access public
* @return void
*/
public function apply_discounts($download_id, $options)
{
if (!function_exists('rcp_is_active')) {
return;
}
$user_id = get_current_user_id();
if (!rcp_is_active($user_id)) {
return;
}
$sub_id = rcp_get_subscription_id($user_id);
if (!$sub_id) {
$this->clear_cart_discounts();
return;
}
// Check for member discounts
$discounts = get_posts(array('post_type' => 'edd_rcp_discount', 'posts_per_page' => '1', 'fields' => 'ids', 'meta_query' => array('relation' => 'AND', array('key' => '_edd_rcp_discount_subscription', 'value' => $sub_id))));
if (!$discounts) {
$this->clear_cart_discounts();
return;
}
// Get cart details
$cart_amount = edd_get_cart_subtotal();
$cart_details = edd_get_cart_content_details();
if (empty($cart_details)) {
$this->clear_cart_discounts();
return;
}
// Subtract exclusions from the cart amount before calculating the discount below.
foreach ($cart_details as $key => $download) {
// Check for product-level exclusion
if (get_post_meta($download['id'], 'rcp_member_discount_exclude')) {
$cart_amount -= $download['item_price'];
continue;
}
// Check for download category exclusions
$terms = wp_get_object_terms($download['id'], 'download_category');
if (!$terms) {
continue;
}
$term_discounted = false;
foreach ($terms as $term) {
if (!$term_discounted && get_term_meta($term->term_id, 'rcp_member_discount_exclude')) {
$cart_amount -= $download['item_price'];
$term_discounted = true;
continue;
}
}
}
// If the cart amount is 0 after subtracting exclusions, no member discount is applied.
if ('0' == $cart_amount) {
$this->clear_cart_discounts();
return;
}
foreach ($discounts as $discount) {
$percent = get_post_meta($discount, '_edd_rcp_discount_amount', true);
$amount = $cart_amount * ($percent / 100) * -1;
EDD()->fees->add_fee(array('amount' => $amount, 'label' => get_the_title($discount), 'id' => 'rcp_member_discount'));
EDD()->session->set('rcp_member_discount_id', $discount);
}
}
示例15: rcp_check_ipn
function rcp_check_ipn()
{
global $rcp_options;
if (!class_exists('IpnListener')) {
// instantiate the IpnListener class
include RCP_PLUGIN_DIR . 'includes/gateways/paypal/ipnlistener.php';
}
$listener = new IpnListener();
if (isset($rcp_options['sandbox'])) {
$listener->use_sandbox = true;
}
if (isset($rcp_options['ssl'])) {
$listener->use_ssl = true;
} else {
$listener->use_ssl = false;
}
//To post using the fsockopen() function rather than cURL, use:
if (isset($rcp_options['disable_curl'])) {
$listener->use_curl = false;
}
try {
$listener->requirePostMethod();
$verified = $listener->processIpn();
} catch (Exception $e) {
//exit(0);
}
/*
The processIpn() method returned true if the IPN was "VERIFIED" and false if it
was "INVALID".
*/
if ($verified || isset($_POST['verification_override']) || (isset($rcp_options['sandbox']) || isset($rcp_options['disable_ipn_verify']))) {
$posted = apply_filters('rcp_ipn_post', $_POST);
// allow $_POST to be modified
$user_id = $posted['custom'];
$subscription_name = $posted['item_name'];
$subscription_key = $posted['item_number'];
$amount = number_format((double) $posted['mc_gross'], 2);
$amount2 = number_format((double) $posted['mc_amount3'], 2);
$payment_status = $posted['payment_status'];
$currency_code = $posted['mc_currency'];
$subscription_id = rcp_get_subscription_id($user_id);
$subscription_price = number_format((double) rcp_get_subscription_price(rcp_get_subscription_id($user_id)), 2);
$user_data = get_userdata($user_id);
if (!$user_data || !$subscription_id) {
return;
}
if (!rcp_get_subscription_details($subscription_id)) {
return;
}
// setup the payment info in an array for storage
$payment_data = array('date' => date('Y-m-d g:i:s', strtotime($posted['payment_date'])), 'subscription' => $posted['item_name'], 'payment_type' => $posted['txn_type'], 'subscription_key' => $subscription_key, 'amount' => $amount, 'user_id' => $user_id, 'transaction_id' => $posted['txn_id']);
do_action('rcp_valid_ipn', $payment_data, $user_id, $posted);
if ($posted['txn_type'] == 'web_accept' || $posted['txn_type'] == 'subscr_payment') {
// only check for an existing payment if this is a payment IPD request
if (rcp_check_for_existing_payment($posted['txn_type'], $posted['payment_date'], $subscription_key)) {
$log_data = array('post_title' => __('Duplicate Payment', 'rcp'), 'post_content' => __('A duplicate payment was detected. The new payment was still recorded, so you may want to check into both payments.', 'rcp'), 'post_parent' => 0, 'log_type' => 'gateway_error');
$log_meta = array('user_subscription' => $posted['item_name'], 'user_id' => $user_id);
$log_entry = WP_Logging::insert_log($log_data, $log_meta);
return;
// this IPN request has already been processed
}
/* do some quick checks to make sure all necessary data validates */
if ($amount < $subscription_price && $amount2 < $subscription_price) {
/*
// the subscription price doesn't match, so lets check to see if it matches with a discount code
if( ! rcp_check_paypal_return_price_after_discount( $subscription_price, $amount, $amount2, $user_id ) ) {
$log_data = array(
'post_title' => __( 'Price Mismatch', 'rcp' ),
'post_content' => sprintf( __( 'The price in an IPN request did not match the subscription price. Payment data: %s', 'rcp' ), json_encode( $payment_data ) ),
'post_parent' => 0,
'log_type' => 'gateway_error'
);
$log_meta = array(
'user_subscription' => $posted['item_name'],
'user_id' => $user_id
);
$log_entry = WP_Logging::insert_log( $log_data, $log_meta );
//return;
}
*/
}
if (strtolower($currency_code) != strtolower($rcp_options['currency'])) {
// the currency code is invalid
$log_data = array('post_title' => __('Invalid Currency Code', 'rcp'), 'post_content' => sprintf(__('The currency code in an IPN request did not match the site currency code. Payment data: %s', 'rcp'), json_encode($payment_data)), 'post_parent' => 0, 'log_type' => 'gateway_error');
$log_meta = array('user_subscription' => $posted['item_name'], 'user_id' => $user_id);
$log_entry = WP_Logging::insert_log($log_data, $log_meta);
return;
}
}
if (isset($rcp_options['email_ipn_reports'])) {
wp_mail(get_bloginfo('admin_email'), __('IPN report', 'rcp'), $listener->getTextReport());
}
if (rcp_get_subscription_key($user_id) != $subscription_key) {
// the subscription key is invalid
$log_data = array('post_title' => __('Subscription Key Mismatch', 'rcp'), 'post_content' => sprintf(__('The subscription key in an IPN request did not match the subscription key recorded for the user. Payment data: %s', 'rcp'), json_encode($payment_data)), 'post_parent' => 0, 'log_type' => 'gateway_error');
$log_meta = array('user_subscription' => $posted['item_name'], 'user_id' => $user_id);
$log_entry = WP_Logging::insert_log($log_data, $log_meta);
return;
}
/* now process the kind of subscription/payment */
//.........这里部分代码省略.........