Plugin Directory

Changeset 3485069


Ignore:
Timestamp:
03/17/2026 07:51:44 PM (2 weeks ago)
Author:
grocerslist
Message:

Release v1.22.0

Location:
grocerslist
Files:
209 added
5 edited

Legend:

Unmodified
Added
Removed
  • grocerslist/trunk/README.md

    r3483917 r3485069  
    44Author: Grocers List, Engineering
    55Tested up to: 6.8
    6 Stable tag: 1.21.0
     6Stable tag: 1.22.0
    77Requires PHP: 7.0
    88License: GPLv3
     
    9090#### - 03/16/2026 - 1.21.0 - Fix for body classes not being merged properly
    9191
     92#### - 03/17/2026 - 1.22.0 - Improvements for signup and checkout experiences
     93
    9294### Resources:
    9395
  • grocerslist/trunk/grocerslist.php

    r3483917 r3485069  
    77Requires PHP: 7.0
    88Tested up to: 6.8
    9 Version: 1.21.0
    10 Stable tag: 1.21.0
     9Version: 1.22.0
     10Stable tag: 1.22.0
    1111Author: Grocers List Engineering
    1212License: GPLv3
     
    1818if (!defined('ABSPATH')) exit;
    1919
    20 define('GROCERS_LIST_VERSION', '1.21.0');
     20define('GROCERS_LIST_VERSION', '1.22.0');
    2121define('GROCERS_LIST_PLUGIN_FILE', __FILE__);
    2222define('GROCERS_LIST_PLUGIN_DIR', __DIR__);
  • grocerslist/trunk/includes/Frontend/PublicAjaxController.php

    r3481252 r3485069  
    7777
    7878        $jwt = isset($_POST['jwt']) ? sanitize_text_field(wp_unslash($_POST['jwt'])) : '';
     79        $updateWpUser = isset($_POST['updateWpUser']) ? sanitize_text_field(wp_unslash($_POST['updateWpUser'])) : '';
    7980
    8081        $post_gating_options = $this->fetchPostGatingOptions();
     
    8687        $response = ApiClient::getInitMemberships($api_key, $jwt, $gated);
    8788        $creatorSettings = $this->creatorSettingsFetcher->getCreatorSettings();
    88         if ($this->memberService->shouldUpdateMemberData($creatorSettings->creatorAccountId)) {
     89        if ($this->memberService->shouldUpdateMemberData($creatorSettings->creatorAccountId, $updateWpUser)) {
    8990            $redirectUrl = wp_get_referer();
    9091            $followerResponse = ApiClient::checkFollowerMembershipStatus($api_key, $jwt, $redirectUrl);
     
    150151        $api_key = PluginSettings::getApiKey();
    151152
    152         $response = ApiClient::signupFollower($api_key, $email, $password, $url);
    153 
    154         ApiClient::passResponseCode($response);
     153        $signupResponse = ApiClient::signupFollower($api_key, $email, $password, $url);
     154
     155        if (!is_wp_error($signupResponse)) {
     156            $signupStatus = wp_remote_retrieve_response_code($signupResponse);
     157            if ($signupStatus >= 200 && $signupStatus < 300) {
     158                $redirectUrl = wp_get_referer();
     159                $response = ApiClient::loginFollower($api_key, $email, $password, $redirectUrl);
     160
     161                // Attempt to create or update a WP subscriber with metadata when API call succeeds
     162                if (!is_wp_error($response)) {
     163                    $status = wp_remote_retrieve_response_code($response);
     164                    $_body = wp_remote_retrieve_body($response);
     165                    $body = is_string($_body) ? json_decode($_body, true) : $_body;
     166
     167
     168                    if ($status >= 200 && $status < 300 && is_array($body)) {
     169                        $follower_account = isset($body['followerAccount']) ? $body['followerAccount'] : '';
     170                        $resp_email = isset($follower_account['email']) ? sanitize_email($follower_account['email']) : '';
     171                        $subscription_status = isset($follower_account['subscriptionStatus']) ? sanitize_text_field($follower_account['subscriptionStatus']) : '';
     172                        $is_paid_member = isset($follower_account['isPaidMember']) ? rest_sanitize_boolean($follower_account['isPaidMember']) : '';
     173                        $is_past_due = isset($follower_account['isPastDue']) ? rest_sanitize_boolean($follower_account['isPastDue']) : '';
     174                        $subscription_management_link = isset($follower_account['subscriptionManagementLink']) ? sanitize_text_field($follower_account['subscriptionManagementLink']) : '';
     175
     176                        $creatorSettings = $this->creatorSettingsFetcher->getCreatorSettings();
     177                        $this->memberService->createOrUpdateMember($resp_email, $subscription_status, $is_paid_member, $is_past_due, $subscription_management_link, $creatorSettings->creatorAccountId);
     178                    }
     179                }
     180            }
     181        }
     182
     183        ApiClient::passResponseCode($signupResponse);
    155184    }
    156185
     
    274303        //  - switch "?failure= for something less likely to collide with 3rd party params
    275304        //      like ?gl-failure= or don't use url params
    276         $redirectUrl = wp_get_referer();
     305        $referer_url = wp_get_referer();
     306        $redirectUrl = add_query_arg(array('gl-update-wp-user' => 'true'), $referer_url);
    277307        $response = ApiClient::checkoutFollower($api_key, $jwt, $redirectUrl);
    278308
  • grocerslist/trunk/includes/Service/MemberService.php

    r3482124 r3485069  
    126126    }
    127127
    128     public function shouldUpdateMemberData(string $creator_id = null) {
     128    public function shouldUpdateMemberData(string $creator_id = null, bool $forceUpdate = false) {
     129        if ($forceUpdate) {
     130            return true;
     131        }
     132
    129133        if (is_user_logged_in()) {
    130134            list(, , , , , $last_updated) = $this->getMemberData($creator_id);
  • grocerslist/trunk/vendor/composer/installed.php

    r3483917 r3485069  
    44        'pretty_version' => 'dev-master',
    55        'version' => 'dev-master',
    6         'reference' => 'dde0dd187fba94bd2baf22a021777d5d085a305b',
     6        'reference' => '6e8ec271d3f749eefc4f63ab28bdb66c909a7997',
    77        'type' => 'library',
    88        'install_path' => __DIR__ . '/../../',
     
    1414            'pretty_version' => 'dev-master',
    1515            'version' => 'dev-master',
    16             'reference' => 'dde0dd187fba94bd2baf22a021777d5d085a305b',
     16            'reference' => '6e8ec271d3f749eefc4f63ab28bdb66c909a7997',
    1717            'type' => 'library',
    1818            'install_path' => __DIR__ . '/../../',
Note: See TracChangeset for help on using the changeset viewer.