Plugin Directory

Changeset 3435420


Ignore:
Timestamp:
01/08/2026 06:32:15 PM (6 weeks ago)
Author:
arstudios
Message:

Constellation Client Portal release 2.6.0.

Location:
constellation-client-portal
Files:
134 added
1 deleted
6 edited

Legend:

Unmodified
Added
Removed
  • constellation-client-portal/trunk/README.txt

    r3412221 r3435420  
    55Requires at least: 6.0.0
    66Tested up to: 6.9
    7 Stable tag: 2.5.1
     7Stable tag: 2.6.0
    88Requires PHP: 7.4
    99License: GPLv3 or later
     
    168168
    169169= Can I automatically change an invoice status to paid when an order is paid in WooCommerce? =
    170 Yes. The Pro version allows you to enable functionality that automatically changes an invoice status to paid when it is paid in WooCommerce, or when the WooCommerce order status changes to "commpleted" (depending on your preference).
     170Yes. The Pro version allows you to enable functionality that automatically changes an invoice status to paid when it is paid in WooCommerce, or when the WooCommerce order status changes to "completed" (depending on your preference).
    171171
    172172= Can I restrict access to specific documents and pages for specific users or roles? =
     
    210210
    211211== Changelog ==
     212= 2.6.0 (Pro) - 2026-1-8 =
     213* Fix: Fixed issue where the accp-item-container link color css rule overrode individual a.accp-pay-link text color within invoice list items.
     214* Update: Added pro plugin review request notice functionality.
     215
     216= 2.6.0 (Core) - 2026-1-8 =
     217* Update: Added core plugin review request notice functionality.
     218
    212219= 2.5.1 (Pro) - 2025-12-5 =
    213220* Update: All core updates.
     
    216223= 2.5.1 (Core) - 2025-12-5 =
    217224* Compatibility: Tested the plugin with WP 6.9.
    218 
    219225* Update: Updated the file and invoice reassign functionality to allow the posts to be reassigned to another company even if there is no file attached to the post.
    220226
  • constellation-client-portal/trunk/admin/class-ars-constellation-client-portal-admin.php

    r3412221 r3435420  
    38183818        return wp_kses_post( $html );
    38193819    }
    3820 } //End ARS_Constellation_Client_Portal_Admin Class
     3820
     3821    /**
     3822     * Display review request admin notice.
     3823     * Shows a dismissible notice asking users to leave a 5-star review.
     3824     *
     3825     * @since 2.6.0
     3826     * @return void
     3827     */
     3828    public function display_review_notice() {
     3829
     3830        if ( ! is_user_logged_in() || ! current_user_can( 'manage_options' ) || ! is_admin() ) {
     3831            return;
     3832        }
     3833
     3834        /**
     3835         *  Check if the notice has been dismissed.
     3836         */
     3837        if ( get_option( 'accp_review_notice_dismissed' ) ) {
     3838            return;
     3839        }
     3840
     3841        /**
     3842         * Check if plugin has been active for at least 2 months.
     3843         *
     3844         * Also make this backwards compatible for installs that
     3845         * were activated before an activation time option was added.
     3846         */
     3847        $time_delay = 60 * 60 * 24 * 60; // Two months.
     3848
     3849        /**
     3850         * If the activation time option is not set, we assume
     3851         * this a legacy version of the plugin.  In that case,
     3852         * we'll just set the activation time to two months ago.
     3853         */
     3854        if ( ! get_option( 'accp_plugin_activation_time' ) ) {
     3855            update_option( 'accp_plugin_activation_time', time() - $time_delay );
     3856        }
     3857
     3858        $activation_time = get_option( 'accp_plugin_activation_time' );
     3859
     3860        if ( ! $activation_time || ( time() - intval( $activation_time ) ) < $time_delay ) {
     3861            return;
     3862        }
     3863
     3864        /**
     3865         * Only show once per week.
     3866         */
     3867        $last_shown = get_option( 'accp_review_notice_last_shown' );
     3868
     3869        if ( $last_shown && ( time() - intval( $last_shown ) ) < WEEK_IN_SECONDS ) {
     3870            return;
     3871        }
     3872
     3873        /**
     3874         * Update the last shown timestamp.
     3875         */
     3876        update_option( 'accp_review_notice_last_shown', time() );
     3877
     3878        $review_url = $this->get_plugin_review_link();
     3879        $nonce      = wp_create_nonce( 'accp_dismiss_review_nonce' );
     3880        ?>
     3881        <div class="notice notice-info is-dismissible accp-review-notice" data-notice="accp_review" data-nonce="<?php echo esc_attr( $nonce ); ?>">
     3882            <p>
     3883                <strong><?php esc_html_e( 'Love Constellation Client Portal?', 'constellation-client-portal' ); ?></strong><br>
     3884                <?php
     3885                printf(
     3886                    wp_kses_post(
     3887                        /* translators: %s is the plugin review URL on WordPress.org. */
     3888                        __( 'If you have found Constellation Client Portal useful, we\'d be grateful if you could take a moment to <a href="%s" target="_blank">leave a 5-star review</a>. Your feedback helps us improve the plugin and helps others discover it.  We appreciate your support!', 'constellation-client-portal' )
     3889                    ),
     3890                    esc_url( $review_url )
     3891                );
     3892                ?>
     3893            </p>
     3894        </div>
     3895        <?php
     3896    }
     3897
     3898    /**
     3899     * Handle the dismissal of the review notice via AJAX.
     3900     *
     3901     * @since 2.6.0
     3902     * @return void
     3903     */
     3904    public function handle_dismiss_review_notice() {
     3905
     3906        /**
     3907         * Verify nonce.
     3908         */
     3909        if ( ! isset( $_POST['nonce'] ) || ! wp_verify_nonce( sanitize_text_field( wp_unslash( $_POST['nonce'] ) ), 'accp_dismiss_review_nonce' ) ) {
     3910
     3911            wp_die();
     3912        }
     3913
     3914        if ( ! is_user_logged_in() || ! current_user_can( 'manage_options' ) || ! is_admin() ) {
     3915            wp_die();
     3916        }
     3917
     3918        /**
     3919         * Mark the notice as dismissed.
     3920         */
     3921        update_option( 'accp_review_notice_dismissed', true );
     3922
     3923        wp_die();
     3924    }
     3925
     3926
     3927    /**
     3928     * Get plugin review link.
     3929     *
     3930     * @return string $review_link - The plugin review link.
     3931     */
     3932    public function get_plugin_review_link() {
     3933
     3934        $is_pro      = $this->is_pro;
     3935        $review_link = 'https://wordpress.org/support/plugin/constellation-client-portal/reviews/';
     3936
     3937        if ( $is_pro ) {
     3938
     3939            $review_link = 'https://constellationclientportal.com/wp-login.php?ars_review_redirect_to=https%3A%2F%2Fconstellationclientportal.com%2Fmy-account%2Fars-myacct-product-reviews%2F';
     3940
     3941            return esc_url( $review_link );
     3942        }
     3943
     3944        return esc_url( $review_link );
     3945    }
     3946} //End ARS_Constellation_Client_Portal_Admin Class.
  • constellation-client-portal/trunk/admin/js/ars-constellation-client-portal-admin.js

    r3288605 r3435420  
    3434       
    3535        accp_save_bulk_edit_post_data();
     36
     37        accp_dismiss_plugin_review_request();
    3638
    3739    }); // End document ready.
     
    10161018    }
    10171019
     1020
     1021    function accp_dismiss_plugin_review_request(){     
     1022
     1023        if ( $('.accp-review-notice').length === 0 ) {
     1024            return;
     1025        }
     1026
     1027        $('body.wp-admin').click('.accp-review-notice .notice-dismiss', function () {
     1028
     1029            var nonce = $('.accp-review-notice').attr('data-nonce');
     1030
     1031            $.ajax({
     1032                type: 'POST',               
     1033                url: ajaxurl,
     1034                cache: false,                               
     1035                data: {
     1036                    action:'accp_dismiss_review_notice',                   
     1037                    nonce: nonce                                                   
     1038                },
     1039                success: function(data){                       
     1040
     1041                },
     1042                error: function(jqXHR, textStatus, errorThrown){
     1043                    console.log(textStatus, errorThrown);
     1044                    console.log(jqXHR);
     1045                },         
     1046                               
     1047            });     
     1048
     1049        });
     1050
     1051    }   
     1052
    10181053})( jQuery );
  • constellation-client-portal/trunk/ars-constellation-client-portal.php

    r3412221 r3435420  
    77 * Plugin URI:        https://adrianrodriguezstudios.com/constellation-client-portal/
    88 * Description:       Create private pages for each of your clients, post private files, and protect your client files from unauthorized users and search engines.  <strong>Important:</strong> All Site-level File Protection features will cease to function if the plugin is disabled or uninstalled.
    9  * Version:           2.5.1
     9 * Version:           2.6.0
    1010 * Author:            ARS
    1111 * Author URI:        https://adrianrodriguezstudios.com
     
    5757     */
    5858    define('ACCP_PLUGIN_NAME', 'ARS_CONSTELLATION_CLIENT_PORTAL');
    59     define('ACCP_PLUGIN_VERSION', '2.5.1'); // Change the version in the header as well.
     59    define('ACCP_PLUGIN_VERSION', '2.6.0'); // Change the version in the header as well.
    6060    define( ACCP_PLUGIN_NAME, ACCP_PLUGIN_VERSION );
    6161    define( 'ACCP_PLUGIN_FILE_NAME', __FILE__ );
  • constellation-client-portal/trunk/includes/class-ars-constellation-client-portal-activator.php

    r3088740 r3435420  
    3535         */
    3636        update_option( 'accp_plugin_activation', 'just-activated' );
     37
     38        /**
     39         * Store the plugin activation time for review notice tracking.
     40         */
     41        if ( ! get_option( 'accp_plugin_activation_time' ) ) {
     42            update_option( 'accp_plugin_activation_time', time() );
     43        }
    3744
    3845        /**
  • constellation-client-portal/trunk/includes/class-ars-constellation-client-portal.php

    r3363221 r3435420  
    201201
    202202        /**
     203         * Display plugin review request notice.
     204         */
     205        $this->loader->add_action( 'admin_notices', $plugin_admin, 'display_review_notice' );
     206        $this->loader->add_action( 'wp_ajax_accp_dismiss_review_notice', $plugin_admin, 'handle_dismiss_review_notice' );
     207
     208        /**
    203209         * WP user list.
    204210         */
Note: See TracChangeset for help on using the changeset viewer.