Plugin Directory

Changeset 3693559


Ignore:
Timestamp:
09/13/2026 10:40:29 AM (6 weeks ago)
Author:
vsamtani
Message:

Release version 1.0.8 — fix Stripe checkout for non-EU buyers and block duplicate charges on already-licensed sites

Location:
nvoos-content-graph
Files:
14 edited
1 copied

Legend:

Unmodified
Added
Removed
  • nvoos-content-graph/tags/1.0.8/assets/js/content-graph-commerce.js

    r3693446 r3693559  
    833833                                        renderDiagnoseLink();
    834834                                }
     835                                return;
     836                        }
     837
     838                        // Already-licensed site: render the recorded license instead
     839                        // of a fresh payment form — a second charge must never be
     840                        // possible from this screen.
     841                        if ( result.data && result.data.already_licensed ) {
     842                                renderSuccess( {
     843                                        license_key: result.data.license_key,
     844                                        message: result.data.message,
     845                                        bundle_active: result.data.bundle_active,
     846                                        installed: true,
     847                                        activated: true,
     848                                        skip_steps: true
     849                                } );
    835850                                return;
    836851                        }
    … …  
    891906                                // The plugin collects the buyer email, country, and EU billing
    892907                                // address itself (receipt + VAT records); keep the Stripe iframe
    893                                 // from asking for them again.
     908                                // from asking for them again. The address uses 'auto' rather
     909                                // than 'never': Stripe demands a country in confirmPayment()
     910                                // whenever 'never' is used, but this plugin only knows the
     911                                // country for EU buyers. With 'auto' the element collects the
     912                                // address only when a payment method (or Stripe tax) needs it,
     913                                // and EU buyers still pass theirs via payment_method_data.
    894914                                paymentElement = elements.create( 'payment', {
    895                                         fields: { billingDetails: { email: 'never', address: 'never' } }
     915                                        fields: { billingDetails: { email: 'never', address: 'auto' } }
    896916                                } );
    897917                                paymentElement.mount( payBox );
    … …  
    11261146                // "What happens next" checklist — post-purchase clarity sets
    11271147                // expectations (receipt, install, license, roadmap) and reduces
    1128                 // buyer's-remorse support contacts.
    1129                 var steps = el( 'div', 'nvoos-cg-success-steps' );
    1130                 var stepsTitle = i18n.success_steps_title || '';
    1131                 if ( stepsTitle ) {
    1132                         steps.appendChild( el( 'h4', 'nvoos-cg-success-steps-title', stepsTitle ) );
    1133                 }
    1134                 var stepsList = el( 'ol', 'nvoos-cg-success-steps-list' );
    1135                 var stepItems = [
    1136                         i18n.success_step_receipt || '',
    1137                         i18n.success_step_installed || '',
    1138                         i18n.success_step_license || ''
    1139                 ];
    1140                 for ( var i = 0; i < stepItems.length; i++ ) {
    1141                         if ( ! stepItems[ i ] ) {
    1142                                 continue;
    1143                         }
    1144                         stepsList.appendChild( el( 'li', '', stepItems[ i ] ) );
    1145                 }
    1146                 var roadmapStep = i18n.success_step_roadmap || '';
    1147                 var changelogUrl = String( config.changelog_url || '' ).trim();
    1148                 if ( roadmapStep || ( changelogUrl && /^https?:\/\//i.test( changelogUrl ) ) ) {
    1149                         var last = el( 'li', '', roadmapStep );
    1150                         if ( changelogUrl && /^https?:\/\//i.test( changelogUrl ) ) {
    1151                                 last.appendChild( document.createTextNode( ' ' ) );
    1152                                 last.appendChild( linkEl( 'nvoos-cg-changelog-link', i18n.changelog_link || 'View changelog', changelogUrl ) );
    1153                         }
    1154                         stepsList.appendChild( last );
    1155                 }
    1156                 steps.appendChild( stepsList );
    1157                 payBox.appendChild( steps );
     1148                // buyer's-remorse support contacts. Skipped for the
     1149                // already-licensed state, where nothing is happening next.
     1150                if ( data.skip_steps !== true ) {
     1151                        var steps = el( 'div', 'nvoos-cg-success-steps' );
     1152                        var stepsTitle = i18n.success_steps_title || '';
     1153                        if ( stepsTitle ) {
     1154                                steps.appendChild( el( 'h4', 'nvoos-cg-success-steps-title', stepsTitle ) );
     1155                        }
     1156                        var stepsList = el( 'ol', 'nvoos-cg-success-steps-list' );
     1157                        // The "installed" step names the artifact that is actually
     1158                        // active: the Complete bundle, or the legacy AI addon.
     1159                        var installedStep = data.bundle_active === false
     1160                                ? ( i18n.success_step_installed_addon || '' )
     1161                                : ( i18n.success_step_installed || '' );
     1162                        var stepItems = [
     1163                                i18n.success_step_receipt || '',
     1164                                installedStep,
     1165                                i18n.success_step_license || ''
     1166                        ];
     1167                        for ( var i = 0; i < stepItems.length; i++ ) {
     1168                                if ( ! stepItems[ i ] ) {
     1169                                        continue;
     1170                                }
     1171                                stepsList.appendChild( el( 'li', '', stepItems[ i ] ) );
     1172                        }
     1173                        var roadmapStep = i18n.success_step_roadmap || '';
     1174                        var changelogUrl = String( config.changelog_url || '' ).trim();
     1175                        if ( roadmapStep || ( changelogUrl && /^https?:\/\//i.test( changelogUrl ) ) ) {
     1176                                var last = el( 'li', '', roadmapStep );
     1177                                if ( changelogUrl && /^https?:\/\//i.test( changelogUrl ) ) {
     1178                                        last.appendChild( document.createTextNode( ' ' ) );
     1179                                        last.appendChild( linkEl( 'nvoos-cg-changelog-link', i18n.changelog_link || 'View changelog', changelogUrl ) );
     1180                                }
     1181                                stepsList.appendChild( last );
     1182                        }
     1183                        steps.appendChild( stepsList );
     1184                        payBox.appendChild( steps );
     1185                }
    11581186
    11591187                var support = i18n.support_line || '';
  • nvoos-content-graph/tags/1.0.8/languages/nvoos-content-graph.pot

    r3693446 r3693559  
    33msgid ""
    44msgstr ""
    5 "Project-Id-Version: NV oOS Content Graph 1.0.7\n"
     5"Project-Id-Version: NV oOS Content Graph 1.0.8\n"
    66"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/nvoos-content-graph\n"
    77"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
    … …  
    11391139msgstr ""
    11401140
     1141#: src/Admin/SettingsPage.php:581
     1142msgid "Your NV oOS Content Graph — AI addon is installed and activated."
     1143msgstr ""
     1144
    11411145#: src/Admin/SettingsPage.php:579
    11421146msgid "Your license key is saved — keep it safe."
  • nvoos-content-graph/tags/1.0.8/nvoos-content-graph.php

    r3693446 r3693559  
    44 * Plugin URI:   https://github.com/nvdigitalsolutions/nvoos-content-graph
    55 * Description:  Visual knowledge graph for WordPress. Maps your content into an interactive, navigable graph. Zero API keys required.
    6  * Version:      1.0.7
     6 * Version:      1.0.8
    77 * Requires at least: 6.5
    88 * Requires PHP: 8.1
    … …  
    2323}
    2424
    25 define( 'NVOOS_CONTENT_GRAPH_VERSION', '1.0.7' );
     25define( 'NVOOS_CONTENT_GRAPH_VERSION', '1.0.8' );
    2626define( 'NVOOS_CONTENT_GRAPH_FILE', __FILE__ );
    2727define( 'NVOOS_CONTENT_GRAPH_PATH', plugin_dir_path( __FILE__ ) );
  • nvoos-content-graph/tags/1.0.8/readme.txt

    r3693446 r3693559  
    66Tested up to: 7.1
    77Requires PHP: 8.1
    8 Stable tag: 1.0.7
     8Stable tag: 1.0.8
    99License: GPL-3.0-or-later
    1010License URI: https://www.gnu.org/licenses/gpl-3.0.html
    … …  
    165165
    166166== Changelog ==
     167
     168= 1.0.8 — 2026-09-13 =
     169* Fixed Stripe checkout failing for non-EU buyers: the Payment Element no longer requires a billing-address country that the modal only collects from EU buyers
     170* Already-licensed sites can no longer start a new payment: the purchase modal shows the existing license instead of a chargeable Stripe form
    167171
    168172= 1.0.7 — 2026-09-12 =
  • nvoos-content-graph/tags/1.0.8/src/Admin/SettingsPage.php

    r3693446 r3693559  
    579579                                        'success_step_receipt'   => __( 'A receipt is on its way to your email.', 'nvoos-content-graph' ),
    580580                                        'success_step_installed' => __( 'NV oOS Complete is installed and activated.', 'nvoos-content-graph' ),
     581                                        'success_step_installed_addon' => __( 'Your NV oOS Content Graph — AI addon is installed and activated.', 'nvoos-content-graph' ),
    581582                                        'success_step_license'   => __( 'Your license key is saved — keep it safe.', 'nvoos-content-graph' ),
    582583                                        'success_step_roadmap'   => __( 'Watch the changelog for updates — your Content Graph ecosystem access arrives with the launch, at no extra cost.', 'nvoos-content-graph' ),
  • nvoos-content-graph/tags/1.0.8/src/Rest/CommerceController.php

    r3693446 r3693559  
    166166         */
    167167        public function createSession( WP_REST_Request $request ) { // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter -- REST callback signature
     168                // Already-licensed site: never create a chargeable session again.
     169                // The purchase modal renders the recorded license instead of a
     170                // payment form, so a second charge is impossible from this screen.
     171                if ( License::isLicensed() && Installer::isActive() ) {
     172                        $bundleActive = Installer::isBundleActive();
     173                        return rest_ensure_response(
     174                                array(
     175                                        'already_licensed' => true,
     176                                        'bundle_active'    => $bundleActive,
     177                                        'license_key'      => License::licenseKey(),
     178                                        'message'          => $bundleActive
     179                                                ? __( 'NV oOS Complete is already licensed and active on this site.', 'nvoos-content-graph' )
     180                                                : __( 'Your NV oOS Content Graph — AI addon is already licensed and active on this site.', 'nvoos-content-graph' ),
     181                                )
     182                        );
     183                }
     184
    168185                if ( ! $this->passesThrottle( 'session', 5 ) ) {
    169186                        return new WP_Error(
    … …  
    295312
    296313                if ( License::isLicensed() && Installer::isActive() ) {
     314                        $bundleActive = Installer::isBundleActive();
    297315                        return rest_ensure_response(
    298316                                array(
    299                                         'licensed'    => true,
    300                                         'installed'   => true,
    301                                         'activated'   => true,
    302                                         'license_key' => License::licenseKey(),
    303                                         'message'     => __( 'NV oOS is already licensed and active on this site.', 'nvoos-content-graph' ),
     317                                        'licensed'      => true,
     318                                        'installed'     => true,
     319                                        'activated'     => true,
     320                                        'bundle_active' => $bundleActive,
     321                                        'license_key'   => License::licenseKey(),
     322                                        'message'       => $bundleActive
     323                                                ? __( 'NV oOS Complete is already licensed and active on this site.', 'nvoos-content-graph' )
     324                                                : __( 'Your NV oOS Content Graph — AI addon is already licensed and active on this site.', 'nvoos-content-graph' ),
    304325                                )
    305326                        );
    … …  
    388409                return rest_ensure_response(
    389410                        array(
    390                                 'licensed'     => true,
    391                                 'installed'    => (bool) $install['installed'],
    392                                 'activated'    => (bool) $install['activated'],
    393                                 'license_key'  => $record['license_key'],
     411                                'licensed'      => true,
     412                                'installed'     => (bool) $install['installed'],
     413                                'activated'     => (bool) $install['activated'],
     414                                'bundle_active' => Installer::isBundleActive(),
     415                                'license_key'   => $record['license_key'],
    394416                                // Manual install is the primary documented path — always
    395417                                // surface the signed download URL alongside the auto-install
    396418                                // result so the buyer can upload the ZIP themselves.
    397                                 'download_url' => $zipUrl,
    398                                 'message'      => (string) $install['message'],
     419                                'download_url'  => $zipUrl,
     420                                'message'       => (string) $install['message'],
    399421                        )
    400422                );
  • nvoos-content-graph/tags/1.0.8/vendor/composer/installed.php

    r3693446 r3693559  
    22    'root' => array(
    33        'name' => 'nvoos/content-graph',
    4         'pretty_version' => 'dev-alpha-working',
    5         'version' => 'dev-alpha-working',
    6         'reference' => '42e192a7edf5c103643b4441e984edc71928d76c',
     4        'pretty_version' => 'dev-main',
     5        'version' => 'dev-main',
     6        'reference' => '3da38a6265ed94731a155e707022567651c6d43c',
    77        'type' => 'wordpress-plugin',
    88        'install_path' => __DIR__ . '/../../',
    … …  
    1212    'versions' => array(
    1313        'nvoos/content-graph' => array(
    14             'pretty_version' => 'dev-alpha-working',
    15             'version' => 'dev-alpha-working',
    16             'reference' => '42e192a7edf5c103643b4441e984edc71928d76c',
     14            'pretty_version' => 'dev-main',
     15            'version' => 'dev-main',
     16            'reference' => '3da38a6265ed94731a155e707022567651c6d43c',
    1717            'type' => 'wordpress-plugin',
    1818            'install_path' => __DIR__ . '/../../',
  • nvoos-content-graph/trunk/assets/js/content-graph-commerce.js

    r3693446 r3693559  
    833833                                        renderDiagnoseLink();
    834834                                }
     835                                return;
     836                        }
     837
     838                        // Already-licensed site: render the recorded license instead
     839                        // of a fresh payment form — a second charge must never be
     840                        // possible from this screen.
     841                        if ( result.data && result.data.already_licensed ) {
     842                                renderSuccess( {
     843                                        license_key: result.data.license_key,
     844                                        message: result.data.message,
     845                                        bundle_active: result.data.bundle_active,
     846                                        installed: true,
     847                                        activated: true,
     848                                        skip_steps: true
     849                                } );
    835850                                return;
    836851                        }
    … …  
    891906                                // The plugin collects the buyer email, country, and EU billing
    892907                                // address itself (receipt + VAT records); keep the Stripe iframe
    893                                 // from asking for them again.
     908                                // from asking for them again. The address uses 'auto' rather
     909                                // than 'never': Stripe demands a country in confirmPayment()
     910                                // whenever 'never' is used, but this plugin only knows the
     911                                // country for EU buyers. With 'auto' the element collects the
     912                                // address only when a payment method (or Stripe tax) needs it,
     913                                // and EU buyers still pass theirs via payment_method_data.
    894914                                paymentElement = elements.create( 'payment', {
    895                                         fields: { billingDetails: { email: 'never', address: 'never' } }
     915                                        fields: { billingDetails: { email: 'never', address: 'auto' } }
    896916                                } );
    897917                                paymentElement.mount( payBox );
    … …  
    11261146                // "What happens next" checklist — post-purchase clarity sets
    11271147                // expectations (receipt, install, license, roadmap) and reduces
    1128                 // buyer's-remorse support contacts.
    1129                 var steps = el( 'div', 'nvoos-cg-success-steps' );
    1130                 var stepsTitle = i18n.success_steps_title || '';
    1131                 if ( stepsTitle ) {
    1132                         steps.appendChild( el( 'h4', 'nvoos-cg-success-steps-title', stepsTitle ) );
    1133                 }
    1134                 var stepsList = el( 'ol', 'nvoos-cg-success-steps-list' );
    1135                 var stepItems = [
    1136                         i18n.success_step_receipt || '',
    1137                         i18n.success_step_installed || '',
    1138                         i18n.success_step_license || ''
    1139                 ];
    1140                 for ( var i = 0; i < stepItems.length; i++ ) {
    1141                         if ( ! stepItems[ i ] ) {
    1142                                 continue;
    1143                         }
    1144                         stepsList.appendChild( el( 'li', '', stepItems[ i ] ) );
    1145                 }
    1146                 var roadmapStep = i18n.success_step_roadmap || '';
    1147                 var changelogUrl = String( config.changelog_url || '' ).trim();
    1148                 if ( roadmapStep || ( changelogUrl && /^https?:\/\//i.test( changelogUrl ) ) ) {
    1149                         var last = el( 'li', '', roadmapStep );
    1150                         if ( changelogUrl && /^https?:\/\//i.test( changelogUrl ) ) {
    1151                                 last.appendChild( document.createTextNode( ' ' ) );
    1152                                 last.appendChild( linkEl( 'nvoos-cg-changelog-link', i18n.changelog_link || 'View changelog', changelogUrl ) );
    1153                         }
    1154                         stepsList.appendChild( last );
    1155                 }
    1156                 steps.appendChild( stepsList );
    1157                 payBox.appendChild( steps );
     1148                // buyer's-remorse support contacts. Skipped for the
     1149                // already-licensed state, where nothing is happening next.
     1150                if ( data.skip_steps !== true ) {
     1151                        var steps = el( 'div', 'nvoos-cg-success-steps' );
     1152                        var stepsTitle = i18n.success_steps_title || '';
     1153                        if ( stepsTitle ) {
     1154                                steps.appendChild( el( 'h4', 'nvoos-cg-success-steps-title', stepsTitle ) );
     1155                        }
     1156                        var stepsList = el( 'ol', 'nvoos-cg-success-steps-list' );
     1157                        // The "installed" step names the artifact that is actually
     1158                        // active: the Complete bundle, or the legacy AI addon.
     1159                        var installedStep = data.bundle_active === false
     1160                                ? ( i18n.success_step_installed_addon || '' )
     1161                                : ( i18n.success_step_installed || '' );
     1162                        var stepItems = [
     1163                                i18n.success_step_receipt || '',
     1164                                installedStep,
     1165                                i18n.success_step_license || ''
     1166                        ];
     1167                        for ( var i = 0; i < stepItems.length; i++ ) {
     1168                                if ( ! stepItems[ i ] ) {
     1169                                        continue;
     1170                                }
     1171                                stepsList.appendChild( el( 'li', '', stepItems[ i ] ) );
     1172                        }
     1173                        var roadmapStep = i18n.success_step_roadmap || '';
     1174                        var changelogUrl = String( config.changelog_url || '' ).trim();
     1175                        if ( roadmapStep || ( changelogUrl && /^https?:\/\//i.test( changelogUrl ) ) ) {
     1176                                var last = el( 'li', '', roadmapStep );
     1177                                if ( changelogUrl && /^https?:\/\//i.test( changelogUrl ) ) {
     1178                                        last.appendChild( document.createTextNode( ' ' ) );
     1179                                        last.appendChild( linkEl( 'nvoos-cg-changelog-link', i18n.changelog_link || 'View changelog', changelogUrl ) );
     1180                                }
     1181                                stepsList.appendChild( last );
     1182                        }
     1183                        steps.appendChild( stepsList );
     1184                        payBox.appendChild( steps );
     1185                }
    11581186
    11591187                var support = i18n.support_line || '';
  • nvoos-content-graph/trunk/languages/nvoos-content-graph.pot

    r3693446 r3693559  
    33msgid ""
    44msgstr ""
    5 "Project-Id-Version: NV oOS Content Graph 1.0.7\n"
     5"Project-Id-Version: NV oOS Content Graph 1.0.8\n"
    66"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/nvoos-content-graph\n"
    77"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
    … …  
    11391139msgstr ""
    11401140
     1141#: src/Admin/SettingsPage.php:581
     1142msgid "Your NV oOS Content Graph — AI addon is installed and activated."
     1143msgstr ""
     1144
    11411145#: src/Admin/SettingsPage.php:579
    11421146msgid "Your license key is saved — keep it safe."
  • nvoos-content-graph/trunk/nvoos-content-graph.php

    r3693446 r3693559  
    44 * Plugin URI:   https://github.com/nvdigitalsolutions/nvoos-content-graph
    55 * Description:  Visual knowledge graph for WordPress. Maps your content into an interactive, navigable graph. Zero API keys required.
    6  * Version:      1.0.7
     6 * Version:      1.0.8
    77 * Requires at least: 6.5
    88 * Requires PHP: 8.1
    … …  
    2323}
    2424
    25 define( 'NVOOS_CONTENT_GRAPH_VERSION', '1.0.7' );
     25define( 'NVOOS_CONTENT_GRAPH_VERSION', '1.0.8' );
    2626define( 'NVOOS_CONTENT_GRAPH_FILE', __FILE__ );
    2727define( 'NVOOS_CONTENT_GRAPH_PATH', plugin_dir_path( __FILE__ ) );
  • nvoos-content-graph/trunk/readme.txt

    r3693446 r3693559  
    66Tested up to: 7.1
    77Requires PHP: 8.1
    8 Stable tag: 1.0.7
     8Stable tag: 1.0.8
    99License: GPL-3.0-or-later
    1010License URI: https://www.gnu.org/licenses/gpl-3.0.html
    … …  
    165165
    166166== Changelog ==
     167
     168= 1.0.8 — 2026-09-13 =
     169* Fixed Stripe checkout failing for non-EU buyers: the Payment Element no longer requires a billing-address country that the modal only collects from EU buyers
     170* Already-licensed sites can no longer start a new payment: the purchase modal shows the existing license instead of a chargeable Stripe form
    167171
    168172= 1.0.7 — 2026-09-12 =
  • nvoos-content-graph/trunk/src/Admin/SettingsPage.php

    r3693446 r3693559  
    579579                                        'success_step_receipt'   => __( 'A receipt is on its way to your email.', 'nvoos-content-graph' ),
    580580                                        'success_step_installed' => __( 'NV oOS Complete is installed and activated.', 'nvoos-content-graph' ),
     581                                        'success_step_installed_addon' => __( 'Your NV oOS Content Graph — AI addon is installed and activated.', 'nvoos-content-graph' ),
    581582                                        'success_step_license'   => __( 'Your license key is saved — keep it safe.', 'nvoos-content-graph' ),
    582583                                        'success_step_roadmap'   => __( 'Watch the changelog for updates — your Content Graph ecosystem access arrives with the launch, at no extra cost.', 'nvoos-content-graph' ),
  • nvoos-content-graph/trunk/src/Rest/CommerceController.php

    r3693446 r3693559  
    166166         */
    167167        public function createSession( WP_REST_Request $request ) { // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter -- REST callback signature
     168                // Already-licensed site: never create a chargeable session again.
     169                // The purchase modal renders the recorded license instead of a
     170                // payment form, so a second charge is impossible from this screen.
     171                if ( License::isLicensed() && Installer::isActive() ) {
     172                        $bundleActive = Installer::isBundleActive();
     173                        return rest_ensure_response(
     174                                array(
     175                                        'already_licensed' => true,
     176                                        'bundle_active'    => $bundleActive,
     177                                        'license_key'      => License::licenseKey(),
     178                                        'message'          => $bundleActive
     179                                                ? __( 'NV oOS Complete is already licensed and active on this site.', 'nvoos-content-graph' )
     180                                                : __( 'Your NV oOS Content Graph — AI addon is already licensed and active on this site.', 'nvoos-content-graph' ),
     181                                )
     182                        );
     183                }
     184
    168185                if ( ! $this->passesThrottle( 'session', 5 ) ) {
    169186                        return new WP_Error(
    … …  
    295312
    296313                if ( License::isLicensed() && Installer::isActive() ) {
     314                        $bundleActive = Installer::isBundleActive();
    297315                        return rest_ensure_response(
    298316                                array(
    299                                         'licensed'    => true,
    300                                         'installed'   => true,
    301                                         'activated'   => true,
    302                                         'license_key' => License::licenseKey(),
    303                                         'message'     => __( 'NV oOS is already licensed and active on this site.', 'nvoos-content-graph' ),
     317                                        'licensed'      => true,
     318                                        'installed'     => true,
     319                                        'activated'     => true,
     320                                        'bundle_active' => $bundleActive,
     321                                        'license_key'   => License::licenseKey(),
     322                                        'message'       => $bundleActive
     323                                                ? __( 'NV oOS Complete is already licensed and active on this site.', 'nvoos-content-graph' )
     324                                                : __( 'Your NV oOS Content Graph — AI addon is already licensed and active on this site.', 'nvoos-content-graph' ),
    304325                                )
    305326                        );
    … …  
    388409                return rest_ensure_response(
    389410                        array(
    390                                 'licensed'     => true,
    391                                 'installed'    => (bool) $install['installed'],
    392                                 'activated'    => (bool) $install['activated'],
    393                                 'license_key'  => $record['license_key'],
     411                                'licensed'      => true,
     412                                'installed'     => (bool) $install['installed'],
     413                                'activated'     => (bool) $install['activated'],
     414                                'bundle_active' => Installer::isBundleActive(),
     415                                'license_key'   => $record['license_key'],
    394416                                // Manual install is the primary documented path — always
    395417                                // surface the signed download URL alongside the auto-install
    396418                                // result so the buyer can upload the ZIP themselves.
    397                                 'download_url' => $zipUrl,
    398                                 'message'      => (string) $install['message'],
     419                                'download_url'  => $zipUrl,
     420                                'message'       => (string) $install['message'],
    399421                        )
    400422                );
  • nvoos-content-graph/trunk/vendor/composer/installed.php

    r3693446 r3693559  
    22    'root' => array(
    33        'name' => 'nvoos/content-graph',
    4         'pretty_version' => 'dev-alpha-working',
    5         'version' => 'dev-alpha-working',
    6         'reference' => '42e192a7edf5c103643b4441e984edc71928d76c',
     4        'pretty_version' => 'dev-main',
     5        'version' => 'dev-main',
     6        'reference' => '3da38a6265ed94731a155e707022567651c6d43c',
    77        'type' => 'wordpress-plugin',
    88        'install_path' => __DIR__ . '/../../',
    … …  
    1212    'versions' => array(
    1313        'nvoos/content-graph' => array(
    14             'pretty_version' => 'dev-alpha-working',
    15             'version' => 'dev-alpha-working',
    16             'reference' => '42e192a7edf5c103643b4441e984edc71928d76c',
     14            'pretty_version' => 'dev-main',
     15            'version' => 'dev-main',
     16            'reference' => '3da38a6265ed94731a155e707022567651c6d43c',
    1717            'type' => 'wordpress-plugin',
    1818            'install_path' => __DIR__ . '/../../',
Note: See TracChangeset for help on using the changeset viewer.