Changeset 3680051
- Timestamp:
- 09/03/2026 04:21:25 PM (7 weeks ago)
- Location:
- restrict-content
- Files:
-
- 21 edited
- 1 copied
-
tags/4.0.3 (copied) (copied from restrict-content/tags/4.0.2 )
-
tags/4.0.3/composer.json (modified) (1 diff)
-
tags/4.0.3/core/includes/admin/settings/settings.php (modified) (13 diffs)
-
tags/4.0.3/core/includes/ajax-actions.php (modified) (3 diffs)
-
tags/4.0.3/core/includes/class-rcp-registration.php (modified) (4 diffs)
-
tags/4.0.3/core/includes/class-restrict-content.php (modified) (1 diff)
-
tags/4.0.3/core/includes/cron-functions.php (modified) (2 diffs)
-
tags/4.0.3/core/includes/css/admin-styles.min.css (modified) (1 diff)
-
tags/4.0.3/core/includes/deactivation.php (modified) (1 diff)
-
tags/4.0.3/core/includes/gateways/class-rcp-payment-gateway-stripe.php (modified) (5 diffs)
-
tags/4.0.3/core/includes/gateways/stripe/functions.php (modified) (4 diffs)
-
tags/4.0.3/core/includes/gateways/stripe/js/register.js (modified) (1 diff)
-
tags/4.0.3/core/includes/gateways/stripe/js/register.min.js (modified) (1 diff)
-
tags/4.0.3/core/includes/js/register.js (modified) (1 diff)
-
tags/4.0.3/core/includes/js/register.min.js (modified) (1 diff)
-
tags/4.0.3/core/includes/misc-functions.php (modified) (3 diffs)
-
tags/4.0.3/core/includes/registration-functions.php (modified) (2 diffs)
-
tags/4.0.3/legacy/restrictcontent.php (modified) (1 diff)
-
tags/4.0.3/package.json (modified) (1 diff)
-
tags/4.0.3/readme.txt (modified) (2 diffs)
-
tags/4.0.3/restrictcontent.php (modified) (3 diffs)
-
trunk/readme.txt (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
restrict-content/tags/4.0.3/composer.json
r3636889 r3680051 1 1 { 2 2 "name": "restrictcontent/restrict-content", 3 "version": "4.0. 2",3 "version": "4.0.3", 4 4 "type": "wordpress-plugin", 5 5 "description": "A simple, yet powerful membership solution for WordPress.", -
restrict-content/tags/4.0.3/core/includes/admin/settings/settings.php
r3636889 r3680051 420 420 </th> 421 421 <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]" 423 423 <?php 424 424 checked( rcp_is_sandbox() ); … … 1112 1112 </th> 1113 1113 <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]" 1115 1115 <?php 1116 1116 if ( isset( $rcp_options['hide_premium'] ) ) { … … 1153 1153 </th> 1154 1154 <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]" 1156 1156 <?php 1157 1157 if ( isset( $rcp_options['hijack_login_url'] ) ) { … … 1193 1193 </th> 1194 1194 <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]" 1196 1196 <?php 1197 1197 if ( isset( $rcp_options['auto_add_users'] ) ) { … … 1264 1264 </th> 1265 1265 <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]" 1267 1267 <?php 1268 1268 if ( isset( $rcp_options['disable_css'] ) ) { … … 1278 1278 </th> 1279 1279 <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]" 1281 1281 <?php 1282 1282 if ( isset( $rcp_options['enable_terms'] ) ) { … … 1292 1292 </th> 1293 1293 <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'] ) : ''; ?>" /> 1300 1295 <p class="description"><?php _e( 'Label shown next to the agree to terms checkbox.', 'rcp' ); ?></p> 1301 1296 <td> … … 1306 1301 </th> 1307 1302 <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://" /> 1314 1304 <p class="description"><?php _e( 'Optional - the URL to your terms page. If set, the terms label will link to this URL.', 'rcp' ); ?></p> 1315 1305 <td> … … 1320 1310 </th> 1321 1311 <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]" 1323 1313 <?php 1324 1314 if ( isset( $rcp_options['enable_privacy_policy'] ) ) { … … 1334 1324 </th> 1335 1325 <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'] ) : ''; ?>" /> 1342 1327 <p class="description"><?php _e( 'Label shown next to the agree to privacy policy checkbox.', 'rcp' ); ?></p> 1343 1328 <td> … … 1348 1333 </th> 1349 1334 <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://" /> 1356 1336 <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> 1357 1337 <td> … … 1387 1367 <input type="text" id="rcp_settings[recaptcha_public_key]" style="width: 300px;" 1388 1368 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'] ) : ''; ?>" /> 1396 1370 <p class="description"><?php esc_html_e( 'This your own personal reCAPTCHA Site key. Go to', 'rcp' ); ?> <a 1397 1371 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' ); ?> … … 1406 1380 <input type="text" id="rcp_settings[recaptcha_private_key]" style="width: 300px;" 1407 1381 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'] ) : ''; ?>" /> 1415 1383 <p class="description"><?php esc_html_e( 'This your own personal reCAPTCHA Secret key. Go to', 'rcp' ); ?> <a 1416 1384 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 93 93 * Validates the entire registration state 94 94 * 95 * @param array $args 95 * @param array $args Registration state submitted by the registration form. 96 96 * 97 97 * @since 3.0.6 … … 146 146 rcp_setup_registration( $return['level_id'], $return['discount_code'] ); 147 147 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 148 158 /** 149 159 * 100% discount … … 210 220 * Force auto renew on and disable option if this is a free trial. 211 221 */ 212 $customer = rcp_get_customer(); // current customer213 if ( $customer && $customer->has_trialed() ) {214 $return['trial_eligible'] = false;215 }216 217 222 if ( $return['level_has_trial'] && $return['trial_eligible'] ) { 218 223 $return['recurring'] = rcp_gateway_supports( $return['gateway'], 'trial' ); -
restrict-content/tags/4.0.3/core/includes/class-rcp-registration.php
r3636889 r3680051 1 1 <?php 2 3 use RCP\Membership_Level;4 5 2 /** 6 3 * RCP Registration Class … … 13 10 */ 14 11 12 use RCP\Membership_Level; 13 14 /** 15 * Builds and holds the state of a single registration. 16 */ 15 17 class RCP_Registration { 16 18 … … 349 351 } 350 352 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 351 358 if ( empty( $pending_payment_id ) ) { 352 359 return; … … 382 389 $this->recovered_payment = $payment; 383 390 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 */ 385 396 $this->registration_type = $this->recovered_payment->transaction_type; 386 397 387 398 rcp_log( sprintf( 'Using recovered payment #%d for registration. Transaction type: %s.', $this->recovered_payment->id, $this->recovered_payment->transaction_type ) ); 388 399 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; 389 494 } 390 495 -
restrict-content/tags/4.0.3/core/includes/class-restrict-content.php
r3636889 r3680051 27 27 */ 28 28 final class Restrict_Content_Pro { 29 const VERSION = '4.0. 0';29 const VERSION = '4.0.3'; 30 30 31 31 /** -
restrict-content/tags/4.0.3/core/includes/cron-functions.php
r3636889 r3680051 23 23 * @see rcp_check_member_counts() 24 24 * 25 * Daily: Delete abandoned Stripe webhook locks 26 * @see rcp_stripe_cleanup_webhook_locks() 27 * 25 28 * @return void 26 29 */ … … 41 44 if ( ! wp_next_scheduled( 'rcp_mark_abandoned_payments' ) ) { 42 45 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' ); 43 50 } 44 51 } -
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 19 19 wp_clear_scheduled_hook( 'rcp_expired_users_check' ); 20 20 wp_clear_scheduled_hook( 'rcp_send_expiring_soon_notice' ); 21 wp_clear_scheduled_hook( 'rcp_stripe_cleanup_webhook_locks' ); 21 22 } 22 23 register_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 1070 1070 rcp_log( sprintf( 'Processing Stripe %s webhook.', $event->type ) ); 1071 1071 1072 // Set by the invoice branch below for a confirmed subscription renewal. 1073 $is_renewal_invoice = false; 1074 1072 1075 // setup payment data 1073 1076 $payment_data = array( … … 1090 1093 if ( empty( $payment_event->invoice ) ) { 1091 1094 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 ) ); 1093 1096 $payment_data['transaction_id'] = $payment_event->id; 1094 1097 … … 1096 1099 } else { 1097 1100 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 ) ); 1099 1102 $payment_data['transaction_id'] = $payment_event->id; 1100 1103 … … 1103 1106 } 1104 1107 } 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 ); 1105 1174 } 1106 1175 … … 1154 1223 } 1155 1224 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 1157 1234 if ( ! empty( $pending_payment_id ) ) { 1158 1235 -
restrict-content/tags/4.0.3/core/includes/gateways/stripe/functions.php
r3636889 r3680051 385 385 * currencies should not be multiplied so use 1. 386 386 * 387 * @param string $currency 387 * @param string $currency Currency code. Defaults to the store currency. 388 388 * 389 389 * @since 2.5 … … 391 391 */ 392 392 function 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 } 394 400 395 401 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 */ 418 function 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 ); 396 430 } 397 431 … … 873 907 874 908 /** 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 */ 920 function 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 929 add_action( 'wp_ajax_rcp_stripe_generate_payment_nonce', 'rcp_stripe_generate_payment_nonce' ); 930 931 /** 875 932 * Create a setup intent while saving a new billing card. 876 933 * … … 1239 1296 1240 1297 add_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 */ 1308 function 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 */ 1333 function 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 */ 1355 function 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 */ 1369 function 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 */ 1390 function 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 */ 1438 function 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 */ 1481 function 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 */ 1517 function 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 */ 1543 function 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 */ 1566 function 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 */ 1636 function 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 */ 1667 function 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 */ 1700 function rcp_stripe_run_webhook_lock_cleanup(): void { 1701 rcp_stripe_cleanup_webhook_locks(); 1702 } 1703 1704 add_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 */ 1718 function 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 16 16 let $ = jQuery; 17 17 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 */ 18 38 $.ajax( { 19 39 type: 'post', 20 40 dataType: 'json', 21 41 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_nonce27 },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 } 29 49 } ); 30 50 -
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()}));1 function 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 440 440 is_free: $level.attr( 'rel' ) == 0, 441 441 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, 443 446 discount_code: $( '#rcp_discount_code' ).val(), 444 447 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+"®istration_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+"®istration_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 118 118 * Return the symbol for a specific currency 119 119 * 120 * @param bool $currency120 * @param bool|string $currency Currency code. Default false. 121 121 * 122 122 * @since 2.9.5 … … 1163 1163 * Determines if RCP is using a zero-decimal currency. 1164 1164 * 1165 * @param string $currency 1165 * @param string $currency Currency code. Defaults to the store currency. 1166 1166 * 1167 1167 * @access public … … 1171 1171 function rcp_is_zero_decimal_currency( $currency = '' ) { 1172 1172 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() ); 1176 1175 1177 1176 $zero_dec_currencies = array( -
restrict-content/tags/4.0.3/core/includes/registration-functions.php
r3636889 r3680051 1039 1039 } 1040 1040 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 1041 1054 return apply_filters( 'rcp_registration_is_recurring', $auto_renew ); 1042 1055 … … 1775 1788 rcp_log( sprintf( 'Completing registration for customer #%d via payment #%d.', $customer->get_id(), $pending_payment_id ) ); 1776 1789 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 ) ) { 1778 1801 // If this is a brand new membership, activate it. 1779 1802 $membership->activate(); -
restrict-content/tags/4.0.3/legacy/restrictcontent.php
r3636889 r3680051 22 22 23 23 if ( ! defined( 'RC_PLUGIN_VERSION' ) ) { 24 define( 'RC_PLUGIN_VERSION', '4.0. 2' );24 define( 'RC_PLUGIN_VERSION', '4.0.3' ); 25 25 } 26 26 -
restrict-content/tags/4.0.3/package.json
r3636889 r3680051 1 1 { 2 2 "name": "restrict-content", 3 "version": "4.0. 2",3 "version": "4.0.3", 4 4 "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.", 5 5 "homepage": "https://restrictcontentpro.com/", -
restrict-content/tags/4.0.3/readme.txt
r3636889 r3680051 7 7 Requires PHP: 7.4 8 8 Tested up to: 6.9 9 Stable tag: 4.0. 29 Stable tag: 4.0.3 10 10 11 11 Kadence Memberships is a powerful WordPress membership plugin that gives you full control over who can and cannot view content on your WordPress site. … … 258 258 == Changelog == 259 259 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 260 268 = 4.0.2 = 261 269 * New: Added Chinese Yuan (元) to the list of available currencies. -
restrict-content/tags/4.0.3/restrictcontent.php
r3636889 r3680051 4 4 * Plugin URI: https://restrictcontentpro.com 5 5 * 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. 26 * Version: 4.0.3 7 7 * Author: Kadence 8 8 * Author URI: https://www.kadencewp.com/ … … 19 19 define('RCP_ROOT', plugin_dir_path(__FILE__)); 20 20 define('RCP_WEB_ROOT', plugin_dir_url(__FILE__)); 21 define('RCF_VERSION', '4.0. 2');21 define('RCF_VERSION', '4.0.3'); 22 22 23 23 // Load Strauss autoload. … … 29 29 } 30 30 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. 33 spl_autoload_register( 'rcp_autoload' ); 33 34 34 35 use RCP\StellarWP\Telemetry\Config; 35 36 use RCP\StellarWP\Telemetry\Core as Telemetry; 36 37 use 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 */ 47 function 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 } 37 61 38 62 $rc_options = get_option('rc_settings'); -
restrict-content/trunk/readme.txt
r3636920 r3680051 7 7 Requires PHP: 7.4 8 8 Tested up to: 6.9 9 Stable tag: 4.0. 29 Stable tag: 4.0.3 10 10 11 11 Kadence Memberships is a powerful WordPress membership plugin that gives you full control over who can and cannot view content on your WordPress site. … … 258 258 == Changelog == 259 259 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 260 268 = 4.0.2 = 261 269 * New: Added Chinese Yuan (元) to the list of available currencies.
Note:
See TracChangeset
for help on using the changeset viewer.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)