PluginProbe
Subscriptions for WooCommerce with Stripe Recurring Payments / 2.0.0
Subscriptions for WooCommerce with Stripe Recurring Payments v2.0.0
2.0.0 1.11.2 1.11.1 1.11.0 1.10.9 1.10.8 1.10.7 1.10.6 1.10.5 1.10.4 1.10.3 1.10.2 1.10.1 1.10.0 1.9.6 1.9.5 trunk 1.3.0 1.3.1 1.3.2 1.4.0 1.4.1 1.4.2 1.5.0 1.5.1 All 61 releases
← All changes | includes/Admin/Integrations.php +33 -26 1.10.22.0.0 View file →
@@ -99,8 +99,12 @@
99 99 'nonce' => wp_create_nonce( 'subscrpt_integration_install_nonce' ),
100 100 'ajaxUrl' => admin_url( 'admin-ajax.php' ),
101 101 )
102 102 );
103 +
104 + // Browser-side filter rail. Enqueued on this hook, not in the render
105 + // callback, so it always loads.
106 + wp_enqueue_script( 'subscrpt-integrations-filter', SUBSCRPT_ASSETS . '/js/admin/integrations-filter.js', [], SUBSCRPT_VERSION, true );
103 107 }
104 108
105 109 /**
106 110 * Handle AJAX request for integrations.
@@ -237,9 +241,9 @@
237 241 ],
238 242 'stripe' => [
239 243 'title' => 'Stripe',
240 244 'description' => 'Process subscription payments securely with Stripe.',
241 - 'icon_url' => 'https://ps.w.org/woocommerce-gateway-stripe/assets/icon-256x256.png',
245 + 'icon_url' => SUBSCRPT_ASSETS . '/images/integrations/stripe.png',
242 246 'type' => 'payment_gateway',
243 247 'is_installed' => class_exists( 'WC_Stripe' ),
244 248 'is_active' => self::is_gateway_enabled( 'stripe' ),
245 249 'supports_recurring' => true,
@@ -298,9 +302,8 @@
298 302 'description' => 'Pay for subscriptions with Mollie Payments for WooCommerce.',
299 303 'icon_url' => SUBSCRPT_ASSETS . '/images/integrations/mollie.png',
300 304 'type' => 'payment_gateway',
301 305 'is_pro' => true,
302 - 'is_beta' => true,
303 306 'is_installed' => class_exists( 'Mollie\WooCommerce\Activation\ActivationModule' ),
304 307 'is_active' => self::is_gateway_enabled( 'mollie_wc_gateway', true ),
305 308 'supports_recurring' => true,
306 309 'actions' => [
@@ -318,9 +321,9 @@
318 321 ],
319 322 [
320 323 'label' => 'More Details',
321 324 'type' => 'external_link',
322 - 'url' => 'https://docs.converslabs.com/en/wpsubscription-payment-with-mollie',
325 + 'url' => 'https://docs.wpsubscription.co/en/wpsubscription-payment-with-mollie?utm_source=plugin&utm_medium=admin&utm_campaign=docs',
323 326 ],
324 327 ],
325 328 ],
326 329 'razorpay' => [
@@ -348,9 +351,9 @@
348 351 ],
349 352 [
350 353 'label' => 'More Details',
351 354 'type' => 'external_link',
352 - 'url' => 'https://docs.converslabs.com/en/wpsubscription-payment-with-razorpay',
355 + 'url' => 'https://docs.wpsubscription.co/en/wpsubscription-payment-with-razorpay?utm_source=plugin&utm_medium=admin&utm_campaign=docs',
353 356 ],
354 357 ],
355 358 ],
356 359 'xendit' => [
@@ -378,9 +381,9 @@
378 381 ],
379 382 [
380 383 'label' => 'More Details',
381 384 'type' => 'external_link',
382 - 'url' => 'https://docs.converslabs.com/en/wpsubscription-payment-with-xendit',
385 + 'url' => 'https://docs.wpsubscription.co/en/wpsubscription-payment-with-xendit?utm_source=plugin&utm_medium=admin&utm_campaign=docs',
383 386 ],
384 387 ],
385 388 ],
386 389 ];
@@ -390,9 +393,9 @@
390 393 // LMS.
391 394 'tutor_lms' => [
392 395 'title' => 'Tutor LMS',
393 396 'description' => 'Restrict course access based on subscription status. Enroll and unenroll students automatically.',
394 - 'icon_url' => 'https://ps.w.org/tutor/assets/icon-256x256.gif',
397 + 'icon_url' => SUBSCRPT_ASSETS . '/images/integrations/tutor-lms.jpeg',
395 398 'type' => 'third_party',
396 399 'is_pro' => true,
397 400 'category' => 'lms',
398 401 'is_installed' => is_plugin_active( 'tutor/tutor.php' ) && class_exists( 'TUTOR\Tutor' ),
@@ -406,9 +409,9 @@
406 409 ],
407 410 [
408 411 'label' => __( 'Learn More', 'subscription' ),
409 412 'type' => 'external_link',
410 - 'url' => 'https://docs.converslabs.com/en/wpsubscription-tutor-lms',
413 + 'url' => 'https://docs.wpsubscription.co/en/wpsubscription-tutor-lms?utm_source=plugin&utm_medium=admin&utm_campaign=docs',
411 414 ],
412 415 ],
413 416 ],
414 417 'learnpress' => [
@@ -413,9 +416,9 @@
413 416 ],
414 417 'learnpress' => [
415 418 'title' => 'LearnPress',
416 419 'description' => 'Connect subscriptions with LearnPress courses. Enroll users automatically when subscriptions are active.',
417 - 'icon_url' => 'https://ps.w.org/learnpress/assets/icon-256x256.gif',
420 + 'icon_url' => SUBSCRPT_ASSETS . '/images/integrations/learnpress.png',
418 421 'type' => 'third_party',
419 422 'is_pro' => true,
420 423 'category' => 'lms',
421 424 'is_installed' => is_plugin_active( 'learnpress/learnpress.php' ) && class_exists( 'LearnPress' ),
@@ -429,9 +432,9 @@
429 432 ],
430 433 [
431 434 'label' => __( 'Learn More', 'subscription' ),
432 435 'type' => 'external_link',
433 - 'url' => 'https://docs.converslabs.com/en/wpsubscription-learnpress-lms',
436 + 'url' => 'https://docs.wpsubscription.co/en/wpsubscription-learnpress-lms?utm_source=plugin&utm_medium=admin&utm_campaign=docs',
434 437 ],
435 438 ],
436 439 ],
437 440 'learndash' => [
@@ -452,9 +455,9 @@
452 455 ],
453 456 [
454 457 'label' => __( 'Learn More', 'subscription' ),
455 458 'type' => 'external_link',
456 - 'url' => 'https://docs.converslabs.com/en/wpsubscription-learndash-lms',
459 + 'url' => 'https://docs.wpsubscription.co/en/wpsubscription-learndash-lms?utm_source=plugin&utm_medium=admin&utm_campaign=docs',
457 460 ],
458 461 ],
459 462 ],
460 463 // CRM.
@@ -460,9 +463,9 @@
460 463 // CRM.
461 464 'fluentcrm' => [
462 465 'title' => 'FluentCRM',
463 466 'description' => 'Trigger email sequences and manage contacts based on subscription events and status changes.',
464 - 'icon_url' => 'https://ps.w.org/fluent-crm/assets/icon-256x256.png',
467 + 'icon_url' => SUBSCRPT_ASSETS . '/images/integrations/fluentcrm.png',
465 468 'type' => 'third_party',
466 469 'is_pro' => true,
467 470 'category' => 'crm',
468 471 'is_installed' => class_exists( 'FluentCrm\App\Services\Funnel\BaseTrigger' ),
@@ -476,9 +479,9 @@
476 479 ],
477 480 [
478 481 'label' => __( 'Learn More', 'subscription' ),
479 482 'type' => 'external_link',
480 - 'url' => 'https://docs.converslabs.com/en/wpsubscription-fluent-crm',
483 + 'url' => 'https://docs.wpsubscription.co/en/wpsubscription-fluent-crm?utm_source=plugin&utm_medium=admin&utm_campaign=docs',
481 484 ],
482 485 ],
483 486 ],
484 487 // Automation.
@@ -484,9 +487,9 @@
484 487 // Automation.
485 488 'automatorwp' => [
486 489 'title' => 'AutomatorWP',
487 490 'description' => 'Build powerful automations triggered by subscription events without writing any code.',
488 - 'icon_url' => 'https://ps.w.org/automatorwp/assets/icon-256x256.png',
491 + 'icon_url' => SUBSCRPT_ASSETS . '/images/integrations/automatorwp.png',
489 492 'type' => 'third_party',
490 493 'is_pro' => true,
491 494 'category' => 'automation',
492 495 'is_installed' => is_plugin_active( 'automatorwp/automatorwp.php' ) && class_exists( 'AutomatorWP' ),
@@ -500,9 +503,9 @@
500 503 ],
501 504 // [
502 505 // 'label' => __( 'Learn More', 'subscription' ),
503 506 // 'type' => 'external_link',
504 - // 'url' => 'https://docs.converslabs.com/en/',
507 + // 'url' => 'https://docs.wpsubscription.co/en/',
505 508 // ],
506 509 ],
507 510 ],
508 511 'wpfusion' => [
@@ -507,9 +510,9 @@
507 510 ],
508 511 'wpfusion' => [
509 512 'title' => 'WP Fusion',
510 513 'description' => 'Sync subscription data with your CRM and marketing platforms through WP Fusion.',
511 - 'icon_url' => 'https://ps.w.org/wp-fusion-lite/assets/icon-256x256.png',
514 + 'icon_url' => SUBSCRPT_ASSETS . '/images/integrations/wp-fusion.png',
512 515 'type' => 'third_party',
513 516 'is_pro' => true,
514 517 'category' => 'automation',
515 518 'is_installed' => class_exists( 'WPF_Integrations_Base' ),
@@ -523,9 +526,9 @@
523 526 ],
524 527 // [
525 528 // 'label' => __( 'Learn More', 'subscription' ),
526 529 // 'type' => 'external_link',
527 - // 'url' => 'https://docs.converslabs.com/en/',
530 + // 'url' => 'https://docs.wpsubscription.co/en/',
528 531 // ],
529 532 ],
530 533 ],
531 534 // Email Marketing.
@@ -531,9 +534,9 @@
531 534 // Email Marketing.
532 535 'mailpoet' => [
533 536 'title' => 'MailPoet',
534 537 'description' => 'Add subscribers to MailPoet lists and trigger email automations based on subscription lifecycle events.',
535 - 'icon_url' => 'https://ps.w.org/mailpoet/assets/icon-256x256.png',
538 + 'icon_url' => SUBSCRPT_ASSETS . '/images/integrations/mailpoet.png',
536 539 'type' => 'third_party',
537 540 'is_pro' => true,
538 541 'category' => 'email',
539 542 'is_installed' => is_plugin_active( 'mailpoet/mailpoet.php' ) || is_plugin_active( 'mailpoet-premium/mailpoet-premium.php' ),
@@ -547,9 +550,9 @@
547 550 ],
548 551 [
549 552 'label' => __( 'Learn More', 'subscription' ),
550 553 'type' => 'external_link',
551 - 'url' => 'https://docs.converslabs.com/en/wpsubscription-mailpoet',
554 + 'url' => 'https://docs.wpsubscription.co/en/wpsubscription-mailpoet?utm_source=plugin&utm_medium=admin&utm_campaign=docs',
552 555 ],
553 556 ],
554 557 ],
555 558 // License Management.
@@ -571,9 +574,9 @@
571 574 ],
572 575 // [
573 576 // 'label' => __( 'Learn More', 'subscription' ),
574 577 // 'type' => 'external_link',
575 - // 'url' => 'https://docs.converslabs.com/en/',
578 + // 'url' => 'https://docs.wpsubscription.co/en/',
576 579 // ],
577 580 ],
578 581 ],
579 582 'license_mgr' => [
@@ -578,9 +581,9 @@
578 581 ],
579 582 'license_mgr' => [
580 583 'title' => 'License Manager for WooCommerce',
581 584 'description' => 'Generate and manage software license keys that are automatically tied to active subscriptions.',
582 - 'icon_url' => 'https://ps.w.org/license-manager-for-woocommerce/assets/icon-256x256.gif',
585 + 'icon_url' => SUBSCRPT_ASSETS . '/images/integrations/license-manager.png',
583 586 'type' => 'third_party',
584 587 'is_pro' => true,
585 588 'category' => 'license',
586 589 'is_installed' => is_plugin_active( 'license-manager-for-woocommerce/license-manager-for-woocommerce.php' ) && class_exists( 'LicenseManagerForWooCommerce\Models\Resources\License' ),
@@ -594,9 +597,9 @@
594 597 ],
595 598 // [
596 599 // 'label' => __( 'Learn More', 'subscription' ),
597 600 // 'type' => 'external_link',
598 - // 'url' => 'https://docs.converslabs.com/en/',
601 + // 'url' => 'https://docs.wpsubscription.co/en/',
599 602 // ],
600 603 ],
601 604 ],
602 605 ];
@@ -619,9 +622,10 @@
619 622 foreach ( $integrations as $integration ) {
620 623 $is_installed = $integration['is_installed'] ?? false;
621 624 $is_active = $integration['is_active'] ?? false;
622 625
623 - $cleaned_actions = [];
626 + $cleaned_actions = [];
627 + $shown_install_url = null;
624 628
625 629 foreach ( $integration['actions'] as $integration_action ) {
626 630 $action_tag = $integration_action['action'] ?? null;
627 631
@@ -627,8 +631,9 @@
627 631
628 632 if ( 'install' === $action_tag ) {
629 633 if ( ! $is_installed ) {
630 634 $cleaned_actions[] = $integration_action;
635 + $shown_install_url = $integration_action['url'] ?? null;
631 636 }
632 637 continue;
633 638 }
634 639 if ( 'uninstall' === $action_tag ) {
@@ -649,9 +654,14 @@
649 654 }
650 655 continue;
651 656 }
652 657
653 - // Default.
658 + // Default. Skip a "More Details"-style link that just repeats the
659 + // install/"Get X" link already shown (e.g. Paddle), so the card
660 + // does not carry the same URL twice.
661 + if ( null !== $shown_install_url && ( $integration_action['url'] ?? null ) === $shown_install_url ) {
662 + continue;
663 + }
654 664 $cleaned_actions[] = $integration_action;
655 665 }
656 666
657 667 // Overwrite.
@@ -667,11 +677,8 @@
667 677 */
668 678 public function render_integrations_page() {
669 679 $integrations = $this->integrations;
670 680 $integrations = $this->filter_integration_actions( $integrations );
671 -
672 - // Integrations styles.
673 - // wp_enqueue_style( 'wp-subs-integration-settings', SUBSCRPT_ASSETS . '/css/integration_settings.css', [], SUBSCRPT_VERSION, 'all' );
674 681
675 682 $menu = new \SpringDevs\Subscription\Admin\Menu();
676 683 $menu->render_admin_header( __( 'Integrations', 'subscription' ) );
677 684 include 'views/integrations.php';