Plugin Directory

Changeset 3680051


Ignore:
Timestamp:
09/03/2026 04:21:25 PM (7 weeks ago)
Author:
ghernkadence
Message:

Release 4.0.3

Location:
restrict-content
Files:
21 edited
1 copied

Legend:

Unmodified
Added
Removed
  • restrict-content/tags/4.0.3/composer.json

    r3636889 r3680051  
    11{
    22        "name": "restrictcontent/restrict-content",
    3         "version": "4.0.2",
     3        "version": "4.0.3",
    44        "type": "wordpress-plugin",
    55        "description": "A simple, yet powerful membership solution for WordPress.",
  • restrict-content/tags/4.0.3/core/includes/admin/settings/settings.php

    r3636889 r3680051  
    420420                                                                </th>
    421421                                                                <td>
    422                                                                         <input type="checkbox" value="1" name="rcp_settings[sandbox]" id="rcp_settings[sandbox]" 
     422                                                                        <input type="checkbox" value="1" name="rcp_settings[sandbox]" id="rcp_settings[sandbox]"
    423423                                                                        <?php
    424424                                                                        checked( rcp_is_sandbox() );
    … …  
    11121112                                                        </th>
    11131113                                                        <td>
    1114                                                                 <input type="checkbox" value="1" name="rcp_settings[hide_premium]" id="rcp_settings[hide_premium]" 
     1114                                                                <input type="checkbox" value="1" name="rcp_settings[hide_premium]" id="rcp_settings[hide_premium]"
    11151115                                                                <?php
    11161116                                                                if ( isset( $rcp_options['hide_premium'] ) ) {
    … …  
    11531153                                                        </th>
    11541154                                                        <td>
    1155                                                                 <input type="checkbox" value="1" name="rcp_settings[hijack_login_url]" id="rcp_settings[hijack_login_url]" 
     1155                                                                <input type="checkbox" value="1" name="rcp_settings[hijack_login_url]" id="rcp_settings[hijack_login_url]"
    11561156                                                                <?php
    11571157                                                                if ( isset( $rcp_options['hijack_login_url'] ) ) {
    … …  
    11931193                                                        </th>
    11941194                                                        <td>
    1195                                                                 <input type="checkbox" value="1" name="rcp_settings[auto_add_users]" id="rcp_settings[auto_add_users]" 
     1195                                                                <input type="checkbox" value="1" name="rcp_settings[auto_add_users]" id="rcp_settings[auto_add_users]"
    11961196                                                                <?php
    11971197                                                                if ( isset( $rcp_options['auto_add_users'] ) ) {
    … …  
    12641264                                                        </th>
    12651265                                                        <td>
    1266                                                                 <input type="checkbox" value="1" name="rcp_settings[disable_css]" id="rcp_settings[disable_css]" 
     1266                                                                <input type="checkbox" value="1" name="rcp_settings[disable_css]" id="rcp_settings[disable_css]"
    12671267                                                                <?php
    12681268                                                                if ( isset( $rcp_options['disable_css'] ) ) {
    … …  
    12781278                                                        </th>
    12791279                                                        <td>
    1280                                                                 <input type="checkbox" value="1" name="rcp_settings[enable_terms]" id="rcp_settings[enable_terms]" 
     1280                                                                <input type="checkbox" value="1" name="rcp_settings[enable_terms]" id="rcp_settings[enable_terms]"
    12811281                                                                <?php
    12821282                                                                if ( isset( $rcp_options['enable_terms'] ) ) {
    … …  
    12921292                                                        </th>
    12931293                                                        <td>
    1294                                                                 <input type="text" id="rcp_settings[terms_label]" style="width: 300px;" name="rcp_settings[terms_label]" value="
    1295                                                                 <?php
    1296                                                                 if ( isset( $rcp_options['terms_label'] ) ) {
    1297                                                                         echo esc_attr( $rcp_options['terms_label'] );}
    1298                                                                 ?>
    1299                                                                 " />
     1294                                                                <input type="text" id="rcp_settings[terms_label]" style="width: 300px;" name="rcp_settings[terms_label]" value="<?php echo isset( $rcp_options['terms_label'] ) ? esc_attr( $rcp_options['terms_label'] ) : ''; ?>" />
    13001295                                                                <p class="description"><?php _e( 'Label shown next to the agree to terms checkbox.', 'rcp' ); ?></p>
    13011296                                                        <td>
    … …  
    13061301                                                        </th>
    13071302                                                        <td>
    1308                                                                 <input type="text" id="rcp_settings[terms_link]" style="width: 300px;" name="rcp_settings[terms_link]" value="
    1309                                                                 <?php
    1310                                                                 if ( isset( $rcp_options['terms_link'] ) ) {
    1311                                                                         echo esc_attr( $rcp_options['terms_link'] );}
    1312                                                                 ?>
    1313                                                                 " placeholder="https://" />
     1303                                                                <input type="text" id="rcp_settings[terms_link]" style="width: 300px;" name="rcp_settings[terms_link]" value="<?php echo isset( $rcp_options['terms_link'] ) ? esc_attr( $rcp_options['terms_link'] ) : ''; ?>" placeholder="https://" />
    13141304                                                                <p class="description"><?php _e( 'Optional - the URL to your terms page. If set, the terms label will link to this URL.', 'rcp' ); ?></p>
    13151305                                                        <td>
    … …  
    13201310                                                        </th>
    13211311                                                        <td>
    1322                                                                 <input type="checkbox" value="1" name="rcp_settings[enable_privacy_policy]" id="rcp_settings[enable_privacy_policy]" 
     1312                                                                <input type="checkbox" value="1" name="rcp_settings[enable_privacy_policy]" id="rcp_settings[enable_privacy_policy]"
    13231313                                                                <?php
    13241314                                                                if ( isset( $rcp_options['enable_privacy_policy'] ) ) {
    … …  
    13341324                                                        </th>
    13351325                                                        <td>
    1336                                                                 <input type="text" id="rcp_settings[privacy_policy_label]" style="width: 300px;" name="rcp_settings[privacy_policy_label]" value="
    1337                                                                 <?php
    1338                                                                 if ( isset( $rcp_options['privacy_policy_label'] ) ) {
    1339                                                                         echo esc_attr( $rcp_options['privacy_policy_label'] );}
    1340                                                                 ?>
    1341                                                                 " />
     1326                                                                <input type="text" id="rcp_settings[privacy_policy_label]" style="width: 300px;" name="rcp_settings[privacy_policy_label]" value="<?php echo isset( $rcp_options['privacy_policy_label'] ) ? esc_attr( $rcp_options['privacy_policy_label'] ) : ''; ?>" />
    13421327                                                                <p class="description"><?php _e( 'Label shown next to the agree to privacy policy checkbox.', 'rcp' ); ?></p>
    13431328                                                        <td>
    … …  
    13481333                                                        </th>
    13491334                                                        <td>
    1350                                                                 <input type="text" id="rcp_settings[privacy_policy_link]" style="width: 300px;" name="rcp_settings[privacy_policy_link]" value="
    1351                                                                 <?php
    1352                                                                 if ( isset( $rcp_options['privacy_policy_link'] ) ) {
    1353                                                                         echo esc_attr( $rcp_options['privacy_policy_link'] );}
    1354                                                                 ?>
    1355                                                                 " placeholder="https://" />
     1335                                                                <input type="text" id="rcp_settings[privacy_policy_link]" style="width: 300px;" name="rcp_settings[privacy_policy_link]" value="<?php echo isset( $rcp_options['privacy_policy_link'] ) ? esc_attr( $rcp_options['privacy_policy_link'] ) : ''; ?>" placeholder="https://" />
    13561336                                                                <p class="description"><?php _e( 'Optional - the URL to your privacy policy page. If set, the privacy policy label will link to this URL.', 'rcp' ); ?></p>
    13571337                                                        <td>
    … …  
    13871367                                                                <input type="text" id="rcp_settings[recaptcha_public_key]" style="width: 300px;"
    13881368                                                                           name="rcp_settings[recaptcha_public_key]"
    1389                                                                            value="
    1390                                                                 <?php
    1391                                                                 if ( isset( $rcp_options['recaptcha_public_key'] ) ) {
    1392                                                                         echo esc_attr( $rcp_options['recaptcha_public_key'] );
    1393                                                                 }
    1394                                                                 ?>
    1395                                                                 " />
     1369                                                                           value="<?php echo isset( $rcp_options['recaptcha_public_key'] ) ? esc_attr( $rcp_options['recaptcha_public_key'] ) : ''; ?>" />
    13961370                                                                <p class="description"><?php esc_html_e( 'This your own personal reCAPTCHA Site key. Go to', 'rcp' ); ?> <a
    13971371                                                                                        href="https://www.google.com/recaptcha/"><?php esc_html_e( 'your account', 'rcp' ); ?></a>, <?php esc_html_e( 'then click on your domain (or add a new one) to find your site key.', 'rcp' ); ?>
    … …  
    14061380                                                                <input type="text" id="rcp_settings[recaptcha_private_key]" style="width: 300px;"
    14071381                                                                           name="rcp_settings[recaptcha_private_key]"
    1408                                                                            value="
    1409                                                                 <?php
    1410                                                                 if ( isset( $rcp_options['recaptcha_private_key'] ) ) {
    1411                                                                         echo esc_attr( $rcp_options['recaptcha_private_key'] );
    1412                                                                 }
    1413                                                                 ?>
    1414                                                                 " />
     1382                                                                           value="<?php echo isset( $rcp_options['recaptcha_private_key'] ) ? esc_attr( $rcp_options['recaptcha_private_key'] ) : ''; ?>" />
    14151383                                                                <p class="description"><?php esc_html_e( 'This your own personal reCAPTCHA Secret key. Go to', 'rcp' ); ?> <a
    14161384                                                                                        href="https://www.google.com/recaptcha/"><?php esc_html_e( 'your account', 'rcp' ); ?></a>, <?php esc_html_e( 'then click on your domain (or add a new one) to find your secret key.', 'rcp' ); ?>
  • restrict-content/tags/4.0.3/core/includes/ajax-actions.php

    r3636889 r3680051  
    9393 * Validates the entire registration state
    9494 *
    95  * @param array $args
     95 * @param array $args Registration state submitted by the registration form.
    9696 *
    9797 * @since 3.0.6
    … …  
    146146        rcp_setup_registration( $return['level_id'], $return['discount_code'] );
    147147
     148        /*
     149         * The request carries `level_has_trial`, but the form cannot determine it reliably, so derive
     150         * it and the customer's eligibility here instead.
     151         */
     152        $trial_level    = rcp_get_membership_level( $return['level_id'] );
     153        $trial_customer = rcp_get_customer();
     154
     155        $return['level_has_trial'] = $trial_level instanceof \RCP\Membership_Level && $trial_level->has_trial();
     156        $return['trial_eligible']  = empty( $trial_customer ) || ! $trial_customer->has_trialed();
     157
    148158        /**
    149159         * 100% discount
    … …  
    210220         * Force auto renew on and disable option if this is a free trial.
    211221         */
    212         $customer = rcp_get_customer(); // current customer
    213         if ( $customer && $customer->has_trialed() ) {
    214                 $return['trial_eligible'] = false;
    215         }
    216 
    217222        if ( $return['level_has_trial'] && $return['trial_eligible'] ) {
    218223                $return['recurring'] = rcp_gateway_supports( $return['gateway'], 'trial' );
  • restrict-content/tags/4.0.3/core/includes/class-rcp-registration.php

    r3636889 r3680051  
    11<?php
    2 
    3 use RCP\Membership_Level;
    4 
    52/**
    63 * RCP Registration Class
    … …  
    1310 */
    1411
     12use RCP\Membership_Level;
     13
     14/**
     15 * Builds and holds the state of a single registration.
     16 */
    1517class RCP_Registration {
    1618
    … …  
    349351                }
    350352
     353                // Or, look for an attempt this customer abandoned moments ago.
     354                if ( empty( $pending_payment_id ) ) {
     355                        $pending_payment_id = $this->find_recoverable_payment_id();
     356                }
     357
    351358                if ( empty( $pending_payment_id ) ) {
    352359                        return;
    … …  
    382389                $this->recovered_payment = $payment;
    383390
    384                 // Use the same `transaction_type` as the recovered payment.
     391                /*
     392                 * Use the same `transaction_type` as the recovered payment. rcp_get_payment_recovery_url()
     393                 * sends no membership_id, so a "Complete Payment" link relies on this to get back to
     394                 * `renewal`.
     395                 */
    385396                $this->registration_type = $this->recovered_payment->transaction_type;
    386397
    387398                rcp_log( sprintf( 'Using recovered payment #%d for registration. Transaction type: %s.', $this->recovered_payment->id, $this->recovered_payment->transaction_type ) );
    388399
     400        }
     401
     402        /**
     403         * Find a signup this customer just had declined.
     404         *
     405         * A declined card fails the payment, disables the membership and deletes its
     406         * `pending_payment_id` meta, so the only handle left is the hidden form field, which a page
     407         * reload loses. Matching on exactly that wreckage keeps this away from renewals and from
     408         * payments still in flight at an off-site gateway.
     409         *
     410         * @see rcp_remove_subscription_data_on_failure()
     411         *
     412         * @since 4.0.6
     413         *
     414         * @return int Payment ID, or 0 if there is nothing worth recovering.
     415         */
     416        protected function find_recoverable_payment_id() {
     417
     418                $user_id = get_current_user_id();
     419
     420                // Renewals, upgrades and downgrades already know which membership they belong to.
     421                if ( 'new' !== $this->registration_type ) {
     422                        return 0;
     423                }
     424
     425                if ( empty( $user_id ) || ! $this->get_membership_level_id() ) {
     426                        return 0;
     427                }
     428
     429                /**
     430                 * How long an abandoned attempt stays recoverable.
     431                 *
     432                 * @since 4.0.6
     433                 *
     434                 * @param int              $window       Number of seconds.
     435                 * @param RCP_Registration $registration Registration object.
     436                 */
     437                $window = apply_filters( 'rcp_registration_recovery_window', HOUR_IN_SECONDS, $this );
     438
     439                /**
     440                 * Payments database handler.
     441                 *
     442                 * @var RCP_Payments $rcp_payments_db
     443                 */
     444                global $rcp_payments_db;
     445
     446                $payments = $rcp_payments_db->get_payments(
     447                        array(
     448                                'user_id'          => $user_id,
     449                                'object_id'        => $this->get_membership_level_id(),
     450                                'status'           => 'failed',
     451                                'transaction_type' => 'new',
     452                                'number'           => 5,
     453                                'orderby'          => 'id',
     454                                'order'            => 'DESC',
     455                        )
     456                );
     457
     458                if ( empty( $payments ) ) {
     459                        return 0;
     460                }
     461
     462                $cutoff = current_time( 'timestamp' ) - $window;
     463
     464                foreach ( $payments as $payment ) {
     465                        $fields = (array) $payment;
     466
     467                        if ( ! empty( $fields['transaction_id'] ) || empty( $fields['membership_id'] ) ) {
     468                                continue;
     469                        }
     470
     471                        if ( strtotime( $fields['date'], current_time( 'timestamp' ) ) < $cutoff ) {
     472                                continue;
     473                        }
     474
     475                        $membership = rcp_get_membership( $fields['membership_id'] );
     476
     477                        if ( empty( $membership ) || $membership->get_user_id() != $user_id ) {
     478                                continue;
     479                        }
     480
     481                        /*
     482                         * A signup the failure handler tore down is left pending and disabled. Requiring both
     483                         * keeps this off memberships disabled for any other reason, whose term would otherwise
     484                         * be restored here without payment, and off attempts still live at the gateway.
     485                         */
     486                        if ( 'pending' !== $membership->get_status() || ! $membership->is_disabled() ) {
     487                                continue;
     488                        }
     489
     490                        return (int) $fields['id'];
     491                }
     492
     493                return 0;
    389494        }
    390495
  • restrict-content/tags/4.0.3/core/includes/class-restrict-content.php

    r3636889 r3680051  
    2727         */
    2828        final class Restrict_Content_Pro {
    29                 const VERSION = '4.0.0';
     29                const VERSION = '4.0.3';
    3030
    3131                /**
  • restrict-content/tags/4.0.3/core/includes/cron-functions.php

    r3636889 r3680051  
    2323 * @see rcp_check_member_counts()
    2424 *
     25 * Daily: Delete abandoned Stripe webhook locks
     26 * @see rcp_stripe_cleanup_webhook_locks()
     27 *
    2528 * @return void
    2629 */
    … …  
    4144        if ( ! wp_next_scheduled( 'rcp_mark_abandoned_payments' ) ) {
    4245                wp_schedule_event( current_time( 'timestamp' ), 'daily', 'rcp_mark_abandoned_payments' );
     46        }
     47
     48        if ( ! wp_next_scheduled( 'rcp_stripe_cleanup_webhook_locks' ) ) {
     49                wp_schedule_event( current_time( 'timestamp' ), 'daily', 'rcp_stripe_cleanup_webhook_locks' );
    4350        }
    4451}
  • restrict-content/tags/4.0.3/core/includes/css/admin-styles.min.css

    r3636889 r3680051  
    1 #optin-modal-restrict-content-pro p{max-width:900px}.rcp_key_wrap{position:relative}.rcp_show_key{cursor:pointer;color:#21759b;display:inline-block;max-width:80px}.rcp_key{display:none;color:#555}.rcp_show_key:hover span{display:inline}#tab_container .tab_content{position:relative}.rcp-drag-handle{cursor:move;display:block;height:20px;width:20px;background:url(../images/cross-hair.png)}#side-info-column td.rcp_meta_box_desc{display:none!important}#rcp-member-search{text-align:right;margin:0 0 10px;float:right}#rcp-member-search *{text-align:left;display:inline-block}#rcp-members-page .subsubsub{float:none}#payments-filter{width:200px;float:right;text-align:right;margin:0 0 5px}#rcp-members-filter{margin:0 0 10px}#payments-filter input.regular-text,#rcp-members-filter input.regular-text{width:30px}#rcp-add-new-member td{position:relative}#rcp_user_search_results{position:absolute;z-index:10}#rcp_user_search_results ul{padding:10px 10px 4px;margin:0;background:#f0f0f0;border:1px solid #dfdfdf;width:300px;max-height:200px;overflow-y:scroll}#rcp-order{margin-right:10px}.rcp_payment_details{border-bottom:1px solid #f0f0f0;width:400px}.rcp-help .postbox ul li{list-style:disc outside;margin-left:20px}.rtl .rcp-help .postbox ul li{list-style:disc outside;margin-right:20px}.rcp-help .postbox h4{border-bottom:1px solid #ccc;margin:30px 0 0 0;padding:0 0 10px}.center{text-align:center}.rcp-delete{color:red}.rcp-email-reminders th{font-size:14px;padding-left:10px!important}#rcp-code,#rcp-description,#rcp-email,#rcp-expiration,#rcp-key,#rcp-name,#rcp-payment-profile-id,#rcp-user,#rcp-userlogin{width:300px}.stripe_settings__descriptor,.stripe_settings__descriptor--suffix{width:300px}#rcp-amount,#rcp-fee,#rcp-price{width:100px}#rcp-duration,#rcp-max-uses,#trial_duration{width:40px}#rcp-maximum-renewals{width:60px}#rcp-expiration{width:120px}#rcp-metabox-field-access-levels,#rcp-metabox-field-levels,#rcp-metabox-field-role{border-left:3px solid #eee;padding-left:10px}.rcp-subscription-levels{padding-left:1.75rem;margin-top:.5rem}.rcp-user-col{width:225px}.rcp-sub-col{width:140px}.rcp-status-col{width:60px}.rcp-recurring-col{width:55px}.rcp-expiration-col{width:110px}.rcp-role-col{width:80px}#rcp-bulk-action-options{clear:both;background:#f5f5f5;background-image:-webkit-gradient(linear,left bottom,left top,from(#f5f5f5),to(#fafafa));background-image:-webkit-linear-gradient(bottom,#f5f5f5,#fafafa);background-image:-moz-linear-gradient(bottom,#f5f5f5,#fafafa);background-image:-o-linear-gradient(bottom,#f5f5f5,#fafafa);background-image:linear-gradient(to top,#f5f5f5,#fafafa);border:1px solid #dfdfdf;overflow:hidden;margin:8px 0;padding:12px;border-radius:3px;font-size:13px;line-height:2.1em}#rcp-bulk-action-options p{color:#777}#rcp-bulk-select-all{margin:0}.rcp-id-col{color:#555;white-space:nowrap}#rcp-revoke-access-wrap{display:none}.rcp-sub-name-col{width:225px}.rcp-sub-order-col{width:50px}.rcp-discounts-name-col{width:190px}.rcp-discounts-desc-col{width:200px}.rcp-discounts-code-col{width:110px}.rcp-discounts-amount-col{width:45px}.rcp-discounts-type-col{width:90px}.rcp-discounts-status-col{width:80px}.rcp-discounts-uses-col{width:40px}.rcp-discounts-uses-left-col{width:60px}.rcp-payments-status-col{width:70px}.rcp-payments-amount-col{width:75px}.rcp-payments-subscription-col{width:120px}.rcp-view-invoice{display:inline-block}.restrict_page_rcp-payments .total{clear:both}span.dashicons.dashicons-hidden,span.dashicons.dashicons-visibility{display:flex}#rcp-error-logs .column-log_error{width:15%}#rcp-error-logs .column-message{width:65%}#rcp-graphs-filter .actions{width:100%}#rcp-date-range-options,#rcp-graphs-date-options{float:left}#rcp-date-range-options span{float:left;margin-right:6px;height:24px;line-height:24px}#rcp-system-info-textarea{width:800px;height:400px;font-family:Menlo,Monaco,monospace;white-space:pre}#rcp-debug-log .button{margin-right:8px}.rcp-sub-nav{float:none!important}.rcp-sub-nav a{padding:13px!important}table.rcp-table{text-align:left;width:100%;border:none;margin:0 0 21px}table.rcp-table td,table.rcp-table th{text-align:left;border:1px solid #eee;color:#666;padding:.4em;font-size:90%;word-break:break-all}table.rcp-table th{background:#fafafa;font-weight:700}table.rcp_payment_details td,table.rcp_payment_details th{padding:8px 10px}@media screen and (max-width:782px){table.rcp_payment_details th.column-primary{width:auto}}#rcp-add-ons h2{margin:0 0 15px}#rcp-add-ons .rcp-add-on{display:inline-block;vertical-align:top;margin:0 11px 14px 0;background:#fff;border:1px solid #ccc;width:320px;padding:14px;min-height:290px;position:relative}#rcp-add-ons .rcp-add-on h3{margin:0 0 8px;font-size:13px}#rcp-add-ons .rcp-add-on .button-secondary{position:absolute;bottom:14px;left:14px}#rcp-add-ons .rcp-add-on .wp-post-image{width:100%;height:auto;display:block}.rcp-add-ons-footer{padding-top:10px}#rcp-item-wrapper{background:#f5f5f5;border:1px solid #e5e5e5;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04)}#rcp-item-wrapper:after{clear:both;content:"";display:block;font-size:0;height:0;visibility:hidden}#rcp-item-tab-wrapper{float:left;width:18%;z-index:1}#rcp-item-tab-wrapper-list{background:#fff;margin:0}#rcp-item-tab-wrapper-list li{background-color:#eaeaea;border-bottom:1px solid #e5e5e5;color:#444;display:block;font-size:12px;-webkit-hyphens:auto;-moz-hyphens:auto;-ms-hyphens:auto;hyphens:auto;margin-bottom:0;word-wrap:break-word}#rcp-item-tab-wrapper-list li a{display:block;padding:8px 10px 8px 6px}#rcp-item-tab-wrapper-list .active{background-color:#fff;display:block;padding:8px 10px 8px 6px}#rcp-item-tab-wrapper-list .inactive a,#rcp-item-tab-wrapper-list .inactive a:visited{background-color:#f5f5f5;color:#444;text-decoration:none}#rcp-item-tab-wrapper-list .inactive a:hover{background-color:#fff}#rcp-item-tab-wrapper-list .dashicons{color:#444;font-size:16px;height:auto;min-width:24px}#rcp-item-card-wrapper .left{float:left}#rcp-item-card-wrapper .right{float:right}#rcp-item-card-wrapper input{font-weight:400}#rcp-item-card-wrapper{background-color:#fff;border:1px solid #e5e5e5;display:inline-block;margin-left:-1px;max-width:1000px;min-height:200px;width:100%;z-index:2}.rcp-item-has-tabs #rcp-item-card-wrapper{border-width:0 0 0 1px;width:82%}#rcp-item-card-wrapper .rcp-item-section{border-bottom:1px solid #eee;margin-bottom:10px;overflow:auto}#rcp-item-card-wrapper .rcp-item-section::after{content:"";clear:both;display:table}#rcp-item-card-wrapper .rcp-item-section table{margin-bottom:20px}#rcp-item-card-wrapper>div{padding:0 20px}#rcp-item-card-wrapper>div:first-child{padding-top:20px}#rcp-item-card-wrapper>div:last-child{border:none;clear:both;overflow:hidden;padding-bottom:20px}#rcp-item-card-wrapper .rcp-avatar-wrap{padding-right:10px;text-align:center}#rcp-item-card-wrapper .rcp-customer-id{font-size:24px;font-weight:600}#rcp-item-card-wrapper .rcp-customer-main-wrapper input{width:200px}#rcp-item-card-wrapper .rcp-customer-info{margin-top:5px;margin-bottom:10px;min-height:140px}#rcp-item-card-wrapper .rcp-info-wrapper{min-height:125px;overflow:visible}#rcp-item-card-wrapper a.delete{color:red;margin-right:5px;text-decoration:none}#rcp-item-card-wrapper .rcp-info-item{display:block;line-height:16px;padding-bottom:5px}#rcp-item-card-wrapper .rcp-customer-first-name,#rcp-item-card-wrapper .rcp-customer-last-name{display:inline-block}#rcp-item-card-wrapper .rcp-edit-item{display:none}.rcp-item-stats-wrapper{font-size:14px;line-height:22px;margin:0 auto;min-height:30px;text-align:center}.rcp-item-stats-wrapper li{float:left;vertical-align:middle;width:50%}.rcp-item-stats-wrapper .dashicons{color:#888}#rcp-item-notes-wrapper{margin-bottom:20px}.rcp-item-notes-header img,.rcp-item-notes-header span{font-weight:600;line-height:30px;vertical-align:middle}#rcp-item-card-wrapper .edit-item{display:block;float:right;margin:10px 0 0;padding-bottom:20px}@media (min-width:768px){.rcp-customer-card-wrapper .rcp-item-info{display:flex}#rcp-customer-details{flex:1;padding-left:2em}#rcp-new-customer-details{flex:1}#rcp-new-customer-details th{width:190px}#rcp-customer-agreements-terms-wrapper{float:left}#rcp-customer-agreements-privacy-policy-wrapper{float:left;padding-left:3em}}#rcp-customer-account{text-align:center}#rcp-customer-agreements-wrapper ul{list-style:disc;padding-left:2em}#rcp-membership-add-renewal .rcp-payment-field-label{display:inline-block;width:150px;padding:3px}#rcp-membership-add-renewal select{margin-left:8px}.rcp-item-notes{background:#f9f9f9;margin-bottom:1em;max-height:250px;overflow-y:scroll;padding:0 1em}.rcp-add-item-note{display:block;width:100%}@media (max-width:1280px){.rcp-user-col{width:80px}.rcp-sub-col{width:120px}.rcp-role-col{width:90px}.rcp-sub-id-col{width:40px}.rcp-sub-desc-col{width:200px}.rcp-discounts-id-col{width:30px}.rcp-discounts-desc-col{width:150px}.rcp-discounts-code-col{width:60px}.rcp-discounts-amount-col{width:60px}.rcp-discounts-type-col{width:60px}.rcp-discounts-status-col{width:50px}.rcp-discounts-uses-col{width:50px}.rcp-discounts-uses-left-col{width:80px}}@media (max-width:782px){.rcp-drag-handle,.rcp-sub-order-col{display:none!important}}@media (min-width:783px){.rcp-payment-amount-user-col{display:none}}.rcp-help-tip{cursor:help}.ui-tooltip{background:#333!important;border-radius:3px!important;box-shadow:1px 1px 2px 1px rgba(214,214,214,.5);color:#dedede!important;max-width:400px;padding:7px;text-rendering:optimizeLegibility}.rcp-datepicker-wrap .ui-timepicker-div .ui-slider-handle{background:#00a0d2}.rcp-datepicker-wrap .ui-timepicker-div .ui-state-hover{background:#0073aa;color:#fff}.admin-color-fresh .rcp-datepicker-wrap .ui-timepicker-div .ui-slider-handle{background:#00a0d2}.admin-color-fresh .rcp-datepicker-wrap .ui-timepicker-div .ui-state-hover{background:#0073aa;color:#fff}.admin-color-fresh .rcp-datepicker-wrap button.ui-datepicker-close{background:#0085ba;border-color:#0073aa #006799 #006799;box-shadow:0 1px 0 #006799;color:#fff;text-decoration:none;text-shadow:0 -1px 1px #006799,1px 0 1px #006799,0 1px 1px #006799,-1px 0 1px #006799}.admin-color-fresh .rcp-datepicker-wrap button.ui-datepicker-close:focus,.admin-color-fresh .rcp-datepicker-wrap button.ui-datepicker-close:hover{background:#008ec2;border-color:#006799;color:#fff}.admin-color-fresh .rcp-datepicker-wrap button.ui-datepicker-close:focus{box-shadow:0 1px 0 #0073aa,0 0 2px 1px #33b3db}.admin-color-fresh .rcp-datepicker-wrap button.ui-datepicker-close:active{background:#0073aa;border-color:#006799;box-shadow:inset 0 2px 0 #006799}.admin-color-blue .rcp-datepicker-wrap .ui-timepicker-div .ui-slider-handle{background:#52accc}.admin-color-blue .rcp-datepicker-wrap .ui-timepicker-div .ui-state-hover{background:#096484;color:#fff}.admin-color-blue .rcp-datepicker-wrap button.ui-datepicker-close{background:#e1a948;border-color:#d39323 #bd831f #bd831f;color:#fff;box-shadow:0 1px 0 #bd831f;text-shadow:0 -1px 1px #bd831f,1px 0 1px #bd831f,0 1px 1px #bd831f,-1px 0 1px #bd831f}.admin-color-blue .rcp-datepicker-wrap button.ui-datepicker-close:focus,.admin-color-blue .rcp-datepicker-wrap button.ui-datepicker-close:hover{background:#e3af55;border-color:#bd831f;box-shadow:0 1px 0 #bd831f;color:#fff}.admin-color-blue .rcp-datepicker-wrap button.ui-datepicker-close:focus{box-shadow:inset 0 1px 0 #d39323,0 0 2px 1px #33b3db}.admin-color-blue .rcp-datepicker-wrap button.ui-datepicker-close:active{background:#d39323;border-color:#bd831f;box-shadow:inset 0 2px 0 #bd831f}.admin-color-coffee .rcp-datepicker-wrap .ui-timepicker-div .ui-slider-handle{background:#59524c}.admin-color-coffee .rcp-datepicker-wrap .ui-timepicker-div .ui-state-hover{background:#c7a589;color:#fff}.admin-color-coffee .rcp-datepicker-wrap button.ui-datepicker-close{background:#c7a589;border-color:#b78b66 #ae7d55 #ae7d55;color:#fff;box-shadow:0 1px 0 #ae7d55;text-shadow:0 -1px 1px #ae7d55,1px 0 1px #ae7d55,0 1px 1px #ae7d55,-1px 0 1px #ae7d55}.admin-color-coffee .rcp-datepicker-wrap button.ui-datepicker-close:focus,.admin-color-coffee .rcp-datepicker-wrap button.ui-datepicker-close:hover{background:#ccad93;border-color:#ae7d55;color:#fff;box-shadow:0 1px 0 #ae7d55}.admin-color-coffee .rcp-datepicker-wrap button.ui-datepicker-close:focus{box-shadow:inset 0 1px 0 #b78b66,0 0 2px 1px #33b3db}.admin-color-coffee .rcp-datepicker-wrap button.ui-datepicker-close:active{background:#b78b66;border-color:#ae7d55;box-shadow:inset 0 2px 0 #ae7d55}.admin-color-ectoplasm .rcp-datepicker-wrap .ui-timepicker-div .ui-slider-handle{background:#523f6d}.admin-color-ectoplasm .rcp-datepicker-wrap .ui-timepicker-div .ui-state-hover{background:#a3b745;color:#fff}.admin-color-ectoplasm .rcp-datepicker-wrap button.ui-datepicker-close{background:#a3b745;border-color:#829237 #727f30 #727f30;color:#fff;box-shadow:0 1px 0 #727f30;text-shadow:0 -1px 1px #727f30,1px 0 1px #727f30,0 1px 1px #727f30,-1px 0 1px #727f30}.admin-color-ectoplasm .rcp-datepicker-wrap button.ui-datepicker-close:focus,.admin-color-ectoplasm .rcp-datepicker-wrap button.ui-datepicker-close:hover{background:#a9bd4f;border-color:#727f30;color:#fff;box-shadow:0 1px 0 #727f30}.admin-color-ectoplasm .rcp-datepicker-wrap button.ui-datepicker-close:focus{box-shadow:inset 0 1px 0 #829237,0 0 2px 1px #33b3db}.admin-color-ectoplasm .rcp-datepicker-wrap button.ui-datepicker-close:active{background:#829237;border-color:#727f30;box-shadow:inset 0 2px 0 #727f30}.admin-color-midnight .rcp-datepicker-wrap .ui-timepicker-div .ui-slider-handle{background:#363b3f}.admin-color-midnight .rcp-datepicker-wrap .ui-timepicker-div .ui-state-hover{background:#e14d43;color:#fff}.admin-color-midnight .rcp-datepicker-wrap button.ui-datepicker-close{background:#e14d43;border-color:#d02c21 #ba281e #ba281e;color:#fff;box-shadow:0 1px 0 #ba281e;text-shadow:0 -1px 1px #ba281e,1px 0 1px #ba281e,0 1px 1px #ba281e,-1px 0 1px #ba281e}.admin-color-midnight .rcp-datepicker-wrap button.ui-datepicker-close:focus,.admin-color-midnight .rcp-datepicker-wrap button.ui-datepicker-close:hover{background:#e35950;border-color:#ba281e;color:#fff;box-shadow:0 1px 0 #ba281e}.admin-color-midnight .rcp-datepicker-wrap button.ui-datepicker-close:focus{box-shadow:inset 0 1px 0 #d02c21,0 0 2px 1px #33b3db}.admin-color-midnight .rcp-datepicker-wrap button.ui-datepicker-close:active{background:#d02c21;border-color:#ba281e;box-shadow:inset 0 2px 0 #ba281e}.admin-color-ocean .rcp-datepicker-wrap .ui-timepicker-div .ui-slider-handle{background:#738e96}.admin-color-ocean .rcp-datepicker-wrap .ui-timepicker-div .ui-state-hover{background:#9ebaa0;color:#fff}.admin-color-ocean .rcp-datepicker-wrap button.ui-datepicker-close{background:#9ebaa0;border-color:#80a583 #719a74 #719a74;color:#fff;box-shadow:0 1px 0 #719a74;text-shadow:0 -1px 1px #719a74,1px 0 1px #719a74,0 1px 1px #719a74,-1px 0 1px #719a74}.admin-color-ocean .rcp-datepicker-wrap button.ui-datepicker-close:focus,.admin-color-ocean .rcp-datepicker-wrap button.ui-datepicker-close:hover{background:#a7c0a9;border-color:#719a74;color:#fff;box-shadow:0 1px 0 #719a74}.admin-color-ocean .rcp-datepicker-wrap button.ui-datepicker-close:focus{box-shadow:inset 0 1px 0 #80a583,0 0 2px 1px #33b3db}.admin-color-ocean .rcp-datepicker-wrap button.ui-datepicker-close:active{background:#80a583;border-color:#719a74;box-shadow:inset 0 2px 0 #719a74}.admin-color-sunrise .rcp-datepicker-wrap .ui-timepicker-div .ui-slider-handle{background:#cf4944}.admin-color-sunrise .rcp-datepicker-wrap .ui-timepicker-div .ui-state-hover{background:#dd823b;color:#fff}.admin-color-sunrise .rcp-datepicker-wrap button.ui-datepicker-close{background:#dd823b;border-color:#c36922 #ad5d1e #ad5d1e;color:#fff;box-shadow:0 1px 0 #ad5d1e;text-shadow:0 -1px 1px #ad5d1e,1px 0 1px #ad5d1e,0 1px 1px #ad5d1e,-1px 0 1px #ad5d1e}.admin-color-sunrise .rcp-datepicker-wrap button.ui-datepicker-close:focus,.admin-color-sunrise .rcp-datepicker-wrap button.ui-datepicker-close:hover{background:#df8a48;border-color:#ad5d1e;color:#fff;box-shadow:0 1px 0 #ad5d1e}.admin-color-sunrise .rcp-datepicker-wrap button.ui-datepicker-close:focus{box-shadow:inset 0 1px 0 #c36922,0 0 2px 1px #33b3db}.admin-color-sunrise .rcp-datepicker-wrap button.ui-datepicker-close:active{background:#c36922;border-color:#ad5d1e;box-shadow:inset 0 2px 0 #ad5d1e}.admin-color-light .rcp-datepicker-wrap .ui-timepicker-div .ui-slider-handle{background:#e5e5e5}.admin-color-light .rcp-datepicker-wrap .ui-timepicker-div .ui-state-hover{background:#e5e5e5}.admin-color-light .rcp-datepicker-wrap button.ui-datepicker-close{background:#04a4cc;border-color:#037c9a #036881 #036881;color:#fff;box-shadow:0 1px 0 #036881;text-shadow:0 -1px 1px #036881,1px 0 1px #036881,0 1px 1px #036881,-1px 0 1px #036881}.admin-color-light .rcp-datepicker-wrap button.ui-datepicker-close:focus,.admin-color-light .rcp-datepicker-wrap button.ui-datepicker-close:hover{background:#04b0db;border-color:#036881;color:#fff;box-shadow:0 1px 0 #036881}.admin-color-light .rcp-datepicker-wrap button.ui-datepicker-close:focus{box-shadow:inset 0 1px 0 #037c9a,0 0 2px 1px #33b3db}.admin-color-light .rcp-datepicker-wrap button.ui-datepicker-close:active{background:#037c9a;border-color:#036881;box-shadow:inset 0 2px 0 #036881}.admin-color-bbp-evergreen .rcp-datepicker-wrap .ui-timepicker-div .ui-slider-handle{background:#56b274}.admin-color-bbp-evergreen .rcp-datepicker-wrap .ui-timepicker-div .ui-state-hover{background:#446950;color:#fff}.admin-color-bbp-mint .rcp-datepicker-wrap .ui-timepicker-div .ui-slider-handle{background:#4ca26a}.admin-color-bbp-mint .rcp-datepicker-wrap .ui-timepicker-div .ui-state-hover{background:#5fb37c;color:#fff}.admin-color-bbp-mint .rcp-datepicker-wrap button.ui-datepicker-close{background:#4f6d59;border-color:#3a4f41;color:#fff;-webkit-box-shadow:inset 0 1px 0 #71977e,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #71977e,0 1px 0 rgba(0,0,0,.15)}.admin-color-bbp-mint .rcp-datepicker-wrap button.ui-datepicker-close:focus,.admin-color-bbp-mint .rcp-datepicker-wrap button.ui-datepicker-close:hover{background:#3e5546;border-color:#2f4035;color:#fff;-webkit-box-shadow:inset 0 1px 0 #658a71,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #658a71,0 1px 0 rgba(0,0,0,.15)}.admin-color-bbp-mint .rcp-datepicker-wrap button.ui-datepicker-close:active{background:#3e5546;border-color:#2f4035;color:#fff;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5)}.rcp-datepicker-wrap .ui-timepicker-div .ui-widget-header{margin-bottom:8px}.rcp-datepicker-wrap .ui-timepicker-div dl{text-align:left}.rcp-datepicker-wrap .ui-timepicker-div dl dt{float:left;clear:left;padding:0 0 0 5px}.rcp-datepicker-wrap .ui-timepicker-div dl dd{margin:0 10px 10px 40%}.rcp-datepicker-wrap .ui-timepicker-div td{font-size:90%}.rcp-datepicker-wrap .ui-tpicker-grid-label{background:0 0;border:none;margin:0;padding:0}.rcp-datepicker-wrap .ui-timepicker-div .ui_tpicker_unit_hide{display:none}.rcp-datepicker-wrap .ui-timepicker-div .ui_tpicker_time .ui_tpicker_time_input{background:#f4f4f4;color:inherit;border:none;outline:0;width:95%}.rcp-datepicker-wrap .ui-timepicker-div .ui_tpicker_time .ui_tpicker_time_input:focus{border-bottom-color:#aaa}.rcp-datepicker-wrap .ui-timepicker-rtl{direction:rtl}.rcp-datepicker-wrap .ui-timepicker-rtl dl{text-align:right;padding:0 5px 0 0}.rcp-datepicker-wrap .ui-timepicker-rtl dl dt{float:right;clear:right}.rcp-datepicker-wrap .ui-timepicker-rtl dl dd{margin:0 40% 10px 10px}.rcp-datepicker-wrap .ui-timepicker-div.ui-timepicker-oneLine{padding-right:2px}.rcp-datepicker-wrap .ui-timepicker-div.ui-timepicker-oneLine .ui_tpicker_time,.rcp-datepicker-wrap .ui-timepicker-div.ui-timepicker-oneLine dt{display:none}.rcp-datepicker-wrap .ui-timepicker-div.ui-timepicker-oneLine .ui_tpicker_time_label{display:block;padding-top:2px}.rcp-datepicker-wrap .ui-timepicker-div.ui-timepicker-oneLine dl{text-align:right}.rcp-datepicker-wrap .ui-timepicker-div.ui-timepicker-oneLine dl dd,.rcp-datepicker-wrap .ui-timepicker-div.ui-timepicker-oneLine dl dd>div{display:inline-block;margin:0}.rcp-datepicker-wrap .ui-timepicker-div.ui-timepicker-oneLine dl dd.ui_tpicker_minute:before,.rcp-datepicker-wrap .ui-timepicker-div.ui-timepicker-oneLine dl dd.ui_tpicker_second:before{content:':';display:inline-block}.rcp-datepicker-wrap .ui-timepicker-div.ui-timepicker-oneLine dl dd.ui_tpicker_microsec:before,.rcp-datepicker-wrap .ui-timepicker-div.ui-timepicker-oneLine dl dd.ui_tpicker_millisec:before{content:'.';display:inline-block}.rcp-datepicker-wrap .ui-timepicker-div.ui-timepicker-oneLine .ui_tpicker_unit_hide,.rcp-datepicker-wrap .ui-timepicker-div.ui-timepicker-oneLine .ui_tpicker_unit_hide:before{display:none}.rcp-datepicker-wrap .ui-timepicker-div .ui-widget-content{background:#f4f4f4}.rcp-datepicker-wrap .ui-timepicker-div .ui-slider-handle{cursor:default;width:1.2em;height:1.2em;position:absolute;z-index:2}.rcp-datepicker-wrap .ui-datepicker-buttonpane{background:#f4f4f4;clear:both;overflow:hidden;padding:.4em}.rcp-datepicker-wrap .ui-datepicker-buttonpane button{background:#f7f7f7;border:1px solid #ccc;border-radius:3px;box-shadow:0 1px 0 #ccc;box-sizing:border-box;color:#555;cursor:pointer;display:inline-block;float:right;font-size:13px;height:28px;line-height:26px;margin:0;padding:0 10px 1px;vertical-align:top}.rcp-datepicker-wrap .ui-datepicker-buttonpane button:hover{background:#fafafa;border-color:#999;color:#23282d}.rcp-datepicker-wrap .ui-datepicker-buttonpane .ui-datepicker-current{float:left}.rcp-datepicker-wrap .ui-slider{position:relative;text-align:left}.rcp-datepicker-wrap .ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default}.rcp-datepicker-wrap .ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.rcp-datepicker-wrap .ui-slider-horizontal{height:.8em}.rcp-datepicker-wrap .ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em}.rcp-datepicker-wrap .ui-slider-horizontal .ui-slider-range{top:0;height:100%}.rcp-datepicker-wrap .ui-slider-horizontal .ui-slider-range-min{left:0}.rcp-datepicker-wrap .ui-slider-horizontal .ui-slider-range-max{right:0}.rcp-datepicker-wrap .ui-slider-vertical{width:.8em;height:100px}.rcp-datepicker-wrap .ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.rcp-datepicker-wrap .ui-slider-vertical .ui-slider-range{left:0;width:100%}.rcp-datepicker-wrap .ui-slider-vertical .ui-slider-range-min{bottom:0}.rcp-datepicker-wrap .ui-slider-vertical .ui-slider-range-max{top:0}.rcp-settings-gateway-stripe-key-row{display:none}.rcp-stripe-connect{display:inline-block;margin-bottom:1px;background-image:-webkit-linear-gradient(#28a0e5,#015e94);background-image:-moz-linear-gradient(#28a0e5,#015e94);background-image:-ms-linear-gradient(#28a0e5,#015e94);background-image:linear-gradient(#28a0e5,#015e94);-webkit-font-smoothing:antialiased;border:0;padding:1px;height:30px;text-decoration:none;-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px;-moz-box-shadow:0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 0 rgba(0,0,0,.2);cursor:pointer;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.rcp-stripe-connect span{display:block;position:relative;padding:0 12px 0 44px;height:30px;background:#1275ff;background-image:-webkit-linear-gradient(#7dc5ee,#008cdd 85%,#30a2e4);background-image:-moz-linear-gradient(#7dc5ee,#008cdd 85%,#30a2e4);background-image:-ms-linear-gradient(#7dc5ee,#008cdd 85%,#30a2e4);background-image:linear-gradient(#7dc5ee,#008cdd 85%,#30a2e4);font-size:14px;line-height:30px;color:#fff;font-weight:700;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;text-shadow:0 -1px 0 rgba(0,0,0,.2);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.25);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.25);box-shadow:inset 0 1px 0 rgba(255,255,255,.25);-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.rcp-stripe-connect span:before{content:'';display:block;position:absolute;left:11px;top:50%;width:23px;height:24px;margin-top:-12px;background-repeat:no-repeat;background-size:23px 24px}.rcp-stripe-connect:active{background:#005d93}.rcp-stripe-connect:active span{color:#eee;background:#008cdd;background-image:-webkit-linear-gradient(#008cdd,#008cdd 85%,#239adf);background-image:-moz-linear-gradient(#008cdd,#008cdd 85%,#239adf);background-image:-ms-linear-gradient(#008cdd,#008cdd 85%,#239adf);background-image:linear-gradient(#008cdd,#008cdd 85%,#239adf);-moz-box-shadow:inset 0 1px 0 rgba(0,0,0,.1);-webkit-box-shadow:inset 0 1px 0 rgba(0,0,0,.1);box-shadow:inset 0 1px 0 rgba(0,0,0,.1)}.rcp-stripe-connect span:before,.rcp-stripe-connect.blue span:before{background-image:url(data:image/png;base64,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)}#rcp_stripe_marketing_container_inner_container{background:#fff url(../images/stripe_setup_background.svg) no-repeat;border-radius:4px;font-weight:700!important;display:grid;grid-template-columns:2fr .45fr;max-width:810px}.rcp_stripe_help_box_inner_container{background:#fff;border-radius:4px;font-weight:700!important;display:grid;grid-template-columns:2fr .45fr;max-width:810px}.rcp_stripe_help_box_inner_container #stripe_mailing_list{width:40%;padding:.3em .8em}.rcp_stripe_help_box_inner_container span{font-weight:400}.rcp_stripe_help_box_inner_container .rcp_stripe_help_box_content{padding:20px}.rcp_stripe_help_box_inner_container .rcp_stripe_help_box_content p{color:#76878d;font-weight:400;font-size:14px;line-height:19px}.rcp_stripe_help_box_inner_container .rcp_stripe_help_box_content button{display:block;margin:.5em 0;background:#af86c7 0 0 no-repeat padding-box;border-radius:8px;text-align:center;font-weight:400;font-size:1.1rem;line-height:19px;letter-spacing:0;color:#fff;padding:10px 16px;white-space:nowrap;text-decoration:none;border:none}.rcp_stripe_help_box_inner_container .rcp_stripe_help_box_content button:hover{background:#9762b6 0 0 no-repeat padding-box;cursor:pointer}.rcp_stripe_help_box_inner_container .rcp_stripe_help_box_content input{display:block;margin:.5em 0}.rcp_stripe_help_box_inner_container .rcp_stripe_help_box_content .stripe_submit_container{display:grid;grid-template-columns:1fr 1.5fr 1fr;column-gap:1em;align-items:center}#rc_accept_privacy_policy{display:inline-block}.rcp_stripe_help_box_inner_container .rcp_stripe_help_box_content .small a{color:#0083e3;font-weight:400;text-decoration:none}.rcp_stripe_help_box_inner_container .rcp_stripe_help_box_button{background:#646fde;min-height:100%;text-align:center;color:#fff}.rcp_stripe_help_box_inner_container .rcp_stripe_help_box_button .need_help{padding-top:46%}.rcp_stripe_help_box_inner_container .rcp_stripe_help_box_button a{color:#fff}.rcp_stripe_help_box a{color:#646fde}@media only screen and (-webkit-min-device-pixel-ratio:1.5),only screen and (min--moz-device-pixel-ratio:1.5),only screen and (min-device-pixel-ratio:1.5){.rcp-stripe-connect span:before,.rcp-stripe-connect.blue span:before{background-image:url(data:image/png;base64,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)}}.rcp-batch-processing-job-table{margin-bottom:2em}.rcp-batch-processing-job-table th{font-size:inherit;font-weight:700}.rcp-batch-processing-job-progress-bar{border:1px solid #0085ba;border-color:#0073aa #006799 #006799;border-radius:3px;display:inline-block;height:20px;width:300px;max-width:100%}.rcp-batch-processing-job-progress-bar span{background:#0085ba;box-shadow:inset 0 -1px 0 #006799;display:inline-block;height:100%}.admin-color-light .rcp-batch-processing-job-progress-bar{border-color:#037c9a #036881 #036881}.admin-color-light .rcp-batch-processing-job-progress-bar span{background:#04b0db;box-shadow:inset 0 -1px 0 #036881}.admin-color-blue .rcp-batch-processing-job-progress-bar{border-color:#d39323 #bd831f #bd831f}.admin-color-blue .rcp-batch-processing-job-progress-bar span{background:#e1a948;box-shadow:inset 0 -1px 0 #bd831f}.admin-color-coffee .rcp-batch-processing-job-progress-bar{border-color:#b78b66 #ae7d55 #ae7d55}.admin-color-coffee .rcp-batch-processing-job-progress-bar span{background:#c7a589;box-shadow:inset 0 -1px 0 #ae7d55}.admin-color-ectoplasm .rcp-batch-processing-job-progress-bar{border-color:#829237 #727f30 #727f30}.admin-color-ectoplasm .rcp-batch-processing-job-progress-bar span{background:#a3b745;box-shadow:inset 0 -1px 0 #727f30}.admin-color-midnight .rcp-batch-processing-job-progress-bar{border-color:#d02c21 #ba281e #ba281e}.admin-color-midnight .rcp-batch-processing-job-progress-bar span{background:#e14d43;box-shadow:inset 0 -1px 0 #ba281e}.admin-color-ocean .rcp-batch-processing-job-progress-bar{border-color:#80a583 #719a74 #719a74}.admin-color-ocean .rcp-batch-processing-job-progress-bar span{background:#9ebaa0;box-shadow:inset 0 -1px 0 #719a74}.admin-color-sunrise .rcp-batch-processing-job-progress-bar{border-color:#c36922 #ad5d1e #ad5d1e}.admin-color-sunrise .rcp-batch-processing-job-progress-bar span{background:#dd823b;box-shadow:inset 0 -1px 0 #ad5d1e}.rcp-batch-processing-job-table .spinner,.rcp-import-form .spinner{float:none}.rcp-batch-processing-message{display:none}.rcp-import-form tfoot td{padding-left:0}.rcp__notification--inline{background-color:#eeb9b9;width:700px;padding:10px;border-radius:5px}.restrict-content-addons-top-container{display:grid;grid-template-columns:5fr 1fr;grid-template-rows:1fr;padding:20px 20px 20px 0;gap:10px}@media screen and (max-width:768px){.restrict-content-addons-top-container{display:block!important}}.hide-grid{display:flex!important}.addons-flex-container{display:flex;gap:20px;flex-wrap:wrap;margin-top:25px;justify-content:center}.addon-card{box-shadow:0 0 4px #00000036;border-radius:10px;width:23%;min-width:260px;font-size:1rem}@media screen and (max-width:976px){.addon-card{width:90%}}.addon-card-header img{width:100%;border-top-right-radius:10px;border-top-left-radius:10px}.addon-card-body{padding:20px;display:flex;flex-direction:column;min-height:225px}.addon-card-title{font-size:1.3em;line-height:1.5em}.addon-card-text{font-size:1em}.addon-card-cta{text-decoration:none;font-weight:700;margin-top:auto}.addons-cta a{text-decoration:none}.addons-cta{margin-top:75px;text-align:center;font-size:1.5rem;font-weight:700}img.restrict-content-logo{margin:20px 0;max-height:50px}.rcp-why-go-pro-wrap .rcp-go-pro-color-container{background:#222 0 0 no-repeat padding-box;border-radius:34px;padding:1rem}.rcp-why-go-pro-wrap .rcp-go-pro-color-container .rcp-why-go-pro-inner-wrapper{background:transparent radial-gradient(closest-side at 50% 50%,#6ea5e5 0,#222 67%,#222 100%) 0 0 no-repeat padding-box;border-radius:34px}.rcp-why-go-pro-wrap .rcp-go-pro-color-container .rcp-why-go-pro-inner-wrapper .rcp-top-header{display:flex;align-items:center;flex-direction:row;flex-wrap:nowrap;align-content:stretch;justify-content:center}.rcp-why-go-pro-wrap .rcp-go-pro-color-container .rcp-why-go-pro-inner-wrapper .rcp-top-header img{margin-left:40px}.rcp-why-go-pro-wrap .rcp-go-pro-color-container .rcp-why-go-pro-inner-wrapper .rcp-top-header h1{font-weight:700;font-size:42px;line-height:63px;color:#fff}.rcp-why-go-pro-wrap .rcp-go-pro-color-container .rcp-why-go-pro-inner-wrapper a{text-decoration:none}.rcp-why-go-pro-wrap .rcp-go-pro-color-container .rcp-why-go-pro-inner-wrapper h2{text-align:center;font-weight:400;font-size:18px;line-height:27px;color:#fff;margin-bottom:60px}.rcp-why-go-pro-wrap .rcp-go-pro-color-container .rcp-why-go-pro-inner-wrapper .rcp-pro-features-container{display:grid;grid-template-columns:repeat(auto-fill,minmax(311px,1fr))}.rcp-why-go-pro-wrap .rcp-go-pro-color-container .rcp-why-go-pro-inner-wrapper .rcp-pro-features-container .feature{display:grid;grid-template-columns:auto auto;grid-template-rows:140px;gap:10px 10px}.rcp-why-go-pro-wrap .rcp-go-pro-color-container .rcp-why-go-pro-inner-wrapper .rcp-pro-features-container .feature img{background:#cfe0f4 0 0 no-repeat padding-box;border:1px solid #cfe0f4;border-radius:7px;width:42px;height:42px;padding:10px}.rcp-why-go-pro-wrap .rcp-go-pro-color-container .rcp-why-go-pro-inner-wrapper .rcp-pro-features-container .feature h3{font-weight:400;font-size:18px;color:#fff;margin:0}.rcp-why-go-pro-wrap .rcp-go-pro-color-container .rcp-why-go-pro-inner-wrapper .rcp-pro-features-container .feature p{text-align:left;font-weight:600;font-size:14px;line-height:19px;color:#fff;margin:5px 20px 10px 0}.rcp-why-go-pro-wrap .rcp-go-pro-color-container .rcp-why-go-pro-inner-wrapper .rcp-why-go-pro-buttons-container{text-align:center}.rcp-why-go-pro-wrap .rcp-go-pro-color-container .rcp-why-go-pro-inner-wrapper .rcp-why-go-pro-buttons-container .try-before-you-buy{border:4px solid #640af8;border-radius:7px;text-align:center;font-weight:800;font-size:18px;line-height:27px;color:#fff;text-transform:capitalize;background-color:transparent;display:block;padding:1rem 0}.rcp-why-go-pro-wrap .rcp-go-pro-color-container .rcp-why-go-pro-inner-wrapper .rcp-why-go-pro-buttons-container .try-before-you-buy:hover{cursor:pointer;text-decoration:none;color:#fff;background:#a569bc;border:4px solid #a569bc}.rcp-why-go-pro-wrap .rcp-go-pro-color-container .rcp-why-go-pro-inner-wrapper .rcp-why-go-pro-buttons-container .rcp-unlock-pro-features-add-ons{background:transparent linear-gradient(94deg,#640af8 0,#743195 100%) 0 0 no-repeat padding-box;border-radius:7px;text-align:center;font-weight:800;font-size:18px;line-height:27px;color:#fff;text-transform:capitalize;border:none;margin-top:10px;display:block;padding:1rem 0}.rcp-why-go-pro-wrap .rcp-go-pro-color-container .rcp-why-go-pro-inner-wrapper .rcp-why-go-pro-buttons-container .rcp-unlock-pro-features-add-ons:hover{cursor:pointer;text-decoration:none;color:#fff;background:#a569bc}@media all and (max-width:782px){.rcp-why-go-pro-wrap .rcp-go-pro-color-container .rcp-why-go-pro-inner-wrapper .rcp-top-header{flex-direction:column-reverse}.rcp-why-go-pro-wrap .rcp-go-pro-color-container .rcp-why-go-pro-inner-wrapper .rcp-top-header img{margin-left:0}}@media all and (min-width:1080px){.rcp-why-go-pro-wrap .rcp-go-pro-color-container .rcp-why-go-pro-inner-wrapper .rcp-why-go-pro-buttons-container .rcp-why-go-pro-buttons-container{margin:0 auto;display:flex}.rcp-why-go-pro-wrap .rcp-go-pro-color-container .rcp-why-go-pro-inner-wrapper .rcp-why-go-pro-buttons-container .try-before-you-buy{width:45%;display:inline-block;padding:.8rem;height:auto}.rcp-why-go-pro-wrap .rcp-go-pro-color-container .rcp-why-go-pro-inner-wrapper .rcp-why-go-pro-buttons-container .rcp-unlock-pro-features-add-ons{width:45%;display:inline-block;margin-top:0;margin-left:10px;padding:1rem;height:auto}}@media all and (min-width:1440px){.rcp-why-go-pro-wrap .rcp-go-pro-color-container{padding:4rem;max-width:83%}.rcp-pro-banner{grid-template-columns:repeat(auto-fill,minmax(350px,1fr))!important}}@media all and (min-width:1700px){.rcp-why-go-pro-wrap .rcp-go-pro-color-container{padding:4rem;max-width:71%}}@media all and (min-width:1920px){.rcp-why-go-pro-wrap .rcp-go-pro-color-container{max-width:1200px;margin:0 auto}}.rcp-pro-banner{background:#222;border-radius:7px;display:grid;grid-template-rows:auto;gap:20px 20px;max-width:1368px}.rcp-pro-banner .b{fill:#fff}.rcp-pro-banner .a{fill:#fff}.rcp-pro-banner .rcp-pro-logo{text-align:center;margin-top:10px;width:95%;overflow:auto;margin:0 auto;padding:10px 0 0 0}.rcp-pro-banner .rcp-pro-logo img{width:100%}.rcp-pro-banner .rcp-unlock-text{width:90%;margin:0 auto}.rcp-pro-banner .rcp-unlock-text h2{font-weight:400;font-size:18px;line-height:27px;color:#fff;text-align:center}.rcp-pro-banner .rcp-pro-button{width:90%;margin:0 auto;padding:0 0 10px 0}.rcp-pro-banner .rcp-pro-button a{background:transparent linear-gradient(94deg,#640af8 0,#743195 100%) 0 0 no-repeat padding-box;border-radius:7px;text-align:center;font-weight:800;font-size:18px;line-height:27px;color:#fff;text-transform:capitalize;border:none;margin-top:10px;display:block;padding:1rem 0;text-decoration:none}.rcp-pro-banner .rcp-pro-button a:hover{cursor:pointer;text-decoration:none;color:#fff;background:#a569bc;border:1px solid #a569bc}@media all and (min-width:1200px){.rcp-pro-banner{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));margin:0 auto;background:transparent linear-gradient(95deg,#222 0,#cfe0f4 100%) 0 0 no-repeat padding-box}.rcp-pro-banner .rcp-pro-logo{width:auto}.rcp-pro-banner .rcp-unlock-text{width:auto}.rcp-pro-banner .rcp-pro-button{width:100%;padding:0}.rcp-pro-banner .rcp-pro-button a{margin:15px}}.restrict-content-welcome-header{background:#cfe0f4 0 0 no-repeat padding-box;border:1px solid #d4d5d8}.restrict-content-welcome-header .restrict-content-logo{margin-left:20px;max-height:50px}.restrict-content-welcome-top-container{display:grid;grid-template-columns:5fr 1fr;grid-template-rows:1fr;max-width:1200px;margin:0 auto}.restrict-content-welcome-left-container{padding:30px 40px 40px 40px;max-width:1062px;border-right:1px solid #d4d5d8}.restrict-content-welcome-right-container{padding:50px 0 50px 10px}.restrict-content-welcome-right-container .restrict-content-welcome-advertisement{background:#fff;border-radius:4px}.restrict-content-welcome-right-container .restrict-content-welcome-advertisement .restrict-content-welcome-try-for-free{background:#222 0 0 no-repeat padding-box;text-transform:capitalize;color:#fff}.restrict-content-welcome-right-container .restrict-content-welcome-advertisement .restrict-content-welcome-try-for-free p{text-align:center;font-weight:700;font-size:1rem;line-height:21px;letter-spacing:0;padding:7px;margin:0}.restrict-content-welcome-right-container .restrict-content-welcome-advertisement .restrict-content-welcome-advertisement-content{padding:10px 9px 15px 9px}.restrict-content-welcome-right-container .restrict-content-welcome-advertisement .restrict-content-welcome-advertisement-content p{margin:0;text-align:center;font-weight:400;font-size:.7rem;line-height:14px;letter-spacing:0;color:#71747d}.restrict-content-welcome-advertisement-logo{margin:13px;width:80%}.restrict-content-welcome-right-container .restrict-content-welcome-advertisement .restrict-content-welcome-advertisement-content .rcp-highlight{color:#222;text-transform:uppercase;font-weight:600;margin:10px 0}.restrict-content-inner-container{background:#fff 0 0 no-repeat padding-box;border-radius:4px;overflow:auto}.restrict-content-inner-container .restrict-content-welcome-body-container{display:grid;grid-template-columns:1fr .2fr;border-bottom:1px solid #d4d5d8;align-content:center;justify-content:center;align-items:center}.restrict-content-container-section{padding:30px}.restrict-content-container-section .restrict-content-resource-container{margin-bottom:30px}.restrict-content-try-free-submit{background:#640af8 0 0 no-repeat padding-box;border-radius:0 4px 4px 0;text-align:center;font-weight:700;font-size:1.1rem;line-height:19px;letter-spacing:0;color:#fff;padding:10px 20px;margin-left:-5px;text-decoration:none;display:inline-block;height:22px}.restrict-content-how-to-body ul{list-style:disc outside;padding-left:20px}.restrict-content-how-to-body li{font-weight:400;font-size:1rem;line-height:19px;padding-bottom:15px}.restrict-content-container-section h2{font-weight:800;font-size:1.1rem;line-height:22px;color:#0a1a23;letter-spacing:0}.restrict-content-container-section h3{font-weight:700;font-size:1rem;line-height:19px;letter-spacing:0;color:#222}.restrict-content-container-section p{color:#71747d;font-weight:400;font-size:1rem;line-height:19px}.restrict-content-container-section .restrict-content-example-text{font:normal normal normal 14px/19px Monaco;letter-spacing:0;color:#71747d}.restrict-content-welcome-user{text-transform:capitalize}.restrict-content-welcome-right-container .restrict-content-welcome-advertisement .restrict-content-welcome-advertisement-form{text-align:center}.restrict-content-welcome-right-container .restrict-content-welcome-advertisement .restrict-content-welcome-button{background:#640af8 0 0 no-repeat padding-box;border-radius:4px;text-align:center;font-weight:700;font-size:1.1rem;line-height:19px;letter-spacing:0;color:#fff;padding:10px 25px;overflow:hidden;white-space:nowrap;display:inline-block;margin:10px 15px;text-decoration:none;border:none}.restrict-content-welcome-right-container .restrict-content-welcome-advertisement .restrict-content-welcome-button:hover{cursor:pointer}.restrict-content-welcome-top-container .restrict-content-welcome-left-container .restrict-content-inner-container .restrict-content-section-link{text-decoration:none}.restrict-content-welcome-top-container .restrict-content-welcome-left-container .restrict-content-inner-container .restrict-content-help-section{margin:34px 30px 20px 30px;border:1px solid #d4d5d8;border-radius:4px;display:grid;grid-template-columns:.5fr 2fr .5fr;grid-template-rows:1fr;grid-template-areas:". . .";justify-items:center;align-items:center}.restrict-content-welcome-top-container .restrict-content-welcome-left-container .restrict-content-inner-container .restrict-content-help-section:hover{cursor:pointer}.restrict-content-welcome-top-container .restrict-content-welcome-left-container .restrict-content-inner-container .restrict-content-help-section:hover .restrict-content-help-section-icon{background-color:#640af8}.restrict-content-welcome-top-container .restrict-content-welcome-left-container .restrict-content-inner-container .restrict-content-help-section:hover .restrict-content-help-section-arrow{display:block!important}.restrict-content-help-section .restrict-content-help-section-icon{width:29px;height:29px;border:1px solid #640af8;border-radius:7px;padding:12px}.restrict-content-help-section #restrict-content-help-center{background:url(../images/help-purple.svg) no-repeat scroll right center;width:30px;height:30px}.restrict-content-welcome-top-container .restrict-content-welcome-left-container .restrict-content-inner-container .restrict-content-help-section:hover #restrict-content-help-center{background:url(../images/help-white.svg) no-repeat scroll right center #640af8;width:30px;height:30px}.restrict-content-help-section #restrict-content-trouble-shooting{background:url(../images/bug-purple.svg) no-repeat scroll right center;width:30px;height:30px}.restrict-content-welcome-top-container .restrict-content-welcome-left-container .restrict-content-inner-container .restrict-content-help-section:hover #restrict-content-trouble-shooting{background:url(../images/bug-white.svg) no-repeat scroll right center #640af8;width:30px;height:30px}.restrict-content-help-section #restrict-content-support-forum{background:url(../images/support-purple.svg) no-repeat scroll right center;width:30px;height:30px}.restrict-content-welcome-top-container .restrict-content-welcome-left-container .restrict-content-inner-container .restrict-content-help-section:hover #restrict-content-support-forum{background:url(../images/support-white.svg) no-repeat scroll right center #640af8;width:30px;height:30px}.restrict-content-help-section .restrict-content-help-section-arrow{width:15px;height:15px}.restrict-content-help-section h3{font-weight:700;font-size:1.1rem;line-height:22px;letter-spacing:0;color:#0a1a23;text-transform:uppercase}.restrict-content-help-section p{font-weight:400;font-size:1rem;line-height:19px;letter-spacing:0;color:#71747d}.restrict-content-help-section:hover{box-shadow:0 3px 6px #22222240;border:1px solid #640af8!important}.restrict-content-premium-support{border-top:1px solid #d4d5d8;padding:10px 30px;margin:40px 0;display:grid;grid-template-columns:5fr 1fr;grid-template-rows:1fr}.restrict-content-premium-support h3{font-weight:700;font-size:1.1rem;line-height:22px;letter-spacing:0;color:#0a1a23;text-transform:capitalize}.restrict-content-premium-support p{font-weight:400;font-size:1rem;line-height:19px;letter-spacing:0;color:#71747d}.restrict-content-premium-support-logo{width:100px;height:auto;margin-top:10px;padding:10px}.restrict-content-unlock-premium-features{background:#222 0 0 no-repeat padding-box;border-radius:4px;padding:10px 10px;margin-top:20px}.restrict-content-unlock-premium-features h3{text-align:center;font-weight:700;font-size:1rem;line-height:21px;letter-spacing:0;color:#fff}.restrict-content-unlock-premium-features p{text-align:center;font-weight:400;font-size:.7rem;line-height:14px;letter-spacing:0;color:#fff}.restrict-content-unlock-premium-features h4{font-weight:700;font-size:1.7rem;line-height:33px;letter-spacing:0;color:#cfe0f4}.restrict-content-unlock-premium-features .go-pro-now{display:flex;justify-content:center;text-align:center;font-weight:700;font-size:1rem;line-height:19px;letter-spacing:0;color:#fff;background:#640af8 0 0 no-repeat padding-box;border-radius:4px;padding:10px 40px;text-decoration:none}.restrict-content-unlock-premium-features .whats-included{text-align:left;text-decoration:underline;font-weight:400;font-size:.7rem;line-height:14px;letter-spacing:0;color:#fff;margin-top:30px}.restrict-content-unlock-premium-features .whats-included a{color:#fff;text-align:center;width:100%;display:block}.restrict-content-unlock-premium-features .tabs .tablist{display:grid;grid-template-columns:1fr 1fr 1fr;grid-template-rows:1fr;align-items:center;border-bottom:1px solid #dcebf3}.restrict-content-unlock-premium-features .tabs .tablist button{margin:0;padding:0 0 6px 0;font-weight:400;font-size:.7rem;line-height:14px;letter-spacing:0;color:#dcebf3;background:0 0;border:none}.restrict-content-unlock-premium-features .tabs .tablist button:hover{cursor:pointer;font-weight:700}.restrict-content-unlock-premium-features .tabs .tabpanel{margin-top:10px;margin-bottom:20px}.restrict-content-unlock-premium-features .tabs .tabpanel h4{text-align:center;margin:0}.restrict-content-unlock-premium-features .tabs .tabpanel p{text-align:center;margin:0}#restrict_content_legacy_switch{background-color:#28a745!important;border-color:#28a745!important}#restrict_content_legacy_switch:hover{background-color:#218838!important;border-color:#1e7e34!important}#restrict_content_legacy_switch.button-secondary.danger{color:#d63638;border:1px solid #d63638;border-color:#d63638!important;background-color:#f6f7f7!important}#restrict_content_legacy_switch.button-secondary.danger:hover{background-color:#d63638!important;color:#fff!important}@media all and (max-width:768px){.restrict-content-welcome-top-container{display:block}.restrict-content-welcome-left-container{padding:0}.restrict-content-welcome-right-container{display:block;padding:20px 0 10px 0}.restrict-content-unlock-premium-features{margin-top:20px}.restrict-content-welcome-top-container .restrict-content-welcome-left-container .restrict-content-inner-container .restrict-content-help-section{margin:10px;gap:0 10px}.restrict-content-help-section{margin:10px;padding:5px}.restrict-content-unlock-premium-features .go-pro-now{width:100%;display:block;padding:10px 0}.restrict-content-welcome-advertisement-logo{padding:10px;width:60%;margin:0 auto;display:block}.restrict-content-welcome-right-container .restrict-content-welcome-advertisement .restrict-content-welcome-button{width:80%}.restrict-content-welcome-advertisement-form input{width:90%}.restrict-content-inner-container .restrict-content-container-section{padding:10px}.restrict-content-try-free-submit{background:#640af8 0 0 no-repeat padding-box;border-radius:4px;width:100%;display:block;margin-top:10px;text-align:center;font-weight:700;font-size:1.1rem;line-height:19px;letter-spacing:0;color:#fff;padding:10px 0}}.stellarwp-telemetry-modal__inner{width:900px!important}.rcp-template-tag-warning-message:before{content:'*';color:red;font-weight:700;font-size:1.2em;margin-right:3px}.rcp-template-tag-warning:after{content:'*';color:red;font-weight:700;font-size:1.2em;margin-left:3px}
     1#optin-modal-restrict-content-pro p{max-width:900px}.rcp_key_wrap{position:relative}.rcp_show_key{cursor:pointer;color:#21759b;display:inline-block;max-width:80px}.rcp_key{display:none;color:#555}.rcp_show_key:hover span{display:inline}#tab_container .tab_content{position:relative}.rcp-drag-handle{cursor:move;display:block;height:20px;width:20px;background:url(../images/cross-hair.png)}#side-info-column td.rcp_meta_box_desc{display:none!important}#rcp-member-search{text-align:right;margin:0 0 10px;float:right}#rcp-member-search *{text-align:left;display:inline-block}#rcp-members-page .subsubsub{float:none}#payments-filter{width:200px;float:right;text-align:right;margin:0 0 5px}#rcp-members-filter{margin:0 0 10px}#payments-filter input.regular-text,#rcp-members-filter input.regular-text{width:30px}#rcp-add-new-member td{position:relative}#rcp_user_search_results{position:absolute;z-index:10}#rcp_user_search_results ul{padding:10px 10px 4px;margin:0;background:#f0f0f0;border:1px solid #dfdfdf;width:300px;max-height:200px;overflow-y:scroll}#rcp-order{margin-right:10px}.rcp_payment_details{border-bottom:1px solid #f0f0f0;width:400px}.rcp-help .postbox ul li{list-style:disc outside;margin-left:20px}.rtl .rcp-help .postbox ul li{list-style:disc outside;margin-right:20px}.rcp-help .postbox h4{border-bottom:1px solid #ccc;margin:30px 0 0 0;padding:0 0 10px}.center{text-align:center}.rcp-delete{color:red}.rcp-email-reminders th{font-size:14px;padding-left:10px!important}#rcp-code,#rcp-description,#rcp-email,#rcp-expiration,#rcp-key,#rcp-name,#rcp-payment-profile-id,#rcp-user,#rcp-userlogin{width:300px}.stripe_settings__descriptor,.stripe_settings__descriptor--suffix{width:300px}#rcp-amount,#rcp-fee,#rcp-price{width:100px}#rcp-duration,#rcp-max-uses,#trial_duration{width:40px}#rcp-maximum-renewals{width:60px}#rcp-expiration{width:120px}#rcp-metabox-field-access-levels,#rcp-metabox-field-levels,#rcp-metabox-field-role{border-left:3px solid #eee;padding-left:10px}.rcp-subscription-levels{padding-left:1.75rem;margin-top:.5rem}.rcp-user-col{width:225px}.rcp-sub-col{width:140px}.rcp-status-col{width:60px}.rcp-recurring-col{width:55px}.rcp-expiration-col{width:110px}.rcp-role-col{width:80px}#rcp-bulk-action-options{clear:both;background:#f5f5f5;background-image:-webkit-gradient(linear,left bottom,left top,from(#f5f5f5),to(#fafafa));background-image:-webkit-linear-gradient(bottom,#f5f5f5,#fafafa);background-image:-moz-linear-gradient(bottom,#f5f5f5,#fafafa);background-image:-o-linear-gradient(bottom,#f5f5f5,#fafafa);background-image:linear-gradient(to top,#f5f5f5,#fafafa);border:1px solid #dfdfdf;overflow:hidden;margin:8px 0;padding:12px;border-radius:3px;font-size:13px;line-height:2.1em}#rcp-bulk-action-options p{color:#777}#rcp-bulk-select-all{margin:0}.rcp-id-col{color:#555;white-space:nowrap}#rcp-revoke-access-wrap{display:none}.rcp-sub-name-col{width:225px}.rcp-sub-order-col{width:50px}.rcp-discounts-name-col{width:190px}.rcp-discounts-desc-col{width:200px}.rcp-discounts-code-col{width:110px}.rcp-discounts-amount-col{width:45px}.rcp-discounts-type-col{width:90px}.rcp-discounts-status-col{width:80px}.rcp-discounts-uses-col{width:40px}.rcp-discounts-uses-left-col{width:60px}.rcp-payments-status-col{width:70px}.rcp-payments-amount-col{width:75px}.rcp-payments-subscription-col{width:120px}.rcp-view-invoice{display:inline-block}.restrict_page_rcp-payments .total{clear:both}span.dashicons.dashicons-hidden,span.dashicons.dashicons-visibility{display:flex}#rcp-error-logs .column-log_error{width:15%}#rcp-error-logs .column-message{width:65%}#rcp-graphs-filter .actions{width:100%}#rcp-date-range-options,#rcp-graphs-date-options{float:left}#rcp-date-range-options span{float:left;margin-right:6px;height:24px;line-height:24px}#rcp-system-info-textarea{width:800px;height:400px;font-family:Menlo,Monaco,monospace;white-space:pre}#rcp-debug-log .button{margin-right:8px}.rcp-sub-nav{float:none!important}.rcp-sub-nav a{padding:13px!important}table.rcp-table{text-align:left;width:100%;border:none;margin:0 0 21px}table.rcp-table td,table.rcp-table th{text-align:left;border:1px solid #eee;color:#666;padding:.4em;font-size:90%;word-break:break-all}table.rcp-table th{background:#fafafa;font-weight:700}table.rcp_payment_details td,table.rcp_payment_details th{padding:8px 10px}@media screen and (max-width:782px){table.rcp_payment_details th.column-primary{width:auto}}#rcp-add-ons h2{margin:0 0 15px}#rcp-add-ons .rcp-add-on{display:inline-block;vertical-align:top;margin:0 11px 14px 0;background:#fff;border:1px solid #ccc;width:320px;padding:14px;min-height:290px;position:relative}#rcp-add-ons .rcp-add-on h3{margin:0 0 8px;font-size:13px}#rcp-add-ons .rcp-add-on .button-secondary{position:absolute;bottom:14px;left:14px}#rcp-add-ons .rcp-add-on .wp-post-image{width:100%;height:auto;display:block}.rcp-add-ons-footer{padding-top:10px}#rcp-item-wrapper{background:#f5f5f5;border:1px solid #e5e5e5;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04)}#rcp-item-wrapper:after{clear:both;content:"";display:block;font-size:0;height:0;visibility:hidden}#rcp-item-tab-wrapper{float:left;width:18%;z-index:1}#rcp-item-tab-wrapper-list{background:#fff;margin:0}#rcp-item-tab-wrapper-list li{background-color:#eaeaea;border-bottom:1px solid #e5e5e5;color:#444;display:block;font-size:12px;-webkit-hyphens:auto;-moz-hyphens:auto;-ms-hyphens:auto;hyphens:auto;margin-bottom:0;word-wrap:break-word}#rcp-item-tab-wrapper-list li a{display:block;padding:8px 10px 8px 6px}#rcp-item-tab-wrapper-list .active{background-color:#fff;display:block;padding:8px 10px 8px 6px}#rcp-item-tab-wrapper-list .inactive a,#rcp-item-tab-wrapper-list .inactive a:visited{background-color:#f5f5f5;color:#444;text-decoration:none}#rcp-item-tab-wrapper-list .inactive a:hover{background-color:#fff}#rcp-item-tab-wrapper-list .dashicons{color:#444;font-size:16px;height:auto;min-width:24px}#rcp-item-card-wrapper .left{float:left}#rcp-item-card-wrapper .right{float:right}#rcp-item-card-wrapper input{font-weight:400}#rcp-item-card-wrapper{background-color:#fff;border:1px solid #e5e5e5;display:inline-block;margin-left:-1px;max-width:1000px;min-height:200px;width:100%;z-index:2}.rcp-item-has-tabs #rcp-item-card-wrapper{border-width:0 0 0 1px;width:82%}#rcp-item-card-wrapper .rcp-item-section{border-bottom:1px solid #eee;margin-bottom:10px;overflow:auto}#rcp-item-card-wrapper .rcp-item-section::after{content:"";clear:both;display:table}#rcp-item-card-wrapper .rcp-item-section table{margin-bottom:20px}#rcp-item-card-wrapper>div{padding:0 20px}#rcp-item-card-wrapper>div:first-child{padding-top:20px}#rcp-item-card-wrapper>div:last-child{border:none;clear:both;overflow:hidden;padding-bottom:20px}#rcp-item-card-wrapper .rcp-avatar-wrap{padding-right:10px;text-align:center}#rcp-item-card-wrapper .rcp-customer-id{font-size:24px;font-weight:600}#rcp-item-card-wrapper .rcp-customer-main-wrapper input{width:200px}#rcp-item-card-wrapper .rcp-customer-info{margin-top:5px;margin-bottom:10px;min-height:140px}#rcp-item-card-wrapper .rcp-info-wrapper{min-height:125px;overflow:visible}#rcp-item-card-wrapper a.delete{color:red;margin-right:5px;text-decoration:none}#rcp-item-card-wrapper .rcp-info-item{display:block;line-height:16px;padding-bottom:5px}#rcp-item-card-wrapper .rcp-customer-first-name,#rcp-item-card-wrapper .rcp-customer-last-name{display:inline-block}#rcp-item-card-wrapper .rcp-edit-item{display:none}.rcp-item-stats-wrapper{font-size:14px;line-height:22px;margin:0 auto;min-height:30px;text-align:center}.rcp-item-stats-wrapper li{float:left;vertical-align:middle;width:50%}.rcp-item-stats-wrapper .dashicons{color:#888}#rcp-item-notes-wrapper{margin-bottom:20px}.rcp-item-notes-header img,.rcp-item-notes-header span{font-weight:600;line-height:30px;vertical-align:middle}#rcp-item-card-wrapper .edit-item{display:block;float:right;margin:10px 0 0;padding-bottom:20px}@media (min-width:768px){.rcp-customer-card-wrapper .rcp-item-info{display:flex}#rcp-customer-details{flex:1;padding-left:2em}#rcp-new-customer-details{flex:1}#rcp-new-customer-details th{width:190px}#rcp-customer-agreements-terms-wrapper{float:left}#rcp-customer-agreements-privacy-policy-wrapper{float:left;padding-left:3em}}#rcp-customer-account{text-align:center}#rcp-customer-agreements-wrapper ul{list-style:disc;padding-left:2em}#rcp-membership-add-renewal .rcp-payment-field-label{display:inline-block;width:150px;padding:3px}#rcp-membership-add-renewal select{margin-left:8px}.rcp-item-notes{background:#f9f9f9;margin-bottom:1em;max-height:250px;overflow-y:scroll;padding:0 1em}.rcp-add-item-note{display:block;width:100%}@media (max-width:1280px){.rcp-user-col{width:80px}.rcp-sub-col{width:120px}.rcp-role-col{width:90px}.rcp-sub-id-col{width:40px}.rcp-sub-desc-col{width:200px}.rcp-discounts-id-col{width:30px}.rcp-discounts-desc-col{width:150px}.rcp-discounts-code-col{width:60px}.rcp-discounts-amount-col{width:60px}.rcp-discounts-type-col{width:60px}.rcp-discounts-status-col{width:50px}.rcp-discounts-uses-col{width:50px}.rcp-discounts-uses-left-col{width:80px}}@media (max-width:782px){.rcp-drag-handle,.rcp-sub-order-col{display:none!important}}@media (min-width:783px){.rcp-payment-amount-user-col{display:none}}.rcp-help-tip{cursor:help}.ui-tooltip{background:#333!important;border-radius:3px!important;box-shadow:1px 1px 2px 1px rgba(214,214,214,.5);color:#dedede!important;max-width:400px;padding:7px;text-rendering:optimizeLegibility}.rcp-datepicker-wrap .ui-timepicker-div .ui-slider-handle{background:#00a0d2}.rcp-datepicker-wrap .ui-timepicker-div .ui-state-hover{background:#0073aa;color:#fff}.admin-color-fresh .rcp-datepicker-wrap .ui-timepicker-div .ui-slider-handle{background:#00a0d2}.admin-color-fresh .rcp-datepicker-wrap .ui-timepicker-div .ui-state-hover{background:#0073aa;color:#fff}.admin-color-fresh .rcp-datepicker-wrap button.ui-datepicker-close{background:#0085ba;border-color:#0073aa #006799 #006799;box-shadow:0 1px 0 #006799;color:#fff;text-decoration:none;text-shadow:0 -1px 1px #006799,1px 0 1px #006799,0 1px 1px #006799,-1px 0 1px #006799}.admin-color-fresh .rcp-datepicker-wrap button.ui-datepicker-close:focus,.admin-color-fresh .rcp-datepicker-wrap button.ui-datepicker-close:hover{background:#008ec2;border-color:#006799;color:#fff}.admin-color-fresh .rcp-datepicker-wrap button.ui-datepicker-close:focus{box-shadow:0 1px 0 #0073aa,0 0 2px 1px #33b3db}.admin-color-fresh .rcp-datepicker-wrap button.ui-datepicker-close:active{background:#0073aa;border-color:#006799;box-shadow:inset 0 2px 0 #006799}.admin-color-blue .rcp-datepicker-wrap .ui-timepicker-div .ui-slider-handle{background:#52accc}.admin-color-blue .rcp-datepicker-wrap .ui-timepicker-div .ui-state-hover{background:#096484;color:#fff}.admin-color-blue .rcp-datepicker-wrap button.ui-datepicker-close{background:#e1a948;border-color:#d39323 #bd831f #bd831f;color:#fff;box-shadow:0 1px 0 #bd831f;text-shadow:0 -1px 1px #bd831f,1px 0 1px #bd831f,0 1px 1px #bd831f,-1px 0 1px #bd831f}.admin-color-blue .rcp-datepicker-wrap button.ui-datepicker-close:focus,.admin-color-blue .rcp-datepicker-wrap button.ui-datepicker-close:hover{background:#e3af55;border-color:#bd831f;box-shadow:0 1px 0 #bd831f;color:#fff}.admin-color-blue .rcp-datepicker-wrap button.ui-datepicker-close:focus{box-shadow:inset 0 1px 0 #d39323,0 0 2px 1px #33b3db}.admin-color-blue .rcp-datepicker-wrap button.ui-datepicker-close:active{background:#d39323;border-color:#bd831f;box-shadow:inset 0 2px 0 #bd831f}.admin-color-coffee .rcp-datepicker-wrap .ui-timepicker-div .ui-slider-handle{background:#59524c}.admin-color-coffee .rcp-datepicker-wrap .ui-timepicker-div .ui-state-hover{background:#c7a589;color:#fff}.admin-color-coffee .rcp-datepicker-wrap button.ui-datepicker-close{background:#c7a589;border-color:#b78b66 #ae7d55 #ae7d55;color:#fff;box-shadow:0 1px 0 #ae7d55;text-shadow:0 -1px 1px #ae7d55,1px 0 1px #ae7d55,0 1px 1px #ae7d55,-1px 0 1px #ae7d55}.admin-color-coffee .rcp-datepicker-wrap button.ui-datepicker-close:focus,.admin-color-coffee .rcp-datepicker-wrap button.ui-datepicker-close:hover{background:#ccad93;border-color:#ae7d55;color:#fff;box-shadow:0 1px 0 #ae7d55}.admin-color-coffee .rcp-datepicker-wrap button.ui-datepicker-close:focus{box-shadow:inset 0 1px 0 #b78b66,0 0 2px 1px #33b3db}.admin-color-coffee .rcp-datepicker-wrap button.ui-datepicker-close:active{background:#b78b66;border-color:#ae7d55;box-shadow:inset 0 2px 0 #ae7d55}.admin-color-ectoplasm .rcp-datepicker-wrap .ui-timepicker-div .ui-slider-handle{background:#523f6d}.admin-color-ectoplasm .rcp-datepicker-wrap .ui-timepicker-div .ui-state-hover{background:#a3b745;color:#fff}.admin-color-ectoplasm .rcp-datepicker-wrap button.ui-datepicker-close{background:#a3b745;border-color:#829237 #727f30 #727f30;color:#fff;box-shadow:0 1px 0 #727f30;text-shadow:0 -1px 1px #727f30,1px 0 1px #727f30,0 1px 1px #727f30,-1px 0 1px #727f30}.admin-color-ectoplasm .rcp-datepicker-wrap button.ui-datepicker-close:focus,.admin-color-ectoplasm .rcp-datepicker-wrap button.ui-datepicker-close:hover{background:#a9bd4f;border-color:#727f30;color:#fff;box-shadow:0 1px 0 #727f30}.admin-color-ectoplasm .rcp-datepicker-wrap button.ui-datepicker-close:focus{box-shadow:inset 0 1px 0 #829237,0 0 2px 1px #33b3db}.admin-color-ectoplasm .rcp-datepicker-wrap button.ui-datepicker-close:active{background:#829237;border-color:#727f30;box-shadow:inset 0 2px 0 #727f30}.admin-color-midnight .rcp-datepicker-wrap .ui-timepicker-div .ui-slider-handle{background:#363b3f}.admin-color-midnight .rcp-datepicker-wrap .ui-timepicker-div .ui-state-hover{background:#e14d43;color:#fff}.admin-color-midnight .rcp-datepicker-wrap button.ui-datepicker-close{background:#e14d43;border-color:#d02c21 #ba281e #ba281e;color:#fff;box-shadow:0 1px 0 #ba281e;text-shadow:0 -1px 1px #ba281e,1px 0 1px #ba281e,0 1px 1px #ba281e,-1px 0 1px #ba281e}.admin-color-midnight .rcp-datepicker-wrap button.ui-datepicker-close:focus,.admin-color-midnight .rcp-datepicker-wrap button.ui-datepicker-close:hover{background:#e35950;border-color:#ba281e;color:#fff;box-shadow:0 1px 0 #ba281e}.admin-color-midnight .rcp-datepicker-wrap button.ui-datepicker-close:focus{box-shadow:inset 0 1px 0 #d02c21,0 0 2px 1px #33b3db}.admin-color-midnight .rcp-datepicker-wrap button.ui-datepicker-close:active{background:#d02c21;border-color:#ba281e;box-shadow:inset 0 2px 0 #ba281e}.admin-color-ocean .rcp-datepicker-wrap .ui-timepicker-div .ui-slider-handle{background:#738e96}.admin-color-ocean .rcp-datepicker-wrap .ui-timepicker-div .ui-state-hover{background:#9ebaa0;color:#fff}.admin-color-ocean .rcp-datepicker-wrap button.ui-datepicker-close{background:#9ebaa0;border-color:#80a583 #719a74 #719a74;color:#fff;box-shadow:0 1px 0 #719a74;text-shadow:0 -1px 1px #719a74,1px 0 1px #719a74,0 1px 1px #719a74,-1px 0 1px #719a74}.admin-color-ocean .rcp-datepicker-wrap button.ui-datepicker-close:focus,.admin-color-ocean .rcp-datepicker-wrap button.ui-datepicker-close:hover{background:#a7c0a9;border-color:#719a74;color:#fff;box-shadow:0 1px 0 #719a74}.admin-color-ocean .rcp-datepicker-wrap button.ui-datepicker-close:focus{box-shadow:inset 0 1px 0 #80a583,0 0 2px 1px #33b3db}.admin-color-ocean .rcp-datepicker-wrap button.ui-datepicker-close:active{background:#80a583;border-color:#719a74;box-shadow:inset 0 2px 0 #719a74}.admin-color-sunrise .rcp-datepicker-wrap .ui-timepicker-div .ui-slider-handle{background:#cf4944}.admin-color-sunrise .rcp-datepicker-wrap .ui-timepicker-div .ui-state-hover{background:#dd823b;color:#fff}.admin-color-sunrise .rcp-datepicker-wrap button.ui-datepicker-close{background:#dd823b;border-color:#c36922 #ad5d1e #ad5d1e;color:#fff;box-shadow:0 1px 0 #ad5d1e;text-shadow:0 -1px 1px #ad5d1e,1px 0 1px #ad5d1e,0 1px 1px #ad5d1e,-1px 0 1px #ad5d1e}.admin-color-sunrise .rcp-datepicker-wrap button.ui-datepicker-close:focus,.admin-color-sunrise .rcp-datepicker-wrap button.ui-datepicker-close:hover{background:#df8a48;border-color:#ad5d1e;color:#fff;box-shadow:0 1px 0 #ad5d1e}.admin-color-sunrise .rcp-datepicker-wrap button.ui-datepicker-close:focus{box-shadow:inset 0 1px 0 #c36922,0 0 2px 1px #33b3db}.admin-color-sunrise .rcp-datepicker-wrap button.ui-datepicker-close:active{background:#c36922;border-color:#ad5d1e;box-shadow:inset 0 2px 0 #ad5d1e}.admin-color-light .rcp-datepicker-wrap .ui-timepicker-div .ui-slider-handle{background:#e5e5e5}.admin-color-light .rcp-datepicker-wrap .ui-timepicker-div .ui-state-hover{background:#e5e5e5}.admin-color-light .rcp-datepicker-wrap button.ui-datepicker-close{background:#04a4cc;border-color:#037c9a #036881 #036881;color:#fff;box-shadow:0 1px 0 #036881;text-shadow:0 -1px 1px #036881,1px 0 1px #036881,0 1px 1px #036881,-1px 0 1px #036881}.admin-color-light .rcp-datepicker-wrap button.ui-datepicker-close:focus,.admin-color-light .rcp-datepicker-wrap button.ui-datepicker-close:hover{background:#04b0db;border-color:#036881;color:#fff;box-shadow:0 1px 0 #036881}.admin-color-light .rcp-datepicker-wrap button.ui-datepicker-close:focus{box-shadow:inset 0 1px 0 #037c9a,0 0 2px 1px #33b3db}.admin-color-light .rcp-datepicker-wrap button.ui-datepicker-close:active{background:#037c9a;border-color:#036881;box-shadow:inset 0 2px 0 #036881}.admin-color-bbp-evergreen .rcp-datepicker-wrap .ui-timepicker-div .ui-slider-handle{background:#56b274}.admin-color-bbp-evergreen .rcp-datepicker-wrap .ui-timepicker-div .ui-state-hover{background:#446950;color:#fff}.admin-color-bbp-mint .rcp-datepicker-wrap .ui-timepicker-div .ui-slider-handle{background:#4ca26a}.admin-color-bbp-mint .rcp-datepicker-wrap .ui-timepicker-div .ui-state-hover{background:#5fb37c;color:#fff}.admin-color-bbp-mint .rcp-datepicker-wrap button.ui-datepicker-close{background:#4f6d59;border-color:#3a4f41;color:#fff;-webkit-box-shadow:inset 0 1px 0 #71977e,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #71977e,0 1px 0 rgba(0,0,0,.15)}.admin-color-bbp-mint .rcp-datepicker-wrap button.ui-datepicker-close:focus,.admin-color-bbp-mint .rcp-datepicker-wrap button.ui-datepicker-close:hover{background:#3e5546;border-color:#2f4035;color:#fff;-webkit-box-shadow:inset 0 1px 0 #658a71,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #658a71,0 1px 0 rgba(0,0,0,.15)}.admin-color-bbp-mint .rcp-datepicker-wrap button.ui-datepicker-close:active{background:#3e5546;border-color:#2f4035;color:#fff;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5)}.rcp-datepicker-wrap .ui-timepicker-div .ui-widget-header{margin-bottom:8px}.rcp-datepicker-wrap .ui-timepicker-div dl{text-align:left}.rcp-datepicker-wrap .ui-timepicker-div dl dt{float:left;clear:left;padding:0 0 0 5px}.rcp-datepicker-wrap .ui-timepicker-div dl dd{margin:0 10px 10px 40%}.rcp-datepicker-wrap .ui-timepicker-div td{font-size:90%}.rcp-datepicker-wrap .ui-tpicker-grid-label{background:0 0;border:none;margin:0;padding:0}.rcp-datepicker-wrap .ui-timepicker-div .ui_tpicker_unit_hide{display:none}.rcp-datepicker-wrap .ui-timepicker-div .ui_tpicker_time .ui_tpicker_time_input{background:#f4f4f4;color:inherit;border:none;outline:0;width:95%}.rcp-datepicker-wrap .ui-timepicker-div .ui_tpicker_time .ui_tpicker_time_input:focus{border-bottom-color:#aaa}.rcp-datepicker-wrap .ui-timepicker-rtl{direction:rtl}.rcp-datepicker-wrap .ui-timepicker-rtl dl{text-align:right;padding:0 5px 0 0}.rcp-datepicker-wrap .ui-timepicker-rtl dl dt{float:right;clear:right}.rcp-datepicker-wrap .ui-timepicker-rtl dl dd{margin:0 40% 10px 10px}.rcp-datepicker-wrap .ui-timepicker-div.ui-timepicker-oneLine{padding-right:2px}.rcp-datepicker-wrap .ui-timepicker-div.ui-timepicker-oneLine .ui_tpicker_time,.rcp-datepicker-wrap .ui-timepicker-div.ui-timepicker-oneLine dt{display:none}.rcp-datepicker-wrap .ui-timepicker-div.ui-timepicker-oneLine .ui_tpicker_time_label{display:block;padding-top:2px}.rcp-datepicker-wrap .ui-timepicker-div.ui-timepicker-oneLine dl{text-align:right}.rcp-datepicker-wrap .ui-timepicker-div.ui-timepicker-oneLine dl dd,.rcp-datepicker-wrap .ui-timepicker-div.ui-timepicker-oneLine dl dd>div{display:inline-block;margin:0}.rcp-datepicker-wrap .ui-timepicker-div.ui-timepicker-oneLine dl dd.ui_tpicker_minute:before,.rcp-datepicker-wrap .ui-timepicker-div.ui-timepicker-oneLine dl dd.ui_tpicker_second:before{content:':';display:inline-block}.rcp-datepicker-wrap .ui-timepicker-div.ui-timepicker-oneLine dl dd.ui_tpicker_microsec:before,.rcp-datepicker-wrap .ui-timepicker-div.ui-timepicker-oneLine dl dd.ui_tpicker_millisec:before{content:'.';display:inline-block}.rcp-datepicker-wrap .ui-timepicker-div.ui-timepicker-oneLine .ui_tpicker_unit_hide,.rcp-datepicker-wrap .ui-timepicker-div.ui-timepicker-oneLine .ui_tpicker_unit_hide:before{display:none}.rcp-datepicker-wrap .ui-timepicker-div .ui-widget-content{background:#f4f4f4}.rcp-datepicker-wrap .ui-timepicker-div .ui-slider-handle{cursor:default;width:1.2em;height:1.2em;position:absolute;z-index:2}.rcp-datepicker-wrap .ui-datepicker-buttonpane{background:#f4f4f4;clear:both;overflow:hidden;padding:.4em}.rcp-datepicker-wrap .ui-datepicker-buttonpane button{background:#f7f7f7;border:1px solid #ccc;border-radius:3px;box-shadow:0 1px 0 #ccc;box-sizing:border-box;color:#555;cursor:pointer;display:inline-block;float:right;font-size:13px;height:28px;line-height:26px;margin:0;padding:0 10px 1px;vertical-align:top}.rcp-datepicker-wrap .ui-datepicker-buttonpane button:hover{background:#fafafa;border-color:#999;color:#23282d}.rcp-datepicker-wrap .ui-datepicker-buttonpane .ui-datepicker-current{float:left}.rcp-datepicker-wrap .ui-slider{position:relative;text-align:left}.rcp-datepicker-wrap .ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default}.rcp-datepicker-wrap .ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.rcp-datepicker-wrap .ui-slider-horizontal{height:.8em}.rcp-datepicker-wrap .ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em}.rcp-datepicker-wrap .ui-slider-horizontal .ui-slider-range{top:0;height:100%}.rcp-datepicker-wrap .ui-slider-horizontal .ui-slider-range-min{left:0}.rcp-datepicker-wrap .ui-slider-horizontal .ui-slider-range-max{right:0}.rcp-datepicker-wrap .ui-slider-vertical{width:.8em;height:100px}.rcp-datepicker-wrap .ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.rcp-datepicker-wrap .ui-slider-vertical .ui-slider-range{left:0;width:100%}.rcp-datepicker-wrap .ui-slider-vertical .ui-slider-range-min{bottom:0}.rcp-datepicker-wrap .ui-slider-vertical .ui-slider-range-max{top:0}.rcp-settings-gateway-stripe-key-row{display:none}.rcp-stripe-connect{display:inline-block;margin-bottom:1px;background-image:-webkit-linear-gradient(#28a0e5,#015e94);background-image:-moz-linear-gradient(#28a0e5,#015e94);background-image:-ms-linear-gradient(#28a0e5,#015e94);background-image:linear-gradient(#28a0e5,#015e94);-webkit-font-smoothing:antialiased;border:0;padding:1px;height:30px;text-decoration:none;-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px;-moz-box-shadow:0 1px 0 rgba(0,0,0,.2);-webkit-box-shadow:0 1px 0 rgba(0,0,0,.2);box-shadow:0 1px 0 rgba(0,0,0,.2);cursor:pointer;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.rcp-stripe-connect span{display:block;position:relative;padding:0 12px 0 44px;height:30px;background:#1275ff;background-image:-webkit-linear-gradient(#7dc5ee,#008cdd 85%,#30a2e4);background-image:-moz-linear-gradient(#7dc5ee,#008cdd 85%,#30a2e4);background-image:-ms-linear-gradient(#7dc5ee,#008cdd 85%,#30a2e4);background-image:linear-gradient(#7dc5ee,#008cdd 85%,#30a2e4);font-size:14px;line-height:30px;color:#fff;font-weight:700;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;text-shadow:0 -1px 0 rgba(0,0,0,.2);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.25);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.25);box-shadow:inset 0 1px 0 rgba(255,255,255,.25);-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.rcp-stripe-connect span:before{content:'';display:block;position:absolute;left:11px;top:50%;width:23px;height:24px;margin-top:-12px;background-repeat:no-repeat;background-size:23px 24px}.rcp-stripe-connect:active{background:#005d93}.rcp-stripe-connect:active span{color:#eee;background:#008cdd;background-image:-webkit-linear-gradient(#008cdd,#008cdd 85%,#239adf);background-image:-moz-linear-gradient(#008cdd,#008cdd 85%,#239adf);background-image:-ms-linear-gradient(#008cdd,#008cdd 85%,#239adf);background-image:linear-gradient(#008cdd,#008cdd 85%,#239adf);-moz-box-shadow:inset 0 1px 0 rgba(0,0,0,.1);-webkit-box-shadow:inset 0 1px 0 rgba(0,0,0,.1);box-shadow:inset 0 1px 0 rgba(0,0,0,.1)}.rcp-stripe-connect span:before,.rcp-stripe-connect.blue span:before{background-image:url(data:image/png;base64,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)}#rcp_stripe_marketing_container_inner_container{background:#fff url(../images/stripe_setup_background.svg) no-repeat;border-radius:4px;font-weight:700!important;display:grid;grid-template-columns:2fr .45fr;max-width:810px}.rcp_stripe_help_box_inner_container{background:#fff;border-radius:4px;font-weight:700!important;display:grid;grid-template-columns:2fr .45fr;max-width:810px}.rcp_stripe_help_box_inner_container #stripe_mailing_list{width:40%;padding:.3em .8em}.rcp_stripe_help_box_inner_container span{font-weight:400}.rcp_stripe_help_box_inner_container .rcp_stripe_help_box_content{padding:20px}.rcp_stripe_help_box_inner_container .rcp_stripe_help_box_content p{color:#76878d;font-weight:400;font-size:14px;line-height:19px}.rcp_stripe_help_box_inner_container .rcp_stripe_help_box_content button{display:block;margin:.5em 0;background:#af86c7 0 0 no-repeat padding-box;border-radius:8px;text-align:center;font-weight:400;font-size:1.1rem;line-height:19px;letter-spacing:0;color:#fff;padding:10px 16px;white-space:nowrap;text-decoration:none;border:none}.rcp_stripe_help_box_inner_container .rcp_stripe_help_box_content button:hover{background:#9762b6 0 0 no-repeat padding-box;cursor:pointer}.rcp_stripe_help_box_inner_container .rcp_stripe_help_box_content input{display:block;margin:.5em 0}.rcp_stripe_help_box_inner_container .rcp_stripe_help_box_content .stripe_submit_container{display:grid;grid-template-columns:1fr 1.5fr 1fr;column-gap:1em;align-items:center}#rc_accept_privacy_policy{display:inline-block}.rcp_stripe_help_box_inner_container .rcp_stripe_help_box_content .small a{color:#0083e3;font-weight:400;text-decoration:none}.rcp_stripe_help_box_inner_container .rcp_stripe_help_box_button{background:#646fde;min-height:100%;text-align:center;color:#fff}.rcp_stripe_help_box_inner_container .rcp_stripe_help_box_button .need_help{padding-top:46%}.rcp_stripe_help_box_inner_container .rcp_stripe_help_box_button a{color:#fff}.rcp_stripe_help_box a{color:#646fde}@media only screen and (-webkit-min-device-pixel-ratio:1.5),only screen and (min--moz-device-pixel-ratio:1.5),only screen and (min-device-pixel-ratio:1.5){.rcp-stripe-connect span:before,.rcp-stripe-connect.blue span:before{background-image:url(data:image/png;base64,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)}}.rcp-batch-processing-job-table{margin-bottom:2em}.rcp-batch-processing-job-table th{font-size:inherit;font-weight:700}.rcp-batch-processing-job-progress-bar{border:1px solid #0085ba;border-color:#0073aa #006799 #006799;border-radius:3px;display:inline-block;height:20px;width:300px;max-width:100%}.rcp-batch-processing-job-progress-bar span{background:#0085ba;box-shadow:inset 0 -1px 0 #006799;display:inline-block;height:100%}.admin-color-light .rcp-batch-processing-job-progress-bar{border-color:#037c9a #036881 #036881}.admin-color-light .rcp-batch-processing-job-progress-bar span{background:#04b0db;box-shadow:inset 0 -1px 0 #036881}.admin-color-blue .rcp-batch-processing-job-progress-bar{border-color:#d39323 #bd831f #bd831f}.admin-color-blue .rcp-batch-processing-job-progress-bar span{background:#e1a948;box-shadow:inset 0 -1px 0 #bd831f}.admin-color-coffee .rcp-batch-processing-job-progress-bar{border-color:#b78b66 #ae7d55 #ae7d55}.admin-color-coffee .rcp-batch-processing-job-progress-bar span{background:#c7a589;box-shadow:inset 0 -1px 0 #ae7d55}.admin-color-ectoplasm .rcp-batch-processing-job-progress-bar{border-color:#829237 #727f30 #727f30}.admin-color-ectoplasm .rcp-batch-processing-job-progress-bar span{background:#a3b745;box-shadow:inset 0 -1px 0 #727f30}.admin-color-midnight .rcp-batch-processing-job-progress-bar{border-color:#d02c21 #ba281e #ba281e}.admin-color-midnight .rcp-batch-processing-job-progress-bar span{background:#e14d43;box-shadow:inset 0 -1px 0 #ba281e}.admin-color-ocean .rcp-batch-processing-job-progress-bar{border-color:#80a583 #719a74 #719a74}.admin-color-ocean .rcp-batch-processing-job-progress-bar span{background:#9ebaa0;box-shadow:inset 0 -1px 0 #719a74}.admin-color-sunrise .rcp-batch-processing-job-progress-bar{border-color:#c36922 #ad5d1e #ad5d1e}.admin-color-sunrise .rcp-batch-processing-job-progress-bar span{background:#dd823b;box-shadow:inset 0 -1px 0 #ad5d1e}.rcp-batch-processing-job-table .spinner,.rcp-import-form .spinner{float:none}.rcp-batch-processing-message{display:none}.rcp-import-form tfoot td{padding-left:0}.rcp__notification--inline{background-color:#eeb9b9;width:700px;padding:10px;border-radius:5px}.restrict-content-addons-top-container{display:grid;grid-template-columns:5fr 1fr;grid-template-rows:1fr;padding:20px 20px 20px 0;gap:10px}@media screen and (max-width:768px){.restrict-content-addons-top-container{display:block!important}}.hide-grid{display:flex!important}.addons-flex-container{display:flex;gap:20px;flex-wrap:wrap;margin-top:25px;justify-content:center}.addon-card{box-shadow:0 0 4px #00000036;border-radius:10px;width:23%;min-width:260px;font-size:1rem}@media screen and (max-width:976px){.addon-card{width:90%}}.addon-card-header img{width:100%;border-top-right-radius:10px;border-top-left-radius:10px}.addon-card-body{padding:20px;display:flex;flex-direction:column;min-height:225px}.addon-card-title{font-size:1.3em;line-height:1.5em}.addon-card-text{font-size:1em}.addon-card-cta{text-decoration:none;font-weight:700;margin-top:auto}.addons-cta a{text-decoration:none}.addons-cta{margin-top:75px;text-align:center;font-size:1.5rem;font-weight:700}img.restrict-content-logo{margin:20px 0;max-height:50px}.rcp-why-go-pro-wrap .rcp-go-pro-color-container{background:#222 0 0 no-repeat padding-box;border-radius:34px;padding:1rem}.rcp-why-go-pro-wrap .rcp-go-pro-color-container .rcp-why-go-pro-inner-wrapper{background:transparent radial-gradient(closest-side at 50% 50%,#6ea5e5 0,#222 67%,#222 100%) 0 0 no-repeat padding-box;border-radius:34px}.rcp-why-go-pro-wrap .rcp-go-pro-color-container .rcp-why-go-pro-inner-wrapper .rcp-top-header{display:flex;align-items:center;flex-direction:row;flex-wrap:nowrap;align-content:stretch;justify-content:center}.rcp-why-go-pro-wrap .rcp-go-pro-color-container .rcp-why-go-pro-inner-wrapper .rcp-top-header img{margin-left:40px}.rcp-why-go-pro-wrap .rcp-go-pro-color-container .rcp-why-go-pro-inner-wrapper .rcp-top-header h1{font-weight:700;font-size:42px;line-height:63px;color:#fff}.rcp-why-go-pro-wrap .rcp-go-pro-color-container .rcp-why-go-pro-inner-wrapper a{text-decoration:none}.rcp-why-go-pro-wrap .rcp-go-pro-color-container .rcp-why-go-pro-inner-wrapper h2{text-align:center;font-weight:400;font-size:18px;line-height:27px;color:#fff;margin-bottom:60px}.rcp-why-go-pro-wrap .rcp-go-pro-color-container .rcp-why-go-pro-inner-wrapper .rcp-pro-features-container{display:grid;grid-template-columns:repeat(auto-fill,minmax(311px,1fr))}.rcp-why-go-pro-wrap .rcp-go-pro-color-container .rcp-why-go-pro-inner-wrapper .rcp-pro-features-container .feature{display:grid;grid-template-columns:auto auto;grid-template-rows:140px;gap:10px 10px}.rcp-why-go-pro-wrap .rcp-go-pro-color-container .rcp-why-go-pro-inner-wrapper .rcp-pro-features-container .feature img{background:#cfe0f4 0 0 no-repeat padding-box;border:1px solid #cfe0f4;border-radius:7px;width:42px;height:42px;padding:10px}.rcp-why-go-pro-wrap .rcp-go-pro-color-container .rcp-why-go-pro-inner-wrapper .rcp-pro-features-container .feature h3{font-weight:400;font-size:18px;color:#fff;margin:0}.rcp-why-go-pro-wrap .rcp-go-pro-color-container .rcp-why-go-pro-inner-wrapper .rcp-pro-features-container .feature p{text-align:left;font-weight:600;font-size:14px;line-height:19px;color:#fff;margin:5px 20px 10px 0}.rcp-why-go-pro-wrap .rcp-go-pro-color-container .rcp-why-go-pro-inner-wrapper .rcp-why-go-pro-buttons-container{text-align:center}.rcp-why-go-pro-wrap .rcp-go-pro-color-container .rcp-why-go-pro-inner-wrapper .rcp-why-go-pro-buttons-container .try-before-you-buy{border:4px solid #640af8;border-radius:7px;text-align:center;font-weight:800;font-size:18px;line-height:27px;color:#fff;text-transform:capitalize;background-color:transparent;display:block;padding:1rem 0}.rcp-why-go-pro-wrap .rcp-go-pro-color-container .rcp-why-go-pro-inner-wrapper .rcp-why-go-pro-buttons-container .try-before-you-buy:hover{cursor:pointer;text-decoration:none;color:#fff;background:#a569bc;border:4px solid #a569bc}.rcp-why-go-pro-wrap .rcp-go-pro-color-container .rcp-why-go-pro-inner-wrapper .rcp-why-go-pro-buttons-container .rcp-unlock-pro-features-add-ons{background:transparent linear-gradient(94deg,#640af8 0,#743195 100%) 0 0 no-repeat padding-box;border-radius:7px;text-align:center;font-weight:800;font-size:18px;line-height:27px;color:#fff;text-transform:capitalize;border:none;margin-top:10px;display:block;padding:1rem 0}.rcp-why-go-pro-wrap .rcp-go-pro-color-container .rcp-why-go-pro-inner-wrapper .rcp-why-go-pro-buttons-container .rcp-unlock-pro-features-add-ons:hover{cursor:pointer;text-decoration:none;color:#fff;background:#a569bc}@media all and (max-width:782px){.rcp-why-go-pro-wrap .rcp-go-pro-color-container .rcp-why-go-pro-inner-wrapper .rcp-top-header{flex-direction:column-reverse}.rcp-why-go-pro-wrap .rcp-go-pro-color-container .rcp-why-go-pro-inner-wrapper .rcp-top-header img{margin-left:0}}@media all and (min-width:1080px){.rcp-why-go-pro-wrap .rcp-go-pro-color-container .rcp-why-go-pro-inner-wrapper .rcp-why-go-pro-buttons-container .rcp-why-go-pro-buttons-container{margin:0 auto;display:flex}.rcp-why-go-pro-wrap .rcp-go-pro-color-container .rcp-why-go-pro-inner-wrapper .rcp-why-go-pro-buttons-container .try-before-you-buy{width:45%;display:inline-block;padding:.8rem;height:auto}.rcp-why-go-pro-wrap .rcp-go-pro-color-container .rcp-why-go-pro-inner-wrapper .rcp-why-go-pro-buttons-container .rcp-unlock-pro-features-add-ons{width:45%;display:inline-block;margin-top:0;margin-left:10px;padding:1rem;height:auto}}@media all and (min-width:1440px){.rcp-why-go-pro-wrap .rcp-go-pro-color-container{padding:4rem;max-width:83%}.rcp-pro-banner{grid-template-columns:repeat(auto-fill,minmax(350px,1fr))!important}}@media all and (min-width:1700px){.rcp-why-go-pro-wrap .rcp-go-pro-color-container{padding:4rem;max-width:71%}}@media all and (min-width:1920px){.rcp-why-go-pro-wrap .rcp-go-pro-color-container{max-width:1200px;margin:0 auto}}.rcp-pro-banner{background:#222;border-radius:7px;display:grid;grid-template-rows:auto;gap:20px 20px;max-width:1368px}.rcp-pro-banner .b{fill:#fff}.rcp-pro-banner .a{fill:#fff}.rcp-pro-banner .rcp-pro-logo{text-align:center;margin-top:10px;width:95%;overflow:auto;margin:0 auto;padding:10px 0 0 0}.rcp-pro-banner .rcp-pro-logo img{width:100%}.rcp-pro-banner .rcp-unlock-text{width:90%;margin:0 auto}.rcp-pro-banner .rcp-unlock-text h2{font-weight:400;font-size:18px;line-height:27px;color:#fff;text-align:center}.rcp-pro-banner .rcp-pro-button{width:90%;margin:0 auto;padding:0 0 10px 0}.rcp-pro-banner .rcp-pro-button a{background:transparent linear-gradient(94deg,#640af8 0,#743195 100%) 0 0 no-repeat padding-box;border-radius:7px;text-align:center;font-weight:800;font-size:18px;line-height:27px;color:#fff;text-transform:capitalize;border:none;margin-top:10px;display:block;padding:1rem 0;text-decoration:none}.rcp-pro-banner .rcp-pro-button a:hover{cursor:pointer;text-decoration:none;color:#fff;background:#a569bc;border:1px solid #a569bc}@media all and (min-width:1200px){.rcp-pro-banner{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));margin:0 auto;background:transparent linear-gradient(95deg,#222 0,#cfe0f4 100%) 0 0 no-repeat padding-box}.rcp-pro-banner .rcp-pro-logo{width:auto}.rcp-pro-banner .rcp-unlock-text{width:auto}.rcp-pro-banner .rcp-pro-button{width:100%;padding:0}.rcp-pro-banner .rcp-pro-button a{margin:15px}}.restrict-content-welcome-header{background:#fff 0 0 no-repeat padding-box;border:1px solid #d4d5d8}.restrict-content-welcome-header .restrict-content-logo{margin-left:20px;max-height:50px}.restrict-content-welcome-top-container{display:grid;grid-template-columns:5fr 1fr;grid-template-rows:1fr;max-width:1200px;margin:0 auto}.restrict-content-welcome-left-container{padding:30px 40px 40px 40px;max-width:1062px;border-right:1px solid #d4d5d8}.restrict-content-welcome-right-container{padding:50px 0 50px 10px}.restrict-content-welcome-right-container .restrict-content-welcome-advertisement{background:#fff;border-radius:4px}.restrict-content-welcome-right-container .restrict-content-welcome-advertisement .restrict-content-welcome-try-for-free{background:#222 0 0 no-repeat padding-box;text-transform:capitalize;color:#fff}.restrict-content-welcome-right-container .restrict-content-welcome-advertisement .restrict-content-welcome-try-for-free p{text-align:center;font-weight:700;font-size:1rem;line-height:21px;letter-spacing:0;padding:7px;margin:0}.restrict-content-welcome-right-container .restrict-content-welcome-advertisement .restrict-content-welcome-advertisement-content{padding:10px 9px 15px 9px}.restrict-content-welcome-right-container .restrict-content-welcome-advertisement .restrict-content-welcome-advertisement-content p{margin:0;text-align:center;font-weight:400;font-size:.7rem;line-height:14px;letter-spacing:0;color:#71747d}.restrict-content-welcome-advertisement .logo{text-align:center}.restrict-content-welcome-advertisement-logo{margin:13px;width:80%}.restrict-content-welcome-right-container .restrict-content-welcome-advertisement .restrict-content-welcome-advertisement-content .rcp-highlight{color:#222;text-transform:uppercase;font-weight:600;margin:10px 0}.restrict-content-inner-container{background:#fff 0 0 no-repeat padding-box;border-radius:4px;overflow:auto}.restrict-content-inner-container .restrict-content-welcome-body-container{display:grid;grid-template-columns:1fr .2fr;border-bottom:1px solid #d4d5d8;align-content:center;justify-content:center;align-items:center}.restrict-content-container-section{padding:30px}.restrict-content-container-section .restrict-content-resource-container{margin-bottom:30px}.restrict-content-try-free-submit{background:#640af8 0 0 no-repeat padding-box;border-radius:0 4px 4px 0;text-align:center;font-weight:700;font-size:1.1rem;line-height:19px;letter-spacing:0;color:#fff;padding:10px 20px;margin-left:-5px;text-decoration:none;display:inline-block;height:22px}.restrict-content-how-to-body ul{list-style:disc outside;padding-left:20px}.restrict-content-how-to-body li{font-weight:400;font-size:1rem;line-height:19px;padding-bottom:15px}.restrict-content-container-section h2{font-weight:800;font-size:1.1rem;line-height:22px;color:#0a1a23;letter-spacing:0}.restrict-content-container-section h3{font-weight:700;font-size:1rem;line-height:19px;letter-spacing:0;color:#222}.restrict-content-container-section p{color:#71747d;font-weight:400;font-size:1rem;line-height:19px}.restrict-content-container-section .restrict-content-example-text{font:normal normal normal 14px/19px Monaco;letter-spacing:0;color:#71747d}.restrict-content-welcome-user{text-transform:capitalize}.restrict-content-welcome-right-container .restrict-content-welcome-advertisement .restrict-content-welcome-advertisement-form{text-align:center}.restrict-content-welcome-right-container .restrict-content-welcome-advertisement .restrict-content-welcome-button{background:#640af8 0 0 no-repeat padding-box;border-radius:4px;text-align:center;font-weight:700;font-size:1.1rem;line-height:19px;letter-spacing:0;color:#fff;padding:10px 25px;overflow:hidden;white-space:nowrap;display:inline-block;margin:10px 15px;text-decoration:none;border:none}.restrict-content-welcome-right-container .restrict-content-welcome-advertisement .restrict-content-welcome-button:hover{cursor:pointer}.restrict-content-welcome-top-container .restrict-content-welcome-left-container .restrict-content-inner-container .restrict-content-section-link{text-decoration:none}.restrict-content-welcome-top-container .restrict-content-welcome-left-container .restrict-content-inner-container .restrict-content-help-section{margin:34px 30px 20px 30px;border:1px solid #d4d5d8;border-radius:4px;display:grid;grid-template-columns:.5fr 2fr .5fr;grid-template-rows:1fr;grid-template-areas:". . .";justify-items:center;align-items:center}.restrict-content-welcome-top-container .restrict-content-welcome-left-container .restrict-content-inner-container .restrict-content-help-section:hover{cursor:pointer}.restrict-content-welcome-top-container .restrict-content-welcome-left-container .restrict-content-inner-container .restrict-content-help-section:hover .restrict-content-help-section-icon{background-color:#640af8}.restrict-content-welcome-top-container .restrict-content-welcome-left-container .restrict-content-inner-container .restrict-content-help-section:hover .restrict-content-help-section-arrow{display:block!important}.restrict-content-help-section .restrict-content-help-section-icon{width:29px;height:29px;border:1px solid #640af8;border-radius:7px;padding:12px}.restrict-content-help-section #restrict-content-help-center{background:url(../images/help-purple.svg) no-repeat scroll right center;width:30px;height:30px}.restrict-content-welcome-top-container .restrict-content-welcome-left-container .restrict-content-inner-container .restrict-content-help-section:hover #restrict-content-help-center{background:url(../images/help-white.svg) no-repeat scroll right center #640af8;width:30px;height:30px}.restrict-content-help-section #restrict-content-trouble-shooting{background:url(../images/bug-purple.svg) no-repeat scroll right center;width:30px;height:30px}.restrict-content-welcome-top-container .restrict-content-welcome-left-container .restrict-content-inner-container .restrict-content-help-section:hover #restrict-content-trouble-shooting{background:url(../images/bug-white.svg) no-repeat scroll right center #640af8;width:30px;height:30px}.restrict-content-help-section #restrict-content-support-forum{background:url(../images/support-purple.svg) no-repeat scroll right center;width:30px;height:30px}.restrict-content-welcome-top-container .restrict-content-welcome-left-container .restrict-content-inner-container .restrict-content-help-section:hover #restrict-content-support-forum{background:url(../images/support-white.svg) no-repeat scroll right center #640af8;width:30px;height:30px}.restrict-content-help-section .restrict-content-help-section-arrow{width:15px;height:15px}.restrict-content-help-section h3{font-weight:700;font-size:1.1rem;line-height:22px;letter-spacing:0;color:#0a1a23;text-transform:uppercase}.restrict-content-help-section p{font-weight:400;font-size:1rem;line-height:19px;letter-spacing:0;color:#71747d}.restrict-content-help-section:hover{box-shadow:0 3px 6px #22222240;border:1px solid #640af8!important}.restrict-content-premium-support{border-top:1px solid #d4d5d8;padding:10px 30px;margin:40px 0;display:grid;grid-template-columns:5fr 1fr;grid-template-rows:1fr}.restrict-content-premium-support h3{font-weight:700;font-size:1.1rem;line-height:22px;letter-spacing:0;color:#0a1a23;text-transform:capitalize}.restrict-content-premium-support p{font-weight:400;font-size:1rem;line-height:19px;letter-spacing:0;color:#71747d}.restrict-content-premium-support-logo{width:100px;height:auto;margin-top:10px;padding:10px}.restrict-content-unlock-premium-features{background:#222 0 0 no-repeat padding-box;border-radius:4px;padding:10px 10px;margin-top:20px}.restrict-content-unlock-premium-features h3{text-align:center;font-weight:700;font-size:1rem;line-height:21px;letter-spacing:0;color:#fff}.restrict-content-unlock-premium-features p{text-align:center;font-weight:400;font-size:.7rem;line-height:14px;letter-spacing:0;color:#fff}.restrict-content-unlock-premium-features h4{font-weight:700;font-size:1.7rem;line-height:33px;letter-spacing:0;color:#cfe0f4}.restrict-content-unlock-premium-features .go-pro-now{display:flex;justify-content:center;text-align:center;font-weight:700;font-size:1rem;line-height:19px;letter-spacing:0;color:#fff;background:#640af8 0 0 no-repeat padding-box;border-radius:4px;padding:10px 40px;text-decoration:none}.restrict-content-unlock-premium-features .whats-included{text-align:left;text-decoration:underline;font-weight:400;font-size:.7rem;line-height:14px;letter-spacing:0;color:#fff;margin-top:30px}.restrict-content-unlock-premium-features .whats-included a{color:#fff;text-align:center;width:100%;display:block}.restrict-content-unlock-premium-features .tabs .tablist{display:grid;grid-template-columns:1fr 1fr 1fr;grid-template-rows:1fr;align-items:center;border-bottom:1px solid #dcebf3}.restrict-content-unlock-premium-features .tabs .tablist button{margin:0;padding:0 0 6px 0;font-weight:400;font-size:.7rem;line-height:14px;letter-spacing:0;color:#dcebf3;background:0 0;border:none}.restrict-content-unlock-premium-features .tabs .tablist button:hover{cursor:pointer;font-weight:700}.restrict-content-unlock-premium-features .tabs .tabpanel{margin-top:10px;margin-bottom:20px}.restrict-content-unlock-premium-features .tabs .tabpanel h4{text-align:center;margin:0}.restrict-content-unlock-premium-features .tabs .tabpanel p{text-align:center;margin:0}#restrict_content_legacy_switch{background-color:#28a745!important;border-color:#28a745!important}#restrict_content_legacy_switch:hover{background-color:#218838!important;border-color:#1e7e34!important}#restrict_content_legacy_switch.button-secondary.danger{color:#d63638;border:1px solid #d63638;border-color:#d63638!important;background-color:#f6f7f7!important}#restrict_content_legacy_switch.button-secondary.danger:hover{background-color:#d63638!important;color:#fff!important}@media all and (max-width:768px){.restrict-content-welcome-top-container{display:block}.restrict-content-welcome-left-container{padding:0}.restrict-content-welcome-right-container{display:block;padding:20px 0 10px 0}.restrict-content-unlock-premium-features{margin-top:20px}.restrict-content-welcome-top-container .restrict-content-welcome-left-container .restrict-content-inner-container .restrict-content-help-section{margin:10px;gap:0 10px}.restrict-content-help-section{margin:10px;padding:5px}.restrict-content-unlock-premium-features .go-pro-now{width:100%;display:block;padding:10px 0}.restrict-content-welcome-advertisement-logo{padding:10px;width:60%;margin:0 auto;display:block}.restrict-content-welcome-right-container .restrict-content-welcome-advertisement .restrict-content-welcome-button{width:80%}.restrict-content-welcome-advertisement-form input{width:90%}.restrict-content-inner-container .restrict-content-container-section{padding:10px}.restrict-content-try-free-submit{background:#640af8 0 0 no-repeat padding-box;border-radius:4px;width:100%;display:block;margin-top:10px;text-align:center;font-weight:700;font-size:1.1rem;line-height:19px;letter-spacing:0;color:#fff;padding:10px 0}}.stellarwp-telemetry-modal__inner{width:900px!important}.rcp-template-tag-warning-message:before{content:'*';color:red;font-weight:700;font-size:1.2em;margin-right:3px}.rcp-template-tag-warning:after{content:'*';color:red;font-weight:700;font-size:1.2em;margin-left:3px}
  • restrict-content/tags/4.0.3/core/includes/deactivation.php

    r3636889 r3680051  
    1919        wp_clear_scheduled_hook( 'rcp_expired_users_check' );
    2020        wp_clear_scheduled_hook( 'rcp_send_expiring_soon_notice' );
     21        wp_clear_scheduled_hook( 'rcp_stripe_cleanup_webhook_locks' );
    2122}
    2223register_deactivation_hook( RCP_PLUGIN_FILE, 'rcp_clear_cron_jobs' );
     24
  • restrict-content/tags/4.0.3/core/includes/gateways/class-rcp-payment-gateway-stripe.php

    r3636889 r3680051  
    10701070                                rcp_log( sprintf( 'Processing Stripe %s webhook.', $event->type ) );
    10711071
     1072                                // Set by the invoice branch below for a confirmed subscription renewal.
     1073                                $is_renewal_invoice = false;
     1074
    10721075                                // setup payment data
    10731076                                $payment_data = array(
    … …  
    10901093                                        if ( empty( $payment_event->invoice ) ) {
    10911094
    1092                                                 $payment_data['amount']         = $payment_event->amount / rcp_stripe_get_currency_multiplier();
     1095                                                $payment_data['amount']         = $payment_event->amount / rcp_stripe_get_currency_multiplier( rcp_stripe_object_get_currency( $payment_event ) );
    10931096                                                $payment_data['transaction_id'] = $payment_event->id;
    10941097
    … …  
    10961099                                        } else {
    10971100
    1098                                                 $payment_data['amount']         = $invoice->amount_due / rcp_stripe_get_currency_multiplier();
     1101                                                $payment_data['amount']         = $invoice->amount_due / rcp_stripe_get_currency_multiplier( rcp_stripe_object_get_currency( $invoice ) );
    10991102                                                $payment_data['transaction_id'] = $payment_event->id;
    11001103
    … …  
    11031106                                                }
    11041107                                        }
     1108                                } elseif ( 'invoice.payment_succeeded' === $event->type && ! empty( $invoice ) ) {
     1109                                        /*
     1110                                         * Successful recurring subscription payment.
     1111                                         *
     1112                                         * Stripe delivers both `charge.succeeded` and `invoice.payment_succeeded` for
     1113                                         * the same renewal and we handle both, so record the same charge ID the branch
     1114                                         * above records. Whichever event is processed second is then caught by the
     1115                                         * duplicate check below instead of renewing twice. `charge.refunded` also
     1116                                         * looks payments up by charge ID.
     1117                                         *
     1118                                         * Leaving the transaction ID empty makes this a no-op and falls through to the
     1119                                         * `rcp_stripe_{$event->type}` action, which is the pre-existing behaviour.
     1120                                         */
     1121                                        $invoice_id = rcp_stripe_object_get_id( $invoice, 'id' );
     1122
     1123                                        if ( ! rcp_stripe_invoice_is_renewal( $invoice ) ) {
     1124                                                rcp_log( sprintf( 'Stripe webhook: invoice %s is not a subscription renewal. Skipping.', $invoice_id ) );
     1125                                        } else {
     1126                                                $invoice_transaction_id = rcp_stripe_get_invoice_transaction_id( $invoice );
     1127
     1128                                                if ( empty( $invoice_transaction_id ) ) {
     1129                                                        // Any other ID would not match `charge.succeeded` and would duplicate.
     1130                                                        rcp_log( sprintf( 'Stripe webhook: could not resolve the charge for invoice %s. Deferring to charge.succeeded.', $invoice_id ), true );
     1131                                                } else {
     1132                                                        $is_renewal_invoice = true;
     1133
     1134                                                        // `amount_due`, matching the charge.succeeded branch above.
     1135                                                        $payment_data['amount']         = rcp_stripe_object_get_amount( $invoice, 'amount_due' ) / rcp_stripe_get_currency_multiplier( rcp_stripe_object_get_currency( $invoice ) );
     1136                                                        $payment_data['transaction_id'] = $invoice_transaction_id;
     1137                                                }
     1138                                        }
     1139                                }
     1140
     1141                                /*
     1142                                 * Take an exclusive lock on this transaction. Both webhooks for a renewal arrive
     1143                                 * at once and the block below makes an API call before inserting, so without this
     1144                                 * both requests can pass the duplicate check and renew twice.
     1145                                 */
     1146                                if ( ! empty( $payment_data['transaction_id'] ) ) {
     1147                                        $webhook_lock_key   = $payment_data['transaction_id'];
     1148                                        $webhook_lock_token = wp_generate_password( 20, false );
     1149
     1150                                        if ( ! rcp_stripe_acquire_webhook_lock( $webhook_lock_key, $webhook_lock_token ) ) {
     1151                                                /*
     1152                                                 * Answer 409, not 200. If the holder dies before inserting the payment, a
     1153                                                 * 200 tells Stripe the event was handled and the renewal is lost. A 409
     1154                                                 * has Stripe redeliver, and the duplicate check below catches it then.
     1155                                                 */
     1156                                                rcp_log( sprintf( 'Stripe webhook: transaction %s is already being processed.', $webhook_lock_key ), true );
     1157
     1158                                                wp_send_json_error(
     1159                                                        [
     1160                                                                // translators: %s The transaction id.
     1161                                                                'message' => sprintf( __( 'Transaction %s is already being processed.', 'rcp' ), esc_html( $webhook_lock_key ) ),
     1162                                                        ],
     1163                                                        409
     1164                                                );
     1165                                        }
     1166
     1167                                        // Every exit below goes through wp_send_json_*() -> wp_die(), so release on shutdown.
     1168                                        add_action(
     1169                                                'shutdown',
     1170                                                function () use ( $webhook_lock_key, $webhook_lock_token ) {
     1171                                                        rcp_stripe_release_webhook_lock( $webhook_lock_key, $webhook_lock_token );
     1172                                                }
     1173                                        );
    11051174                                }
    11061175
    … …  
    11541223                                        }
    11551224
    1156                                         $pending_payment_id = rcp_get_membership_meta( $this->membership->get_id(), 'pending_payment_id', true );
     1225                                        /*
     1226                                         * A confirmed renewal must never consume a pending payment. That meta is
     1227                                         * written at registration and can be left behind by an abandoned signup or
     1228                                         * level change, in which case completing it here would swallow the renewal:
     1229                                         * the payment row would be overwritten and renew() would never run, so the
     1230                                         * member stays charged but expires.
     1231                                         */
     1232                                        $pending_payment_id = $is_renewal_invoice ? '' : rcp_get_membership_meta( $this->membership->get_id(), 'pending_payment_id', true );
     1233
    11571234                                        if ( ! empty( $pending_payment_id ) ) {
    11581235
  • restrict-content/tags/4.0.3/core/includes/gateways/stripe/functions.php

    r3636889 r3680051  
    385385 * currencies should not be multiplied so use 1.
    386386 *
    387  * @param string $currency
     387 * @param string $currency Currency code. Defaults to the store currency.
    388388 *
    389389 * @since 2.5
    … …  
    391391 */
    392392function rcp_stripe_get_currency_multiplier( $currency = '' ) {
    393         $multiplier = ( rcp_is_zero_decimal_currency( $currency ) ) ? 1 : 100;
     393        if ( rcp_is_zero_decimal_currency( $currency ) ) {
     394                $multiplier = 1;
     395        } elseif ( rcp_stripe_is_three_decimal_currency( $currency ) ) {
     396                $multiplier = 1000;
     397        } else {
     398                $multiplier = 100;
     399        }
    394400
    395401        return apply_filters( 'rcp_stripe_get_currency_multiplier', $multiplier, $currency );
     402}
     403
     404/**
     405 * Determines if a currency is one Stripe bills in thousandths.
     406 *
     407 * Stripe sends and expects these amounts x1000 rather than x100. Without this they are
     408 * recorded ten times too large.
     409 *
     410 * @link https://docs.stripe.com/currencies#three-decimal
     411 *
     412 * @since 4.0.6
     413 *
     414 * @param string $currency Currency code. Defaults to the store currency.
     415 *
     416 * @return bool
     417 */
     418function rcp_stripe_is_three_decimal_currency( $currency = '' ) {
     419        $currency = $currency ? strtoupper( $currency ) : strtoupper( rcp_get_currency() );
     420
     421        $three_decimal_currencies = array(
     422                'BHD',
     423                'JOD',
     424                'KWD',
     425                'OMR',
     426                'TND',
     427        );
     428
     429        return apply_filters( 'rcp_stripe_is_three_decimal_currency', in_array( $currency, $three_decimal_currencies, true ), $currency );
    396430}
    397431
    … …  
    873907
    874908/**
     909 * Issue a payment nonce for the current user.
     910 *
     911 * Registration creates the account and logs the visitor in mid flow, so the nonce printed with
     912 * the page was minted for the logged out visitor and no longer verifies. Nonces cannot be
     913 * regenerated in the request that sets the auth cookie either, because the session token is not
     914 * readable until the browser sends it back.
     915 *
     916 * @since 4.0.6
     917 *
     918 * @return void
     919 */
     920function rcp_stripe_generate_payment_nonce() {
     921
     922        if ( ! is_user_logged_in() ) {
     923                wp_send_json_error( __( 'You must be logged in to perform this action.', 'rcp' ) );
     924        }
     925
     926        wp_send_json_success( wp_create_nonce( 'rcp_process_stripe_payment' ) );
     927}
     928
     929add_action( 'wp_ajax_rcp_stripe_generate_payment_nonce', 'rcp_stripe_generate_payment_nonce' );
     930
     931/**
    875932 * Create a setup intent while saving a new billing card.
    876933 *
    … …  
    12391296
    12401297add_action( 'rcp_membership_pre_cancel', 'rcp_stripe_cancel_subscriptions_after_deleting_level', 10, 2 );
     1298
     1299/**
     1300 * Normalize a Stripe ID that may be either a string or an expanded object.
     1301 *
     1302 * @since 4.0.6
     1303 *
     1304 * @param mixed $value String ID, expanded StripeObject, or null.
     1305 *
     1306 * @return string The ID, or an empty string.
     1307 */
     1308function rcp_stripe_normalize_id( $value ): string {
     1309        if ( is_string( $value ) ) {
     1310                return $value;
     1311        }
     1312
     1313        if ( is_object( $value ) && ! empty( $value->id ) && is_string( $value->id ) ) {
     1314                return $value->id;
     1315        }
     1316
     1317        return '';
     1318}
     1319
     1320/**
     1321 * Safely read a key from a Stripe object or array.
     1322 *
     1323 * Property syntax must be avoided for optional keys: \Stripe\StripeObject::__get() writes to
     1324 * the error log when the key is absent, which would mean a log line on every renewal.
     1325 *
     1326 * @since 4.0.6
     1327 *
     1328 * @param mixed  $source Stripe object, array, or anything else.
     1329 * @param string $key    Key to read.
     1330 *
     1331 * @return mixed The value, or null if it is absent or the source is not readable.
     1332 */
     1333function rcp_stripe_object_get( $source, string $key ) {
     1334        if ( is_array( $source ) ) {
     1335                return array_key_exists( $key, $source ) ? $source[ $key ] : null;
     1336        }
     1337
     1338        if ( $source instanceof \ArrayAccess ) {
     1339                return $source->offsetExists( $key ) ? $source->offsetGet( $key ) : null;
     1340        }
     1341
     1342        return null;
     1343}
     1344
     1345/**
     1346 * Read an ID held under a key on a Stripe object.
     1347 *
     1348 * @since 4.0.6
     1349 *
     1350 * @param mixed  $source Stripe object or array.
     1351 * @param string $key    Key holding a string ID or an expanded object.
     1352 *
     1353 * @return string
     1354 */
     1355function rcp_stripe_object_get_id( $source, string $key ): string {
     1356        return rcp_stripe_normalize_id( rcp_stripe_object_get( $source, $key ) );
     1357}
     1358
     1359/**
     1360 * Read a numeric amount held under a key on a Stripe object.
     1361 *
     1362 * @since 4.0.6
     1363 *
     1364 * @param mixed  $source Stripe object or array.
     1365 * @param string $key    Key holding an amount in the currency's smallest unit.
     1366 *
     1367 * @return float The amount, or 0 if absent or not numeric.
     1368 */
     1369function rcp_stripe_object_get_amount( $source, string $key ): float {
     1370        $value = rcp_stripe_object_get( $source, $key );
     1371
     1372        return is_numeric( $value ) ? (float) $value : 0.0;
     1373}
     1374
     1375/**
     1376 * Determine whether a paid invoice represents a recurring renewal.
     1377 *
     1378 * `subscription_create` must be excluded. RCP takes the initial payment with a standalone
     1379 * PaymentIntent and creates the subscription with a future billing anchor, so signup emits a
     1380 * separate invoice. Treating it as a renewal can complete a still-pending initial payment
     1381 * with an amount of 0. Where such an invoice carries a real charge, `charge.succeeded`
     1382 * already handles it.
     1383 *
     1384 * @since 4.0.6
     1385 *
     1386 * @param mixed $invoice Invoice object from the webhook.
     1387 *
     1388 * @return bool
     1389 */
     1390function rcp_stripe_invoice_is_renewal( $invoice ): bool {
     1391        $default = array(
     1392                'subscription_cycle', // A subscription advancing into a new period.
     1393                'subscription',       // Legacy value on older invoices.
     1394        );
     1395
     1396        /**
     1397         * Filters the invoice `billing_reason` values treated as recurring renewals.
     1398         *
     1399         * @since 4.0.6
     1400         *
     1401         * @param string[] $billing_reasons Allowed billing reasons.
     1402         * @param mixed    $invoice         The invoice being evaluated.
     1403         */
     1404        $allowed = apply_filters( 'rcp_stripe_invoice_renewal_billing_reasons', $default, $invoice );
     1405        $allowed = array_filter( (array) $allowed, 'is_string' );
     1406
     1407        if ( empty( $allowed ) ) {
     1408                $allowed = $default;
     1409        }
     1410
     1411        $billing_reason = rcp_stripe_object_get( $invoice, 'billing_reason' );
     1412
     1413        /*
     1414         * Stripe has set a billing reason on every invoice since 2018. If one is missing the
     1415         * rendering is unusual, so only treat it as a renewal when the invoice belongs to a
     1416         * subscription. Failing open here would let signup invoices renew memberships.
     1417         */
     1418        if ( ! is_string( $billing_reason ) || '' === $billing_reason ) {
     1419                return '' !== rcp_stripe_object_get_id( $invoice, 'subscription' );
     1420        }
     1421
     1422        return in_array( $billing_reason, $allowed, true );
     1423}
     1424
     1425/**
     1426 * Get the charge ID belonging to a PaymentIntent.
     1427 *
     1428 * Makes one API call and never throws. An empty return tells the caller to defer to the
     1429 * `charge.succeeded` webhook; letting the exception escape would return HTTP 500 to Stripe,
     1430 * which triggers retries and eventually disables the endpoint.
     1431 *
     1432 * @since 4.0.6
     1433 *
     1434 * @param string $payment_intent_id PaymentIntent ID.
     1435 *
     1436 * @return string Charge ID, or an empty string if it could not be resolved.
     1437 */
     1438function rcp_stripe_get_payment_intent_charge_id( string $payment_intent_id ): string {
     1439        if ( empty( $payment_intent_id ) ) {
     1440                return '';
     1441        }
     1442
     1443        /**
     1444         * Short circuits resolving a PaymentIntent's charge ID, skipping the API call.
     1445         *
     1446         * @since 4.0.6
     1447         *
     1448         * @param string|null $charge_id         Charge ID to return, or null to query the API.
     1449         * @param string      $payment_intent_id The PaymentIntent being resolved.
     1450         */
     1451        $pre = apply_filters( 'rcp_stripe_pre_get_payment_intent_charge_id', null, $payment_intent_id );
     1452
     1453        if ( null !== $pre ) {
     1454                return (string) $pre;
     1455        }
     1456
     1457        try {
     1458                $intent = \Stripe\PaymentIntent::retrieve( $payment_intent_id );
     1459        } catch ( Exception $e ) {
     1460                rcp_log( sprintf( 'Stripe Gateway: could not retrieve PaymentIntent %s. %s', $payment_intent_id, $e->getMessage() ), true );
     1461
     1462                return '';
     1463        }
     1464
     1465        return rcp_stripe_get_payment_intent_charge_id_from_object( $intent );
     1466}
     1467
     1468/**
     1469 * Extract the charge ID from a PaymentIntent object.
     1470 *
     1471 * The gateway pins Stripe API version 2020-08-27, which exposes an expanded `charges` list.
     1472 * `latest_charge` is read as well so this keeps working if the pinned version is raised to
     1473 * 2022-11-15 or later, where `charges` was removed.
     1474 *
     1475 * @since 4.0.6
     1476 *
     1477 * @param mixed $intent PaymentIntent object.
     1478 *
     1479 * @return string Charge ID, or an empty string.
     1480 */
     1481function rcp_stripe_get_payment_intent_charge_id_from_object( $intent ): string {
     1482        $charges = rcp_stripe_object_get( rcp_stripe_object_get( $intent, 'charges' ), 'data' );
     1483
     1484        if ( is_array( $charges ) && ! empty( $charges ) ) {
     1485                $charge_id = rcp_stripe_normalize_id( reset( $charges ) );
     1486
     1487                if ( '' !== $charge_id ) {
     1488                        return $charge_id;
     1489                }
     1490        }
     1491
     1492        return rcp_stripe_object_get_id( $intent, 'latest_charge' );
     1493}
     1494
     1495/**
     1496 * Determine the transaction ID to record for a paid invoice.
     1497 *
     1498 * Stripe delivers both `charge.succeeded` and `invoice.payment_succeeded` for a single
     1499 * renewal and RCP processes both. The only idempotency guard is
     1500 * RCP_Payments::payment_exists() on the transaction ID, so this must return the same value
     1501 * the `charge.succeeded` handler records, which is the charge ID. `charge.refunded` also
     1502 * looks payments up by charge ID.
     1503 *
     1504 * @since 4.0.6
     1505 *
     1506 * @param mixed $invoice Invoice object.
     1507 *
     1508 * @return string One of:
     1509 *                - The charge ID, whenever the invoice has an associated charge.
     1510 *                - The invoice ID, when Stripe recorded neither a charge nor a PaymentIntent.
     1511 *                  Nothing was charged, so no `charge.succeeded` will ever fire, and this is
     1512 *                  the only way a credit balance or zero amount renewal gets recorded.
     1513 *                - An empty string, when a payment exists but its charge could not be
     1514 *                  resolved. The caller must do nothing and let `charge.succeeded` handle the
     1515 *                  renewal rather than record an ID that will not match.
     1516 */
     1517function rcp_stripe_get_invoice_transaction_id( $invoice ): string {
     1518        $charge_id = rcp_stripe_object_get_id( $invoice, 'charge' );
     1519
     1520        if ( '' !== $charge_id ) {
     1521                return $charge_id;
     1522        }
     1523
     1524        $intent_id = rcp_stripe_object_get_id( $invoice, 'payment_intent' );
     1525
     1526        if ( '' !== $intent_id ) {
     1527                // A PaymentIntent exists, so a charge exists or is about to. Never guess an ID here.
     1528                return rcp_stripe_get_payment_intent_charge_id( $intent_id );
     1529        }
     1530
     1531        return rcp_stripe_object_get_id( $invoice, 'id' );
     1532}
     1533
     1534/**
     1535 * Build the option name used for a Stripe webhook processing lock.
     1536 *
     1537 * @since 4.0.6
     1538 *
     1539 * @param string $key Lock key, usually a transaction ID.
     1540 *
     1541 * @return string
     1542 */
     1543function rcp_stripe_get_webhook_lock_name( string $key ): string {
     1544        return 'rcp_stripe_webhook_lock_' . md5( $key );
     1545}
     1546
     1547/**
     1548 * Attempt to acquire an exclusive lock for processing a Stripe webhook.
     1549 *
     1550 * Both webhooks for a renewal arrive at once and the caller makes an API call before
     1551 * inserting the payment, so without this both requests can pass the duplicate check.
     1552 *
     1553 * Uses `INSERT IGNORE` against the options table, whose `option_name` column carries a UNIQUE
     1554 * key, so exactly one caller can win. Raw SQL keeps the options cache from masking the
     1555 * result. wp_cache_add() is not a substitute: it is only atomic with a persistent object
     1556 * cache and silently becomes a no-op without one.
     1557 *
     1558 * @since 4.0.6
     1559 *
     1560 * @param string $key     Lock key, usually a transaction ID.
     1561 * @param string $token   Caller token, written as the value so only the owner can release it.
     1562 * @param int    $timeout Seconds after which an existing lock is considered abandoned.
     1563 *
     1564 * @return bool True if the lock was acquired.
     1565 */
     1566function rcp_stripe_acquire_webhook_lock( string $key, string $token, int $timeout = 300 ): bool {
     1567        global $wpdb;
     1568
     1569        if ( '' === $key || '' === $token ) {
     1570                return false;
     1571        }
     1572
     1573        $lock_name = rcp_stripe_get_webhook_lock_name( $key );
     1574        $value     = time() . ':' . $token;
     1575
     1576        // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching
     1577        $wpdb->query(
     1578                $wpdb->prepare(
     1579                        "INSERT IGNORE INTO `$wpdb->options` ( `option_name`, `option_value`, `autoload` ) VALUES ( %s, %s, 'no' )",
     1580                        $lock_name,
     1581                        $value
     1582                )
     1583        );
     1584
     1585        $inserted = (int) $wpdb->rows_affected;
     1586
     1587        if ( 1 === $inserted ) {
     1588                return true;
     1589        }
     1590
     1591        // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching
     1592        $existing = $wpdb->get_var( $wpdb->prepare( "SELECT `option_value` FROM `$wpdb->options` WHERE `option_name` = %s LIMIT 1", $lock_name ) );
     1593
     1594        if ( null === $existing ) {
     1595                return false;
     1596        }
     1597
     1598        $started = (int) strtok( (string) $existing, ':' );
     1599
     1600        if ( ( $started + $timeout ) > time() ) {
     1601                return false;
     1602        }
     1603
     1604        /*
     1605         * The holder abandoned the lock. Take it over conditionally on the value just read, so
     1606         * that only one of several waiting callers succeeds.
     1607         */
     1608        // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching
     1609        $wpdb->query(
     1610                $wpdb->prepare(
     1611                        "UPDATE `$wpdb->options` SET `option_value` = %s WHERE `option_name` = %s AND `option_value` = %s",
     1612                        $value,
     1613                        $lock_name,
     1614                        $existing
     1615                )
     1616        );
     1617
     1618        $stolen = (int) $wpdb->rows_affected;
     1619
     1620        return 1 === $stolen;
     1621}
     1622
     1623/**
     1624 * Release a Stripe webhook processing lock.
     1625 *
     1626 * Scoped to the caller's token. A request that stalled past the timeout and had its lock
     1627 * taken over must not delete the new owner's row.
     1628 *
     1629 * @since 4.0.6
     1630 *
     1631 * @param string $key   Lock key, usually a transaction ID.
     1632 * @param string $token The token the lock was acquired with.
     1633 *
     1634 * @return void
     1635 */
     1636function rcp_stripe_release_webhook_lock( string $key, string $token ): void {
     1637        global $wpdb;
     1638
     1639        if ( '' === $key || '' === $token ) {
     1640                return;
     1641        }
     1642
     1643        // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching
     1644        $wpdb->query(
     1645                $wpdb->prepare(
     1646                        "DELETE FROM `$wpdb->options` WHERE `option_name` = %s AND `option_value` LIKE %s",
     1647                        rcp_stripe_get_webhook_lock_name( $key ),
     1648                        '%:' . $wpdb->esc_like( $token )
     1649                )
     1650        );
     1651}
     1652
     1653/**
     1654 * Delete Stripe webhook locks left behind by requests that never reached shutdown.
     1655 *
     1656 * A lock is released on `shutdown`, so one only survives when the process dies outright, for
     1657 * example on a fatal error or a hard timeout. Those rows are harmless because
     1658 * rcp_stripe_acquire_webhook_lock() takes over anything past its timeout, but nothing would
     1659 * ever remove them.
     1660 *
     1661 * @since 4.0.6
     1662 *
     1663 * @param int $max_age Seconds after which a lock is considered garbage.
     1664 *
     1665 * @return int Number of locks deleted.
     1666 */
     1667function rcp_stripe_cleanup_webhook_locks( int $max_age = DAY_IN_SECONDS ): int {
     1668        global $wpdb;
     1669
     1670        // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching
     1671        $wpdb->query(
     1672                $wpdb->prepare(
     1673                        "DELETE FROM `$wpdb->options`
     1674                         WHERE `option_name` LIKE %s
     1675                         AND CAST( SUBSTRING_INDEX( `option_value`, ':', 1 ) AS UNSIGNED ) < %d",
     1676                        $wpdb->esc_like( 'rcp_stripe_webhook_lock_' ) . '%',
     1677                        time() - $max_age
     1678                )
     1679        );
     1680
     1681        $deleted = (int) $wpdb->rows_affected;
     1682
     1683        if ( $deleted > 0 ) {
     1684                rcp_log( sprintf( 'Stripe webhook: cleaned up %d abandoned webhook locks.', $deleted ) );
     1685        }
     1686
     1687        return $deleted;
     1688}
     1689
     1690/**
     1691 * Cron callback for the webhook lock sweep.
     1692 *
     1693 * WordPress hands a callback an empty string when the action fires with no arguments, so the
     1694 * typed function above cannot be hooked directly.
     1695 *
     1696 * @since 4.0.6
     1697 *
     1698 * @return void
     1699 */
     1700function rcp_stripe_run_webhook_lock_cleanup(): void {
     1701        rcp_stripe_cleanup_webhook_locks();
     1702}
     1703
     1704add_action( 'rcp_stripe_cleanup_webhook_locks', 'rcp_stripe_run_webhook_lock_cleanup' );
     1705
     1706/**
     1707 * Read the currency code from a Stripe object.
     1708 *
     1709 * Returning an empty string leaves rcp_stripe_get_currency_multiplier() on the store
     1710 * currency, which is the behaviour that applied before the currency was passed through.
     1711 *
     1712 * @since 4.0.6
     1713 *
     1714 * @param mixed $source Stripe object or array.
     1715 *
     1716 * @return string Currency code, or an empty string.
     1717 */
     1718function rcp_stripe_object_get_currency( $source ): string {
     1719        $currency = rcp_stripe_object_get( $source, 'currency' );
     1720
     1721        return is_string( $currency ) ? $currency : '';
     1722}
  • restrict-content/tags/4.0.3/core/includes/gateways/stripe/js/register.js

    r3636889 r3680051  
    1616        let $ = jQuery;
    1717
     18        function report( nonce ) {
     19                $.ajax( {
     20                        type: 'post',
     21                        dataType: 'json',
     22                        url: rcp_script_options.ajaxurl,
     23                        data: {
     24                                action: 'rcp_stripe_handle_initial_payment_failure',
     25                                payment_id: payment_id,
     26                                message: message,
     27                                nonce: nonce
     28                        },
     29                        success: function ( response ) { }
     30                } );
     31        }
     32
     33        /*
     34         * Registration creates the account and logs the visitor in, which leaves the nonce printed
     35         * on the page belonging to the logged out visitor. Ask for one that matches who they are
     36         * now, and fall back to the printed one if that request fails.
     37         */
    1838        $.ajax( {
    1939                type: 'post',
    2040                dataType: 'json',
    2141                url: rcp_script_options.ajaxurl,
    22                 data: {
    23                         action: 'rcp_stripe_handle_initial_payment_failure',
    24                         payment_id: payment_id,
    25                         message: message,
    26                         nonce: rcp_script_options.stripe_payment_nonce
    27                 },
    28                 success: function ( response ) { }
     42                data: { action: 'rcp_stripe_generate_payment_nonce' },
     43                success: function ( response ) {
     44                        report( response && response.success ? response.data : rcp_script_options.stripe_payment_nonce );
     45                },
     46                error: function () {
     47                        report( rcp_script_options.stripe_payment_nonce );
     48                }
    2949        } );
    3050
  • restrict-content/tags/4.0.3/core/includes/gateways/stripe/js/register.min.js

    r3636889 r3680051  
    1 function rcpStripeHandlePaymentFailure(e,t){jQuery.ajax({type:"post",dataType:"json",url:rcp_script_options.ajaxurl,data:{action:"rcp_stripe_handle_initial_payment_failure",payment_id:e,message:t,nonce:rcp_script_options.stripe_payment_nonce},success:function(e){}})}function rcpStripeCloseCheckoutModal(){if(rcp_processing)return;let e=jQuery,t=e(".rcp-modal-wrapper"),r=e(".rcp-modal");t.fadeOut(250),r.hide(),document.getElementById("rcp-card-element")&&rcpStripe.elements.card.unmount("#rcp-card-element")}function rcpStripeHandleIntent(e,t,r){return rcpStripe.Stripe[e](t,r)}jQuery((function(e){var t={hasPaymentMethod:!1,paymentMethodID:!1,init:function(){e("body").on("rcp_gateway_loaded",t.mountElements),e("#rcp_submit").on("click",t.maybeBlockSubmit),e("body").on("rcp_registration_form_processed",t.handlePayment),e("body").on("click",".rcp-stripe-register-submit-button",t.launchModal)},mountElements:function(e,r){document.getElementById("rcp-card-element")&&(rcpStripeUpdateElementStyles(rcpStripe.elements.card,".rcp_card_name"),rcpStripe.elements.card.mount("#rcp-card-element"),rcpStripe.elements.card.addEventListener("change",(function(e){e.complete&&(t.hasPaymentMethod=!0)})),t.setPaymentMethodID(),rcpStripe.elements.card.addEventListener("change",rcpStripeToggleElementErrors))},setPaymentMethodID:function(){let r=e('input[name="rcp_gateway_existing_payment_method"]');r.on("change",(function(r){rcpStripeToggleElementErrors(r);let a=e('input[name="rcp_gateway_existing_payment_method"]:checked').val();e(".rcp-gateway-saved-payment-method, .rcp-gateway-add-payment-method-wrap").removeClass("rcp-gateway-selected-payment-method"),"new"===a?(e(".rcp-gateway-new-card-fields").show(),e(".rcp-gateway-add-payment-method-wrap").addClass("rcp-gateway-selected-payment-method"),t.paymentMethodID=!1):(e(".rcp-gateway-new-card-fields").hide(),e(this).parents(".rcp-gateway-saved-payment-method").addClass("rcp-gateway-selected-payment-method"),t.paymentMethodID=a)})),r.trigger("change")},maybeBlockSubmit:function(e){if("stripe"===rcp_get_gateway().val()&&document.getElementById("rcp-card-element")&&!t.hasPaymentMethod&&!t.paymentMethodID)return e.stopPropagation(),rcpStripeHandleError(rcp_script_options.enter_card_details),!1},handlePayment:function(r,a,n){if("stripe"!==n.gateway.slug)return;if(!(n.total||n.recurring_total&&n.auto_renew))return;if(e(".rcp_gateway_fields").hasClass("rcp_discounted_100"))return;if(!n.gateway.data.stripe_client_secret)return rcpStripeHandleError(rcp_script_options.error_occurred),void rcpStripeHandlePaymentFailure(n.payment_id,rcp_script_options.error_occurred);let c=e(".card-name").val(),p="payment_intent"===n.gateway.data.stripe_intent_type?"confirmCardPayment":"confirmCardSetup",d={payment_method:{card:rcpStripe.elements.card,billing_details:{name:c}}};t.paymentMethodID&&(d={payment_method:t.paymentMethodID}),rcpStripeHandleIntent(p,n.gateway.data.stripe_client_secret,d).then((function(e){e.error?(rcpStripeHandleError(e.error.message,e.error.code),rcpStripeHandlePaymentFailure(n.payment_id,e.error.message)):rcp_submit_registration_form(a,n)}))},launchModal:function(r){r.preventDefault();let a=e(".rcp-modal-wrapper"),n=e(".rcp-modal"),c=e(this).parents(".rcp-stripe-register");if(!document.getElementById("rcp-card-element"))return;a.fadeIn(250),rcpStripe.elements.card.mount("#rcp-card-element");let p=n.find("input.rcp-modal-submit");rcpStripe.elements.card.addEventListener("change",(function(e){e.complete&&(t.hasPaymentMethod=!0)})),rcpStripe.elements.card.addEventListener("change",rcpStripeToggleElementErrors),t.setPaymentMethodID(),c.data("name")&&e(".rcp-modal-membership-name").text(c.data("name")).show(),c.data("description")&&e(".rcp-modal-membership-description").text(c.data("description")).show(),c.data("panel-label")&&p.val(c.data("panel-label")),c.data("level-id")&&n.find("#rcp-stripe-checkout-level-id").val(c.data("level-id")),n.fadeIn(250),a.find(".rcp-modal-close").on("click",(function(){rcpStripeCloseCheckoutModal()})),e(document).on("keydown",(function(e){27===e.keyCode&&rcpStripeCloseCheckoutModal()})),e(document).mouseup((function(e){n.is(e.target)||0!==n.has(e.target).length||rcpStripeCloseCheckoutModal()}))}};t.init()}));
     1function rcpStripeHandlePaymentFailure(e,t){let r=jQuery;function a(a){r.ajax({type:"post",dataType:"json",url:rcp_script_options.ajaxurl,data:{action:"rcp_stripe_handle_initial_payment_failure",payment_id:e,message:t,nonce:a},success:function(e){}})}r.ajax({type:"post",dataType:"json",url:rcp_script_options.ajaxurl,data:{action:"rcp_stripe_generate_payment_nonce"},success:function(e){a(e&&e.success?e.data:rcp_script_options.stripe_payment_nonce)},error:function(){a(rcp_script_options.stripe_payment_nonce)}})}function rcpStripeCloseCheckoutModal(){if(rcp_processing)return;let e=jQuery,t=e(".rcp-modal-wrapper"),r=e(".rcp-modal");t.fadeOut(250),r.hide(),document.getElementById("rcp-card-element")&&rcpStripe.elements.card.unmount("#rcp-card-element")}function rcpStripeHandleIntent(e,t,r){return rcpStripe.Stripe[e](t,r)}jQuery((function(e){var t={hasPaymentMethod:!1,paymentMethodID:!1,init:function(){e("body").on("rcp_gateway_loaded",t.mountElements),e("#rcp_submit").on("click",t.maybeBlockSubmit),e("body").on("rcp_registration_form_processed",t.handlePayment),e("body").on("click",".rcp-stripe-register-submit-button",t.launchModal)},mountElements:function(e,r){document.getElementById("rcp-card-element")&&(rcpStripeUpdateElementStyles(rcpStripe.elements.card,".rcp_card_name"),rcpStripe.elements.card.mount("#rcp-card-element"),rcpStripe.elements.card.addEventListener("change",(function(e){e.complete&&(t.hasPaymentMethod=!0)})),t.setPaymentMethodID(),rcpStripe.elements.card.addEventListener("change",rcpStripeToggleElementErrors))},setPaymentMethodID:function(){let r=e('input[name="rcp_gateway_existing_payment_method"]');r.on("change",(function(r){rcpStripeToggleElementErrors(r);let a=e('input[name="rcp_gateway_existing_payment_method"]:checked').val();e(".rcp-gateway-saved-payment-method, .rcp-gateway-add-payment-method-wrap").removeClass("rcp-gateway-selected-payment-method"),"new"===a?(e(".rcp-gateway-new-card-fields").show(),e(".rcp-gateway-add-payment-method-wrap").addClass("rcp-gateway-selected-payment-method"),t.paymentMethodID=!1):(e(".rcp-gateway-new-card-fields").hide(),e(this).parents(".rcp-gateway-saved-payment-method").addClass("rcp-gateway-selected-payment-method"),t.paymentMethodID=a)})),r.trigger("change")},maybeBlockSubmit:function(e){if("stripe"===rcp_get_gateway().val()&&document.getElementById("rcp-card-element")&&!t.hasPaymentMethod&&!t.paymentMethodID)return e.stopPropagation(),rcpStripeHandleError(rcp_script_options.enter_card_details),!1},handlePayment:function(r,a,n){if("stripe"!==n.gateway.slug)return;if(!(n.total||n.recurring_total&&n.auto_renew))return;if(e(".rcp_gateway_fields").hasClass("rcp_discounted_100"))return;if(!n.gateway.data.stripe_client_secret)return rcpStripeHandleError(rcp_script_options.error_occurred),void rcpStripeHandlePaymentFailure(n.payment_id,rcp_script_options.error_occurred);let c=e(".card-name").val(),p="payment_intent"===n.gateway.data.stripe_intent_type?"confirmCardPayment":"confirmCardSetup",o={payment_method:{card:rcpStripe.elements.card,billing_details:{name:c}}};t.paymentMethodID&&(o={payment_method:t.paymentMethodID}),rcpStripeHandleIntent(p,n.gateway.data.stripe_client_secret,o).then((function(e){e.error?(rcpStripeHandleError(e.error.message,e.error.code),rcpStripeHandlePaymentFailure(n.payment_id,e.error.message)):rcp_submit_registration_form(a,n)}))},launchModal:function(r){r.preventDefault();let a=e(".rcp-modal-wrapper"),n=e(".rcp-modal"),c=e(this).parents(".rcp-stripe-register");if(!document.getElementById("rcp-card-element"))return;a.fadeIn(250),rcpStripe.elements.card.mount("#rcp-card-element");let p=n.find("input.rcp-modal-submit");rcpStripe.elements.card.addEventListener("change",(function(e){e.complete&&(t.hasPaymentMethod=!0)})),rcpStripe.elements.card.addEventListener("change",rcpStripeToggleElementErrors),t.setPaymentMethodID(),c.data("name")&&e(".rcp-modal-membership-name").text(c.data("name")).show(),c.data("description")&&e(".rcp-modal-membership-description").text(c.data("description")).show(),c.data("panel-label")&&p.val(c.data("panel-label")),c.data("level-id")&&n.find("#rcp-stripe-checkout-level-id").val(c.data("level-id")),n.fadeIn(250),a.find(".rcp-modal-close").on("click",(function(){rcpStripeCloseCheckoutModal()})),e(document).on("keydown",(function(e){27===e.keyCode&&rcpStripeCloseCheckoutModal()})),e(document).mouseup((function(e){n.is(e.target)||0!==n.has(e.target).length||rcpStripeCloseCheckoutModal()}))}};t.init()}));
  • restrict-content/tags/4.0.3/core/includes/js/register.js

    r3636889 r3680051  
    440440                is_free: $level.attr( 'rel' ) == 0,
    441441                lifetime: $level.data( 'duration' ) === 'forever',
    442                 level_has_trial: rcp_script_options.trial_levels.indexOf( $level.val() ) !== -1,
     442                // Older template overrides have no data-has-trial, so fall back to the localized list.
     443                // Its IDs are numbers while the level value is a string, hence the coercion.
     444                level_has_trial: true === $level.data( 'has-trial' )
     445                        || rcp_script_options.trial_levels.map( Number ).indexOf( parseInt( $level.val(), 10 ) ) !== -1,
    443446                discount_code: $( '#rcp_discount_code' ).val(),
    444447                gateway: rcp_get_gateway().val(),
  • restrict-content/tags/4.0.3/core/includes/js/register.min.js

    r3636889 r3680051  
    1 "function"!=typeof Object.assign&&(Object.assign=function(e){"use strict";if(null==e)throw new TypeError("Cannot convert undefined or null to object");e=Object(e);for(var r=1;r<arguments.length;r++){var t=arguments[r];if(null!=t)for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a])}return e});var rcp_processing=!1;function rcp_get_recaptchav3_token(e){return new Promise((function(r,t){"1"===rcp_script_options.recaptcha_enabled&&"3"===rcp_script_options.recaptcha_version?grecaptcha.ready((function(){grecaptcha.execute(jQuery("#rcp_recaptcha").data("sitekey"),{action:"register"}).then((function(t){jQuery(e).find('input[name="g-recaptcha-response"]').val(t),r()}))})):r()}))}function rcp_validate_registration_form(e){let r=jQuery;return new Promise((function(t,a){r.post(rcp_script_options.ajaxurl,e.serialize()+"&action=rcp_process_register_form&rcp_ajax=true&validate_only=true",(function(i){r(".rcp-submit-ajax",e).remove(),r(".rcp_message.error",e).remove(),i.success?(r("body").trigger("rcp_registration_form_validated",[e,i.data]),t(i.data)):a(i.data)})).done((function(e){})).fail((function(e){console.log(e),a(Error(e))})).always((function(e){}))}))}function rcp_process_registration_form(e){let r=jQuery;return rcp_processing=!0,new Promise((function(t,a){r.post(rcp_script_options.ajaxurl,e.serialize()+"&action=rcp_process_register_form&rcp_ajax=true",(function(e){e.success?t(e.data):a(e.data)})).done((function(e){})).fail((function(e){console.log(e)})).always((function(e){}))}))}function rcp_regenerate_registration_nonce(e,r){let t=jQuery;return rcp_processing=!0,new Promise((function(a,i){t.ajax({type:"post",dataType:"json",url:rcp_script_options.ajaxurl,data:{action:"rcp_generate_registration_nonce"},success:function(t){t.success?(r.nonce=t.data,e.find('input[name="rcp_register_nonce"]').val(r.nonce),a(r)):i(r)}})}))}function rcp_submit_registration_form(e,r){rcp_processing=!0,e.submit()}function rcp_handle_registration_errors(e,r){let t=jQuery;void 0===r&&(r=t("#rcp_registration_form")),void 0===e.errors&&(e.errors='<div class="rcp_message error" role="list"><p class="rcp_error" role="listitem">'+rcp_script_options.error_occurred+"</p></div>"),r.find("#rcp_submit").val(rcp_script_options.register).before(e.errors),r.find('input[name="rcp_register_nonce"]').val(e.nonce),r.unblock(),rcp_processing=!1}function rcp_get_gateway(){let e,r=jQuery;return r("#rcp_payment_gateways").length>0?(e=r("#rcp_payment_gateways select option:selected"),e.length<1&&(e=r('input[name="rcp_gateway"]:checked'))):e=r('input[name="rcp_gateway"]'),e}function rcp_get_registration_form_state(){let e=jQuery,r=e("#rcp_subscription_levels .rcp_level:checked");return r.length||(r=e("#rcp_registration_form").find("input[name=rcp_level]")),{membership_level:r.val(),is_free:0==r.attr("rel"),lifetime:"forever"===r.data("duration"),level_has_trial:-1!==rcp_script_options.trial_levels.indexOf(r.val()),discount_code:e("#rcp_discount_code").val(),gateway:rcp_get_gateway().val(),gateway_data:rcp_get_gateway(),auto_renew:e("#rcp_auto_renew").prop("checked")}}function rcp_validate_registration_state(e,r){e||(e=rcp_get_registration_form_state());let t=jQuery,a=t("#rcp_registration_form");a.block({message:rcp_script_options.pleasewait,css:{border:"none",padding:"15px",backgroundColor:"#000","-webkit-border-radius":"10px","-moz-border-radius":"10px",opacity:.5,color:"#fff"}});let i=a.serialize()+"&action=rcp_validate_registration_state&rcp_ajax=true&rcp_level="+e.membership_level+"&lifetime="+e.lifetime+"&level_has_trial="+e.level_has_trial+"&is_free="+e.is_free+"&discount_code="+e.discount_code+"&rcp_gateway="+e.gateway+"&rcp_auto_renew="+(!0===e.auto_renew||"")+"&event_type="+r+"&registration_type="+t("#rcp-registration-type").val()+"&membership_id="+t("#rcp-membership-id").val()+"&rcp_registration_payment_id="+t("#rcp-payment-id").val();t.ajax({type:"post",dataType:"json",url:rcp_script_options.ajaxurl,data:i,success:function(e){e.success?(t(".rcp_gateway_"+e.data.gateway+"_fields").length&&e.data.show_gateway_fields||(t("#rcp_gateway_extra_fields").remove(),1==e.data.show_gateway_fields&&e.data.gateway_fields&&(t(".rcp_gateway_fields").length?t('<div class="rcp_gateway_'+e.data.gateway+'_fields" id="rcp_gateway_extra_fields">'+e.data.gateway_fields+"</div>").insertAfter(".rcp_gateway_fields"):t('<div class="rcp_gateway_'+e.data.gateway+'_fields" id="rcp_gateway_extra_fields">'+e.data.gateway_fields+"</div>").insertAfter(".rcp_gateways_fieldset"),t("body").trigger("rcp_gateway_loaded",e.data.gateway))),rcp_prepare_registration_fields(e.data)):console.log(e),t("#rcp_registration_form").unblock()}})}function rcp_prepare_registration_fields(e){let r=jQuery;if(e.recurring_available?r("#rcp_auto_renew_wrap").show():(r("#rcp_auto_renew_wrap").hide(),r("#rcp_auto_renew_wrap input").prop("checked",!1)),e.level_has_trial&&e.trial_eligible&&(r("#rcp_auto_renew_wrap").hide(),r("#rcp_auto_renew_wrap input").prop("checked",!0)),e.initial_total>0||e.recurring_total>0?r(".rcp_gateway_fields").show():r(".rcp_gateway_fields").hide(),e.show_gateway_fields?r("#rcp_gateway_extra_fields").show():r("#rcp_gateway_extra_fields").remove(),r(".rcp_discount_amount").remove(),r(".rcp_discount_valid, .rcp_discount_invalid").hide(),e.discount_code){e.discount_valid?(r(".rcp_discount_valid").show(),r("#rcp_discount_code_wrap label").append('<span class="rcp_discount_amount"> - '+e.discount_amount+"</span>"),e.full_discount?r(".rcp_gateway_fields").addClass("rcp_discounted_100"):r(".rcp_gateway_fields").removeClass("rcp_discounted_100")):(r(".rcp_discount_invalid").show(),r(".rcp_gateway_fields").removeClass("rcp_discounted_100"));let t={valid:e.discount_valid,full:e.full_discount,amount:e.discount_amount};r("body").trigger("rcp_discount_applied",[t])}r(".rcp_registration_total").html(e.total_details_html)}function rcp_validate_recaptcha(e){jQuery("#rcp_registration_form #rcp_submit").prop("disabled",!1)}jQuery(document).ready((function(e){rcp_validate_registration_state(),e("#rcp-membership-renew-upgrade-toggle").on("click",(function(r){r.preventDefault(),e("#rcp-membership-renew-upgrade-choice").toggle()})),e("#rcp_payment_gateways select, #rcp_payment_gateways input").on("change",(function(){e("body").trigger("rcp_gateway_change",{gateway:rcp_get_gateway().val()})})),e(".rcp_level").on("change",(function(){e("body").trigger("rcp_level_change",{subscription_level:e("#rcp_subscription_levels .rcp_level:checked").val()})})),e("#rcp_apply_discount").on("click",(function(r){r.preventDefault(),e("body").trigger("rcp_discount_change",{discount_code:e("#rcp_discount_code").val()})})),e("#rcp_auto_renew").on("change",(function(){e("body").trigger("rcp_auto_renew_change",{auto_renew:e(this).prop("checked")})})),e("body").on("rcp_discount_change rcp_level_change rcp_gateway_change rcp_auto_renew_change",(function(e,r){rcp_validate_registration_state(Object.assign({},rcp_get_registration_form_state(),r),e.type)})),"1"===rcp_script_options.recaptcha_enabled&&"3"!==rcp_script_options.recaptcha_version&&jQuery("#rcp_registration_form #rcp_submit").prop("disabled",!0),e(document).on("click","#rcp_registration_form #rcp_submit",(function(r){r.preventDefault();var t=document.getElementById("rcp_registration_form"),a=e("#rcp_registration_form");if(("function"!=typeof t.checkValidity||!1!==t.checkValidity())&&(a.block({message:rcp_script_options.pleasewait,css:{border:"none",padding:"15px",backgroundColor:"#000","-webkit-border-radius":"10px","-moz-border-radius":"10px",opacity:.5,color:"#fff"}}),e("#rcp_submit",a).val(rcp_script_options.pleasewait),!rcp_processing)){rcp_processing=!0;var i=(window.rcpRegistrationChecks||[]).map((function(e){return e(a)}));Promise.all(i).then((function(){return rcp_get_recaptchav3_token(a)})).then((function(){return rcp_validate_registration_form(a)})).then((function(e){return rcp_process_registration_form(a)})).then((function(e){return rcp_regenerate_registration_nonce(a,e)})).then((function(r){let t=a.find('input[name="rcp_registration_payment_id"]');t.length?t.val(r.payment_id):a.append('<input type="hidden" name="rcp_registration_payment_id" value="'+r.payment_id+'"/>'),e("body").trigger("rcp_register_form_submission",[r,a.attr("id")]);let i=!1;r.gateway.supports&&-1!==r.gateway.supports.indexOf("gateway-submits-form")&&(i=!0),0===r.total&&0===r.recurring_total||!i?rcp_submit_registration_form(a,r):e("body").trigger("rcp_registration_form_processed",[a,r])})).catch((function(e){console.trace("Registration Error",e),rcp_regenerate_registration_nonce(a,e).then((function(e){rcp_handle_registration_errors(e,a)})).catch((function(r){rcp_handle_registration_errors(e,a)}))}))}}))}));var rcp_validating_discount=!1,rcp_validating_gateway=!1,rcp_validating_level=!1,rcp_calculating_total=!1;function rcp_validate_form(e){rcp_validate_registration_state()}function rcp_validate_subscription_level(){rcp_validating_level||(rcp_validating_level=!0,rcp_validate_registration_state(),rcp_validating_level=!1)}function rcp_validate_gateways(){rcp_validating_gateway||(rcp_validating_gateway=!0,rcp_validate_registration_state(),rcp_validating_gateway=!1)}function rcp_validate_discount(){rcp_validating_discount||(rcp_validating_discount=!0,rcp_validate_registration_state(),rcp_validating_discount=!1)}function rcp_calc_total(){rcp_calculating_total||(rcp_calculating_total=!0,rcp_validate_registration_state(),rcp_calculating_total=!1)}
     1"function"!=typeof Object.assign&&(Object.assign=function(e){"use strict";if(null==e)throw new TypeError("Cannot convert undefined or null to object");e=Object(e);for(var r=1;r<arguments.length;r++){var t=arguments[r];if(null!=t)for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a])}return e});var rcp_processing=!1;function rcp_get_recaptchav3_token(e){return new Promise((function(r,t){"1"===rcp_script_options.recaptcha_enabled&&"3"===rcp_script_options.recaptcha_version?grecaptcha.ready((function(){grecaptcha.execute(jQuery("#rcp_recaptcha").data("sitekey"),{action:"register"}).then((function(t){jQuery(e).find('input[name="g-recaptcha-response"]').val(t),r()}))})):r()}))}function rcp_validate_registration_form(e){let r=jQuery;return new Promise((function(t,a){r.post(rcp_script_options.ajaxurl,e.serialize()+"&action=rcp_process_register_form&rcp_ajax=true&validate_only=true",(function(i){r(".rcp-submit-ajax",e).remove(),r(".rcp_message.error",e).remove(),i.success?(r("body").trigger("rcp_registration_form_validated",[e,i.data]),t(i.data)):a(i.data)})).done((function(e){})).fail((function(e){console.log(e),a(Error(e))})).always((function(e){}))}))}function rcp_process_registration_form(e){let r=jQuery;return rcp_processing=!0,new Promise((function(t,a){r.post(rcp_script_options.ajaxurl,e.serialize()+"&action=rcp_process_register_form&rcp_ajax=true",(function(e){e.success?t(e.data):a(e.data)})).done((function(e){})).fail((function(e){console.log(e)})).always((function(e){}))}))}function rcp_regenerate_registration_nonce(e,r){let t=jQuery;return rcp_processing=!0,new Promise((function(a,i){t.ajax({type:"post",dataType:"json",url:rcp_script_options.ajaxurl,data:{action:"rcp_generate_registration_nonce"},success:function(t){t.success?(r.nonce=t.data,e.find('input[name="rcp_register_nonce"]').val(r.nonce),a(r)):i(r)}})}))}function rcp_submit_registration_form(e,r){rcp_processing=!0,e.submit()}function rcp_handle_registration_errors(e,r){let t=jQuery;void 0===r&&(r=t("#rcp_registration_form")),void 0===e.errors&&(e.errors='<div class="rcp_message error" role="list"><p class="rcp_error" role="listitem">'+rcp_script_options.error_occurred+"</p></div>"),r.find("#rcp_submit").val(rcp_script_options.register).before(e.errors),r.find('input[name="rcp_register_nonce"]').val(e.nonce),r.unblock(),rcp_processing=!1}function rcp_get_gateway(){let e,r=jQuery;return r("#rcp_payment_gateways").length>0?(e=r("#rcp_payment_gateways select option:selected"),e.length<1&&(e=r('input[name="rcp_gateway"]:checked'))):e=r('input[name="rcp_gateway"]'),e}function rcp_get_registration_form_state(){let e=jQuery,r=e("#rcp_subscription_levels .rcp_level:checked");return r.length||(r=e("#rcp_registration_form").find("input[name=rcp_level]")),{membership_level:r.val(),is_free:0==r.attr("rel"),lifetime:"forever"===r.data("duration"),level_has_trial:!0===r.data("has-trial")||-1!==rcp_script_options.trial_levels.map(Number).indexOf(parseInt(r.val(),10)),discount_code:e("#rcp_discount_code").val(),gateway:rcp_get_gateway().val(),gateway_data:rcp_get_gateway(),auto_renew:e("#rcp_auto_renew").prop("checked")}}function rcp_validate_registration_state(e,r){e||(e=rcp_get_registration_form_state());let t=jQuery,a=t("#rcp_registration_form");a.block({message:rcp_script_options.pleasewait,css:{border:"none",padding:"15px",backgroundColor:"#000","-webkit-border-radius":"10px","-moz-border-radius":"10px",opacity:.5,color:"#fff"}});let i=a.serialize()+"&action=rcp_validate_registration_state&rcp_ajax=true&rcp_level="+e.membership_level+"&lifetime="+e.lifetime+"&level_has_trial="+e.level_has_trial+"&is_free="+e.is_free+"&discount_code="+e.discount_code+"&rcp_gateway="+e.gateway+"&rcp_auto_renew="+(!0===e.auto_renew||"")+"&event_type="+r+"&registration_type="+t("#rcp-registration-type").val()+"&membership_id="+t("#rcp-membership-id").val()+"&rcp_registration_payment_id="+t("#rcp-payment-id").val();t.ajax({type:"post",dataType:"json",url:rcp_script_options.ajaxurl,data:i,success:function(e){e.success?(t(".rcp_gateway_"+e.data.gateway+"_fields").length&&e.data.show_gateway_fields||(t("#rcp_gateway_extra_fields").remove(),1==e.data.show_gateway_fields&&e.data.gateway_fields&&(t(".rcp_gateway_fields").length?t('<div class="rcp_gateway_'+e.data.gateway+'_fields" id="rcp_gateway_extra_fields">'+e.data.gateway_fields+"</div>").insertAfter(".rcp_gateway_fields"):t('<div class="rcp_gateway_'+e.data.gateway+'_fields" id="rcp_gateway_extra_fields">'+e.data.gateway_fields+"</div>").insertAfter(".rcp_gateways_fieldset"),t("body").trigger("rcp_gateway_loaded",e.data.gateway))),rcp_prepare_registration_fields(e.data)):console.log(e),t("#rcp_registration_form").unblock()}})}function rcp_prepare_registration_fields(e){let r=jQuery;if(e.recurring_available?r("#rcp_auto_renew_wrap").show():(r("#rcp_auto_renew_wrap").hide(),r("#rcp_auto_renew_wrap input").prop("checked",!1)),e.level_has_trial&&e.trial_eligible&&(r("#rcp_auto_renew_wrap").hide(),r("#rcp_auto_renew_wrap input").prop("checked",!0)),e.initial_total>0||e.recurring_total>0?r(".rcp_gateway_fields").show():r(".rcp_gateway_fields").hide(),e.show_gateway_fields?r("#rcp_gateway_extra_fields").show():r("#rcp_gateway_extra_fields").remove(),r(".rcp_discount_amount").remove(),r(".rcp_discount_valid, .rcp_discount_invalid").hide(),e.discount_code){e.discount_valid?(r(".rcp_discount_valid").show(),r("#rcp_discount_code_wrap label").append('<span class="rcp_discount_amount"> - '+e.discount_amount+"</span>"),e.full_discount?r(".rcp_gateway_fields").addClass("rcp_discounted_100"):r(".rcp_gateway_fields").removeClass("rcp_discounted_100")):(r(".rcp_discount_invalid").show(),r(".rcp_gateway_fields").removeClass("rcp_discounted_100"));let t={valid:e.discount_valid,full:e.full_discount,amount:e.discount_amount};r("body").trigger("rcp_discount_applied",[t])}r(".rcp_registration_total").html(e.total_details_html)}function rcp_validate_recaptcha(e){jQuery("#rcp_registration_form #rcp_submit").prop("disabled",!1)}jQuery(document).ready((function(e){rcp_validate_registration_state(),e("#rcp-membership-renew-upgrade-toggle").on("click",(function(r){r.preventDefault(),e("#rcp-membership-renew-upgrade-choice").toggle()})),e("#rcp_payment_gateways select, #rcp_payment_gateways input").on("change",(function(){e("body").trigger("rcp_gateway_change",{gateway:rcp_get_gateway().val()})})),e(".rcp_level").on("change",(function(){e("body").trigger("rcp_level_change",{subscription_level:e("#rcp_subscription_levels .rcp_level:checked").val()})})),e("#rcp_apply_discount").on("click",(function(r){r.preventDefault(),e("body").trigger("rcp_discount_change",{discount_code:e("#rcp_discount_code").val()})})),e("#rcp_auto_renew").on("change",(function(){e("body").trigger("rcp_auto_renew_change",{auto_renew:e(this).prop("checked")})})),e("body").on("rcp_discount_change rcp_level_change rcp_gateway_change rcp_auto_renew_change",(function(e,r){rcp_validate_registration_state(Object.assign({},rcp_get_registration_form_state(),r),e.type)})),"1"===rcp_script_options.recaptcha_enabled&&"3"!==rcp_script_options.recaptcha_version&&jQuery("#rcp_registration_form #rcp_submit").prop("disabled",!0),e(document).on("click","#rcp_registration_form #rcp_submit",(function(r){r.preventDefault();var t=document.getElementById("rcp_registration_form"),a=e("#rcp_registration_form");if(("function"!=typeof t.checkValidity||!1!==t.checkValidity())&&(a.block({message:rcp_script_options.pleasewait,css:{border:"none",padding:"15px",backgroundColor:"#000","-webkit-border-radius":"10px","-moz-border-radius":"10px",opacity:.5,color:"#fff"}}),e("#rcp_submit",a).val(rcp_script_options.pleasewait),!rcp_processing)){rcp_processing=!0;var i=(window.rcpRegistrationChecks||[]).map((function(e){return e(a)}));Promise.all(i).then((function(){return rcp_get_recaptchav3_token(a)})).then((function(){return rcp_validate_registration_form(a)})).then((function(e){return rcp_process_registration_form(a)})).then((function(e){return rcp_regenerate_registration_nonce(a,e)})).then((function(r){let t=a.find('input[name="rcp_registration_payment_id"]');t.length?t.val(r.payment_id):a.append('<input type="hidden" name="rcp_registration_payment_id" value="'+r.payment_id+'"/>'),e("body").trigger("rcp_register_form_submission",[r,a.attr("id")]);let i=!1;r.gateway.supports&&-1!==r.gateway.supports.indexOf("gateway-submits-form")&&(i=!0),0===r.total&&0===r.recurring_total||!i?rcp_submit_registration_form(a,r):e("body").trigger("rcp_registration_form_processed",[a,r])})).catch((function(e){console.trace("Registration Error",e),rcp_regenerate_registration_nonce(a,e).then((function(e){rcp_handle_registration_errors(e,a)})).catch((function(r){rcp_handle_registration_errors(e,a)}))}))}}))}));var rcp_validating_discount=!1,rcp_validating_gateway=!1,rcp_validating_level=!1,rcp_calculating_total=!1;function rcp_validate_form(e){rcp_validate_registration_state()}function rcp_validate_subscription_level(){rcp_validating_level||(rcp_validating_level=!0,rcp_validate_registration_state(),rcp_validating_level=!1)}function rcp_validate_gateways(){rcp_validating_gateway||(rcp_validating_gateway=!0,rcp_validate_registration_state(),rcp_validating_gateway=!1)}function rcp_validate_discount(){rcp_validating_discount||(rcp_validating_discount=!0,rcp_validate_registration_state(),rcp_validating_discount=!1)}function rcp_calc_total(){rcp_calculating_total||(rcp_calculating_total=!0,rcp_validate_registration_state(),rcp_calculating_total=!1)}
  • restrict-content/tags/4.0.3/core/includes/misc-functions.php

    r3636889 r3680051  
    118118 * Return the symbol for a specific currency
    119119 *
    120  * @param bool $currency
     120 * @param bool|string $currency Currency code. Default false.
    121121 *
    122122 * @since 2.9.5
    … …  
    11631163 * Determines if RCP is using a zero-decimal currency.
    11641164 *
    1165  * @param  string $currency
     1165 * @param  string $currency Currency code. Defaults to the store currency.
    11661166 *
    11671167 * @access public
    … …  
    11711171function rcp_is_zero_decimal_currency( $currency = '' ) {
    11721172
    1173         if ( ! $currency ) {
    1174                 $currency = strtoupper( rcp_get_currency() );
    1175         }
     1173        // Gateways report currency codes in lowercase, so normalize before comparing.
     1174        $currency = $currency ? strtoupper( $currency ) : strtoupper( rcp_get_currency() );
    11761175
    11771176        $zero_dec_currencies = array(
  • restrict-content/tags/4.0.3/core/includes/registration-functions.php

    r3636889 r3680051  
    10391039        }
    10401040
     1041        /*
     1042         * A trial on a paid level has nothing to charge today, so without a subscription the membership
     1043         * expires when the trial ends. Force auto renew on whenever the gateway can carry the trial
     1044         * itself, instead of relying on the auto renew checkbox.
     1045         */
     1046        if ( ! $auto_renew && '2' != rcp_get_auto_renew_behavior() && rcp_get_registration_recurring_total() > 0 && rcp_get_registration()->is_trial() ) {
     1047                $gateway = ! empty( $_POST['rcp_gateway'] ) ? sanitize_text_field( wp_unslash( $_POST['rcp_gateway'] ) ) : ''; // phpcs:ignore WordPress.Security.NonceVerification.Missing
     1048
     1049                $auto_renew = ! empty( $gateway )
     1050                        && rcp_gateway_supports( $gateway, 'trial' )
     1051                        && rcp_gateway_supports( $gateway, 'recurring' );
     1052        }
     1053
    10411054        return apply_filters( 'rcp_registration_is_recurring', $auto_renew );
    10421055
    … …  
    17751788        rcp_log( sprintf( 'Completing registration for customer #%d via payment #%d.', $customer->get_id(), $pending_payment_id ) );
    17761789
    1777         if ( ! empty( $payment->transaction_type ) && 'renewal' != $payment->transaction_type ) {
     1790        /*
     1791         * renew() does not fire `rcp_membership_post_activate`, so a membership reaching its first
     1792         * term under a payment labelled `renewal` would lose its activation email. times_billed is
     1793         * still the pre-payment count here. The is_active() test keeps an already running membership
     1794         * on renew(), which is the only branch that extends the expiration.
     1795         */
     1796        $never_activated = empty( $membership->get_activated_date() )
     1797                && 0 === $membership->get_times_billed()
     1798                && ! $membership->is_active();
     1799
     1800        if ( $never_activated || ( ! empty( $payment->transaction_type ) && 'renewal' != $payment->transaction_type ) ) {
    17781801                // If this is a brand new membership, activate it.
    17791802                $membership->activate();
  • restrict-content/tags/4.0.3/legacy/restrictcontent.php

    r3636889 r3680051  
    2222
    2323if ( ! defined( 'RC_PLUGIN_VERSION' ) ) {
    24         define( 'RC_PLUGIN_VERSION', '4.0.2' );
     24        define( 'RC_PLUGIN_VERSION', '4.0.3' );
    2525}
    2626
  • restrict-content/tags/4.0.3/package.json

    r3636889 r3680051  
    11{
    22  "name": "restrict-content",
    3   "version": "4.0.2",
     3  "version": "4.0.3",
    44  "description": "Set up a complete membership system for your WordPress site and deliver premium content to your members. Unlimited membership packages, membership management, discount codes, registration / login forms, and more.",
    55  "homepage": "https://restrictcontentpro.com/",
  • restrict-content/tags/4.0.3/readme.txt

    r3636889 r3680051  
    77Requires PHP: 7.4
    88Tested up to: 6.9
    9 Stable tag: 4.0.2
     9Stable tag: 4.0.3
    1010
    1111Kadence Memberships is a powerful WordPress membership plugin that gives you full control over who can and cannot view content on your WordPress site.
    … …  
    258258== Changelog ==
    259259
     260= 4.0.3 =
     261* Fix: Stripe subscription renewals now record a renewal payment and extend the membership expiration.
     262* Fix: Stripe payments in a currency with a different number of decimals than the store currency were recorded with the wrong amount.
     263* Fix: Free trials on paid membership levels were processed as free memberships, so no Stripe subscription was created and access ended with the trial.
     264* Fix: A declined card no longer leaves a duplicate pending membership behind on the next attempt.
     265* Fix: Stripe card declines were rejected by their own security check, so failed registrations were never recorded as failed.
     266* Fix: Resolved PHP warnings that could occur when another plugin using Composer was active on the same site.
     267
    260268= 4.0.2 =
    261269* New: Added Chinese Yuan (&#20803;) to the list of available currencies.
  • restrict-content/tags/4.0.3/restrictcontent.php

    r3636889 r3680051  
    44 * Plugin URI: https://restrictcontentpro.com
    55 * Description: Set up a complete membership system for your WordPress site and deliver premium content to your members. Unlimited membership packages, membership management, discount codes, registration / login forms, and more.
    6  * Version: 4.0.2
     6 * Version: 4.0.3
    77 * Author: Kadence
    88 * Author URI: https://www.kadencewp.com/
    … …  
    1919define('RCP_ROOT', plugin_dir_path(__FILE__));
    2020define('RCP_WEB_ROOT', plugin_dir_url(__FILE__));
    21 define('RCF_VERSION', '4.0.2');
     21define('RCF_VERSION', '4.0.3');
    2222
    2323// Load Strauss autoload.
    … …  
    2929}
    3030
    31 // Load Composer autoload file only if we've not included this file already.
    32 require_once dirname(RCP_PLUGIN_FILE) . '/vendor/autoload.php';
     31// Autoload RCP\ classes from core/includes/ — vendor/autoload.php skipped because
     32// Strauss (delete_vendor_files) leaves stale mappings that poison other plugins.
     33spl_autoload_register( 'rcp_autoload' );
    3334
    3435use RCP\StellarWP\Telemetry\Config;
    3536use RCP\StellarWP\Telemetry\Core as Telemetry;
    3637use RCP\Container;
     38
     39/**
     40 * Autoload RCP\ classes from core/includes/.
     41 *
     42 * @since 4.0.3
     43 *
     44 * @param string $class Fully-qualified class name.
     45 * @return void
     46 */
     47function rcp_autoload( $class ) {
     48        $prefix     = 'RCP\\';
     49        $prefix_len = strlen( $prefix );
     50
     51        if ( strncmp( $prefix, $class, $prefix_len ) !== 0 ) {
     52                return;
     53        }
     54
     55        $file = RCP_ROOT . 'core/includes/' . str_replace( '\\', '/', substr( $class, $prefix_len ) ) . '.php';
     56
     57        if ( file_exists( $file ) ) {
     58                require_once $file;
     59        }
     60}
    3761
    3862$rc_options = get_option('rc_settings');
  • restrict-content/trunk/readme.txt

    r3636920 r3680051  
    77Requires PHP: 7.4
    88Tested up to: 6.9
    9 Stable tag: 4.0.2
     9Stable tag: 4.0.3
    1010
    1111Kadence Memberships is a powerful WordPress membership plugin that gives you full control over who can and cannot view content on your WordPress site.
    … …  
    258258== Changelog ==
    259259
     260= 4.0.3 =
     261* Fix: Stripe subscription renewals now record a renewal payment and extend the membership expiration.
     262* Fix: Stripe payments in a currency with a different number of decimals than the store currency were recorded with the wrong amount.
     263* Fix: Free trials on paid membership levels were processed as free memberships, so no Stripe subscription was created and access ended with the trial.
     264* Fix: A declined card no longer leaves a duplicate pending membership behind on the next attempt.
     265* Fix: Stripe card declines were rejected by their own security check, so failed registrations were never recorded as failed.
     266* Fix: Resolved PHP warnings that could occur when another plugin using Composer was active on the same site.
     267
    260268= 4.0.2 =
    261269* New: Added Chinese Yuan (&#20803;) to the list of available currencies.
Note: See TracChangeset for help on using the changeset viewer.