Plugin Directory

Changeset 3749403


Ignore:
Timestamp:
10/15/2026 10:18:31 PM (3 weeks ago)
Author:
josephlines
Message:

FileDeck Store Master 3.1.1

Location:
filedeck-store-master/trunk
Files:
30 edited

Legend:

Unmodified
Added
Removed
  • filedeck-store-master/trunk/assets/js/admin-rules.js

    r3744954 r3749403  
    881881                                                )
    882882                                                : h( 'p', { className: 'sm-step__hint' },
    883                                                         __( 'This kind of rule cannot be checked against a product before it goes live — nothing in FileDeck Store Master can answer what it would do without applying it. Publish it as a draft first and it changes nothing until you turn it on.', 'filedeck-store-master' ) ),
     883                                                        __( 'This kind of rule cannot be checked against a product before it goes live — nothing in StoreMaster can answer what it would do without applying it. Publish it as a draft first and it changes nothing until you turn it on.', 'filedeck-store-master' ) ),
    884884                                        check[ 0 ] && ! check[ 0 ].error && ! draftApplied( check[ 0 ] )
    885885                                                // The rule did NOT fire. This used to render the same
    … …  
    893893                                                                var why = draftRejection( check[ 0 ] );
    894894                                                                if ( ! why ) {
    895                                                                         return h( 'p', null, __( 'FileDeck Store Master did not report why.', 'filedeck-store-master' ) );
     895                                                                        return h( 'p', null, __( 'StoreMaster did not report why.', 'filedeck-store-master' ) );
    896896                                                                }
    897897                                                                return h( Fragment, null,
  • filedeck-store-master/trunk/assets/js/admin-start.js

    r3744954 r3749403  
    219219                                ) )
    220220                                : h( Notice, { status: 'error', isDismissible: false },
    221                                         __( 'Something on this list will stop FileDeck Store Master working properly. You can still set up, but fix this first.', 'filedeck-store-master' ) ),
     221                                        __( 'Something on this list will stop StoreMaster working properly. You can still set up, but fix this first.', 'filedeck-store-master' ) ),
    222222                        h( 'ul', { className: 'sm-start__checks' }, shown.map( function ( c, i ) {
    223223                                return h( Fragment, { key: i }, Check( c ) );
    … …  
    366366                                        // as having a working shop, and a blueprint cannot know a
    367367                                        // merchant's tiers, prices or hours.
    368                                         h( 'p', null, __( 'FileDeck Store Master has turned on what this kind of shop needs. These are the things only you can decide.', 'filedeck-store-master' ) ),
     368                                        h( 'p', null, __( 'StoreMaster has turned on what this kind of shop needs. These are the things only you can decide.', 'filedeck-store-master' ) ),
    369369                                        steps.length
    370370                                                ? h( 'ol', { className: 'sm-start__steps' }, steps.map( function ( s, i ) {
    … …  
    512512                                ? __( 'Or set up something else', 'filedeck-store-master' )
    513513                                : __( 'What are you setting up?', 'filedeck-store-master' ) ),
    514                         h( 'p', null, __( 'FileDeck Store Master will switch on what that kind of shop needs, show you what changes before anything does, and tell you what is left to you.', 'filedeck-store-master' ) ),
     514                        h( 'p', null, __( 'StoreMaster will switch on what that kind of shop needs, show you what changes before anything does, and tell you what is left to you.', 'filedeck-store-master' ) ),
    515515
    516516                        h( 'div', { className: 'storemaster-modules' }, blueprints.map( function ( b ) {
  • filedeck-store-master/trunk/assets/js/admin.js

    r3747742 r3749403  
    603603                        h( Card, { className: 'storemaster-card' }, h( CardBody, null,
    604604                                h( 'h2', null, __( 'Support bundle', 'filedeck-store-master' ) ),
    605                                 h( 'p', null, __( 'What FileDeck Store Master would tell somebody helping you: your versions, which modules are on, the state of the database and the results above. No customer, no order and no key is ever in it.', 'filedeck-store-master' ) ),
     605                                h( 'p', null, __( 'What StoreMaster would tell somebody helping you: your versions, which modules are on, the state of the database and the results above. No customer, no order and no key is ever in it.', 'filedeck-store-master' ) ),
    606606                                bundleError[ 0 ] ? h( Notice, { status: 'error', isDismissible: false }, bundleError[ 0 ] ) : null,
    607607
    … …  
    701701                                return JSON.parse( incoming[ 0 ] );
    702702                        } catch ( e ) {
    703                                 importError[ 1 ]( __( 'That is not a FileDeck Store Master configuration file — it is not valid JSON.', 'filedeck-store-master' ) );
     703                                importError[ 1 ]( __( 'That is not a StoreMaster configuration file — it is not valid JSON.', 'filedeck-store-master' ) );
    704704                                return null;
    705705                        }
    … …  
    10141014                        h( Card, { className: 'storemaster-card' }, h( CardBody, null,
    10151015                                h( 'h2', null, __( 'Import', 'filedeck-store-master' ) ),
    1016                                 h( 'p', null, __( 'Paste a configuration exported from another FileDeck Store Master site. Nothing is changed until you have seen what it would do and said so.', 'filedeck-store-master' ) ),
     1016                                h( 'p', null, __( 'Paste a configuration exported from another StoreMaster site. Nothing is changed until you have seen what it would do and said so.', 'filedeck-store-master' ) ),
    10171017                                importError[ 0 ] ? h( Notice, { status: 'error', isDismissible: false }, importError[ 0 ] ) : null,
    10181018                                h( 'textarea', {
    … …  
    16971697                        .filter( isActive )
    16981698                        .sort( function ( a, b ) { return b.path.length - a.path.length; } )[ 0 ];
    1699                 var title = current ? current.label : __( 'FileDeck Store Master', 'filedeck-store-master' );
     1699                var title = current ? current.label : __( 'StoreMaster', 'filedeck-store-master' );
    17001700
    17011701                // A group with nothing in it renders NOTHING — no heading, no empty
    … …  
    17951795                // a rail would eat the content.
    17961796                return h( 'div', { className: 'storemaster-layout' },
    1797                         h( 'nav', { className: 'storemaster-nav', 'aria-label': __( 'FileDeck Store Master sections', 'filedeck-store-master' ) },
     1797                        h( 'nav', { className: 'storemaster-nav', 'aria-label': __( 'StoreMaster sections', 'filedeck-store-master' ) },
    17981798                                // The find box leads, because at twenty-five destinations
    17991799                                // typing is faster than reading — and it is inside the nav it
    … …  
    18281828                                // THE PAGE'S OWN HEADING, naming the screen.
    18291829                                //
    1830                                 // There was an h1 here before and it read "FileDeck Store
    1831                                 // Master" on all twenty-five screens, which is the same as
     1830                                // There was an h1 here before and it read "StoreMaster" on all twenty-five screens, which is the same as
    18321831                                // having none: a heading identical everywhere cannot tell you
    18331832                                // where you are. The label comes from the route table the
  • filedeck-store-master/trunk/assets/js/blocks.js

    r3744954 r3749403  
    9393
    9494                        var inspector = h( InspectorControls, null,
    95                                 h( PanelBody, { title: __( 'FileDeck Store Master', 'filedeck-store-master' ), initialOpen: true },
     95                                h( PanelBody, { title: __( 'StoreMaster', 'filedeck-store-master' ), initialOpen: true },
    9696                                        h( SelectControl, {
    9797                                                label: __( 'Show', 'filedeck-store-master' ),
    … …  
    120120                                        EmptyResponsePlaceholder: function () {
    121121                                                return h( Placeholder, {
    122                                                         label: __( 'FileDeck Store Master', 'filedeck-store-master' )
     122                                                        label: __( 'StoreMaster', 'filedeck-store-master' )
    123123                                                }, __( 'This shows nothing yet. Check the surface is set up — a product table needs a published view, filters need the catalogue index.', 'filedeck-store-master' ) );
    124124                                        }
    125125                                } )
    126126                                : h( Placeholder, {
    127                                         label: __( 'FileDeck Store Master', 'filedeck-store-master' ),
     127                                        label: __( 'StoreMaster', 'filedeck-store-master' ),
    128128                                        instructions: __( 'Choose what this block should show.', 'filedeck-store-master' )
    129129                                }, h( SelectControl, {
  • filedeck-store-master/trunk/filedeck-store-master.php

    r3747742 r3749403  
    33 * Plugin Name: FileDeck Store Master for WooCommerce
    44 * Description: One WooCommerce toolkit instead of a stack of add-ons — product tabs, quantity rules, discounts, lead times, quick view, checkout fields, order documents and more, each independently enabled.
    5  * Version: 3.1.0
     5 * Version: 3.1.1
    66 * Requires at least: 6.6
    77 * Requires PHP: 8.1
    … …  
    5050                        }
    5151                        echo '<div class="notice notice-warning"><p><strong>'
    52                                 . esc_html__( 'Two copies of FileDeck Store Master are installed.', 'filedeck-store-master' ) . '</strong> '
     52                                . esc_html__( 'Two copies of StoreMaster are installed.', 'filedeck-store-master' ) . '</strong> '
    5353                                . esc_html(
    5454                                        sprintf(
    … …  
    6565}
    6666
    67 define( 'STOREMASTER_VERSION', '3.1.0' ); // Header + constant + readme.txt Stable tag move together (version-gate).
     67define( 'STOREMASTER_VERSION', '3.1.1' ); // Header + constant + readme.txt Stable tag move together (version-gate).
    6868define( 'STOREMASTER_SCHEMA_VERSION', 1 );
    6969define( 'STOREMASTER_PLUGIN_FILE', __FILE__ );
    … …  
    9595                        return sprintf(
    9696                                /* translators: 1: required PHP version, 2: running PHP version */
    97                                 __( 'FileDeck Store Master requires PHP %1$s or newer. This site runs PHP %2$s.', 'filedeck-store-master' ),
     97                                __( 'StoreMaster requires PHP %1$s or newer. This site runs PHP %2$s.', 'filedeck-store-master' ),
    9898                                STOREMASTER_MIN_PHP,
    9999                                PHP_VERSION
    … …  
    103103                        return sprintf(
    104104                                /* translators: 1: required WordPress version, 2: running WordPress version */
    105                                 __( 'FileDeck Store Master requires WordPress %1$s or newer. This site runs WordPress %2$s.', 'filedeck-store-master' ),
     105                                __( 'StoreMaster requires WordPress %1$s or newer. This site runs WordPress %2$s.', 'filedeck-store-master' ),
    106106                                STOREMASTER_MIN_WP,
    107107                                get_bloginfo( 'version' )
    … …  
    109109                }
    110110                if ( ! defined( 'WC_VERSION' ) ) {
    111                         return __( 'FileDeck Store Master requires WooCommerce to be installed and active.', 'filedeck-store-master' );
     111                        return __( 'StoreMaster requires WooCommerce to be installed and active.', 'filedeck-store-master' );
    112112                }
    113113                if ( version_compare( WC_VERSION, STOREMASTER_MIN_WC, '<' ) ) {
    114114                        return sprintf(
    115115                                /* translators: 1: required WooCommerce version, 2: running WooCommerce version */
    116                                 __( 'FileDeck Store Master requires WooCommerce %1$s or newer. This site runs WooCommerce %2$s.', 'filedeck-store-master' ),
     116                                __( 'StoreMaster requires WooCommerce %1$s or newer. This site runs WooCommerce %2$s.', 'filedeck-store-master' ),
    117117                                STOREMASTER_MIN_WC,
    118118                                WC_VERSION
    … …  
    169169                                                return;
    170170                                        }
    171                                         echo '<div class="notice notice-error"><p><strong>FileDeck Store Master</strong> — ' . esc_html( $reason ) . '</p></div>';
     171                                        echo '<div class="notice notice-error"><p><strong>StoreMaster</strong> — ' . esc_html( $reason ) . '</p></div>';
    172172                                }
    173173                        );
  • filedeck-store-master/trunk/includes/Admin/AdminShell.php

    r3744954 r3749403  
    4747                // parts on and off is the owner's, not a delegate's.
    4848                add_menu_page(
    49                         __( 'FileDeck Store Master', 'filedeck-store-master' ),
    50                         __( 'FileDeck Store Master', 'filedeck-store-master' ),
     49                        __( 'StoreMaster', 'filedeck-store-master' ),
     50                        __( 'StoreMaster', 'filedeck-store-master' ),
    5151                        Capabilities::ACCESS_META,
    5252                        self::SLUG,
    … …  
    132132                        <div id="storemaster-app">
    133133                                <noscript>
    134                                         <h1><?php esc_html_e( 'FileDeck Store Master', 'filedeck-store-master' ); ?></h1>
    135                                         <p><?php esc_html_e( 'The FileDeck Store Master control centre needs JavaScript. Your storefront is unaffected.', 'filedeck-store-master' ); ?></p>
     134                                        <h1><?php esc_html_e( 'StoreMaster', 'filedeck-store-master' ); ?></h1>
     135                                        <p><?php esc_html_e( 'The StoreMaster control centre needs JavaScript. Your storefront is unaffected.', 'filedeck-store-master' ); ?></p>
    136136                                        <p>
    137137                                                <?php
    … …  
    325325                        printf(
    326326                                '<div class="notice notice-error"><p><strong>%1$s</strong> %2$s <a href="%3$s">%4$s</a></p></div>',
    327                                 esc_html__( 'FileDeck Store Master:', 'filedeck-store-master' ),
     327                                esc_html__( 'StoreMaster:', 'filedeck-store-master' ),
    328328                                esc_html__( 'a database update did not finish. Nothing was rolled back, so your modules are running against a partly updated database.', 'filedeck-store-master' ),
    329329                                esc_url( admin_url( 'admin.php?page=' . self::SLUG . '#/diagnostics' ) ),
    … …  
    341341                        printf(
    342342                                '<div class="notice notice-warning"><p><strong>%1$s</strong> %2$s %3$s <code>wp storemaster safe-mode disable</code></p></div>',
    343                                 esc_html__( 'FileDeck Store Master safe mode is on.', 'filedeck-store-master' ),
    344                                 esc_html__( 'No FileDeck Store Master module runs on storefront page loads. Store API and AJAX requests — the Blocks cart and checkout — are still handled. Your settings are untouched.', 'filedeck-store-master' ),
     343                                esc_html__( 'StoreMaster safe mode is on.', 'filedeck-store-master' ),
     344                                esc_html__( 'No StoreMaster module runs on storefront page loads. Store API and AJAX requests — the Blocks cart and checkout — are still handled. Your settings are untouched.', 'filedeck-store-master' ),
    345345                                esc_html__( 'Turn it off with:', 'filedeck-store-master' )
    346346                        );
  • filedeck-store-master/trunk/includes/Admin/ProductQuantityPanel.php

    r3744954 r3749403  
    7171
    7272                echo '<div class="options_group storemaster-quantity">';
    73                 echo '<p class="form-field"><strong>' . esc_html__( 'FileDeck Store Master quantity rules', 'filedeck-store-master' ) . '</strong></p>';
     73                echo '<p class="form-field"><strong>' . esc_html__( 'StoreMaster quantity rules', 'filedeck-store-master' ) . '</strong></p>';
    7474                wp_nonce_field( 'storemaster_product_quantity', '_storemaster_nonce' );
    7575
  • filedeck-store-master/trunk/includes/Blocks/PlacementBlock.php

    r3744954 r3749403  
    5353                        array(
    5454                                'api_version'     => 3,
    55                                 'title'           => __( 'FileDeck Store Master', 'filedeck-store-master' ),
     55                                'title'           => __( 'StoreMaster', 'filedeck-store-master' ),
    5656                                'category'        => 'woocommerce',
    5757                                'icon'            => 'screenoptions',
    58                                 'description'     => __( 'Place a FileDeck Store Master surface: a product table, filters, search, a quote basket and the rest.', 'filedeck-store-master' ),
     58                                'description'     => __( 'Place a StoreMaster surface: a product table, filters, search, a quote basket and the rest.', 'filedeck-store-master' ),
    5959                                'attributes'      => array(
    6060                                        'surface' => array( 'type' => 'string', 'default' => '' ),
    … …  
    8686                                return '';
    8787                        }
    88                         return '<p class="sm-notice">' . esc_html__( 'FileDeck Store Master: choose what this block should show. If the surface you picked is missing, its module is switched off or not in this build. Only editors see this message.', 'filedeck-store-master' ) . '</p>';
     88                        return '<p class="sm-notice">' . esc_html__( 'StoreMaster: choose what this block should show. If the surface you picked is missing, its module is switched off or not in this build. Only editors see this message.', 'filedeck-store-master' ) . '</p>';
    8989                }
    9090
  • filedeck-store-master/trunk/includes/Cli/Commands.php

    r3744954 r3749403  
    307307                        \WP_CLI::error(
    308308                                $known
    309                                         ? 'The catalogue index module is switched off. Turn it on in FileDeck Store Master → Modules.'
     309                                        ? 'The catalogue index module is switched off. Turn it on in StoreMaster → Modules.'
    310310                                        : 'No catalogue index is installed on this site.'
    311311                        );
    … …  
    504504                        $document = json_decode( $raw, true );
    505505                        if ( ! is_array( $document ) ) {
    506                                 \WP_CLI::error( 'That file is not a FileDeck Store Master export.' );
     506                                \WP_CLI::error( 'That file is not a StoreMaster export.' );
    507507                        }
    508508
    … …  
    743743                if ( 'enable' === $action ) {
    744744                        SafeMode::enable( true );
    745                         \WP_CLI::success( 'Safe mode is on. No FileDeck Store Master module runs on the storefront; settings are untouched.' );
     745                        \WP_CLI::success( 'Safe mode is on. No StoreMaster module runs on the storefront; settings are untouched.' );
    746746                        return;
    747747                }
  • filedeck-store-master/trunk/includes/Kernel/Container.php

    r3744954 r3749403  
    5353                if ( ! isset( $this->factories[ $id ] ) ) {
    5454                        // phpcs:ignore WordPress.Security.EscapeOutput.ExceptionNotEscaped -- $id is a class or interface name passed to set() by our own boot code, and this message is a developer fault that reaches a log, never a page.
    55                         throw new \RuntimeException( 'FileDeck Store Master: unregistered service ' . $id );
     55                        throw new \RuntimeException( 'StoreMaster: unregistered service ' . $id );
    5656                }
    5757                $this->resolved[ $id ] = call_user_func( $this->factories[ $id ], $this );
  • filedeck-store-master/trunk/includes/Modules/CartFulfilment/CheckoutFieldsModule.php

    r3744954 r3749403  
    656656                                                return array(
    657657                                                        'status'  => 'warning',
    658                                                         'summary' => __( 'This WooCommerce does not expose its field registry, so FileDeck Store Master cannot confirm the fields arrived.', 'filedeck-store-master' ),
     658                                                        'summary' => __( 'This WooCommerce does not expose its field registry, so StoreMaster cannot confirm the fields arrived.', 'filedeck-store-master' ),
    659659                                                );
    660660                                        }
  • filedeck-store-master/trunk/includes/Modules/Core/DiagnosticsModule.php

    r3744954 r3749403  
    3333                        __( 'Diagnostics', 'filedeck-store-master' ),
    3434                        'core',
    35                         __( 'See whether FileDeck Store Master is healthy, which plugins overlap it, and exactly what a support bundle would contain before you send one.', 'filedeck-store-master' ),
     35                        __( 'See whether StoreMaster is healthy, which plugins overlap it, and exactly what a support bundle would contain before you send one.', 'filedeck-store-master' ),
    3636                        'free',
    3737                        __( 'Admin only. Adds nothing to a storefront request.', 'filedeck-store-master' )
    … …  
    6363        public function site_health_tests( $tests ) {
    6464                $tests['direct']['storemaster'] = array(
    65                         'label' => __( 'FileDeck Store Master', 'filedeck-store-master' ),
     65                        'label' => __( 'StoreMaster', 'filedeck-store-master' ),
    6666                        'test'  => function () {
    6767                                $results = HealthRunner::run();
    … …  
    7979                                return array(
    8080                                        'label'       => 'good' === $status
    81                                                 ? __( 'FileDeck Store Master is healthy', 'filedeck-store-master' )
    82                                                 : __( 'FileDeck Store Master has something to look at', 'filedeck-store-master' ),
     81                                                ? __( 'StoreMaster is healthy', 'filedeck-store-master' )
     82                                                : __( 'StoreMaster has something to look at', 'filedeck-store-master' ),
    8383                                        'status'      => $status,
    8484                                        'badge'       => array( 'label' => __( 'Commerce', 'filedeck-store-master' ), 'color' => 'blue' ),
    8585                                        'description' => '' === $lines
    86                                                 ? '<p>' . esc_html__( 'Every FileDeck Store Master health check passed.', 'filedeck-store-master' ) . '</p>'
     86                                                ? '<p>' . esc_html__( 'Every StoreMaster health check passed.', 'filedeck-store-master' ) . '</p>'
    8787                                                : '<ul>' . $lines . '</ul>',
    8888                                        'test'        => 'storemaster',
    … …  
    141141                                                        ? array(
    142142                                                                'status'  => 'pass',
    143                                                                 'summary' => __( 'Your licence is active, so FileDeck Store Master can be configured normally.', 'filedeck-store-master' ),
     143                                                                'summary' => __( 'Your licence is active, so StoreMaster can be configured normally.', 'filedeck-store-master' ),
    144144                                                        )
    145145                                                        : array(
    146146                                                                'status'  => 'warning',
    147                                                                 'summary' => __( 'Your licence has lapsed. Your shop is unaffected and every saved rule is still running — but nothing in FileDeck Store Master can be changed until you renew.', 'filedeck-store-master' ),
     147                                                                'summary' => __( 'Your licence has lapsed. Your shop is unaffected and every saved rule is still running — but nothing in StoreMaster can be changed until you renew.', 'filedeck-store-master' ),
    148148                                                        );
    149149                                        }
    … …  
    183183                                                return array(
    184184                                                        'status'  => 'fail',
    185                                                         'summary' => __( 'FileDeck Store Master could not read its rules to check them.', 'filedeck-store-master' ),
     185                                                        'summary' => __( 'StoreMaster could not read its rules to check them.', 'filedeck-store-master' ),
    186186                                                );
    187187                                        }
    … …  
    226226                                                $parts[] = sprintf(
    227227                                                        /* translators: %s: comma-separated rule names */
    228                                                         __( 'These rules compare a category, tag or product with "is", which FileDeck Store Master reads as "is the only one" — change them to "is one of": %s.', 'filedeck-store-master' ),
     228                                                        __( 'These rules compare a category, tag or product with "is", which StoreMaster reads as "is the only one" — change them to "is one of": %s.', 'filedeck-store-master' ),
    229229                                                        implode( ', ', array_keys( $mistold ) )
    230230                                                );
  • filedeck-store-master/trunk/includes/Modules/Core/HealthRunner.php

    r3744954 r3749403  
    146146                                        $reason = storemaster_incompatibility_reason();
    147147                                        return '' === $reason
    148                                                 ? array( 'status' => 'pass', 'summary' => __( 'The platform meets FileDeck Store Master\'s requirements.', 'filedeck-store-master' ) )
     148                                                ? array( 'status' => 'pass', 'summary' => __( 'The platform meets StoreMaster\'s requirements.', 'filedeck-store-master' ) )
    149149                                                : array( 'status' => 'fail', 'summary' => $reason );
    150150                                },
    … …  
    159159                                                return array(
    160160                                                        'status'  => 'fail',
    161                                                         'summary' => __( 'One or more FileDeck Store Master tables are missing. Deactivate and reactivate the plugin to recreate them.', 'filedeck-store-master' ),
     161                                                        'summary' => __( 'One or more StoreMaster tables are missing. Deactivate and reactivate the plugin to recreate them.', 'filedeck-store-master' ),
    162162                                                        'detail'  => implode( ', ', $verify['missing_tables'] ),
    163163                                                );
    … …  
    168168                                                return array(
    169169                                                        'status'  => 'warning',
    170                                                         'summary' => __( 'A table index is missing. FileDeck Store Master works but some queries will be slower than they should be.', 'filedeck-store-master' ),
     170                                                        'summary' => __( 'A table index is missing. StoreMaster works but some queries will be slower than they should be.', 'filedeck-store-master' ),
    171171                                                        'detail'  => implode( ', ', $verify['missing_indexes'] ),
    172172                                                );
    … …  
    261261                                                'summary' => Environment::hpos_enabled()
    262262                                                        ? __( 'Orders are stored in WooCommerce\'s own tables (HPOS).', 'filedeck-store-master' )
    263                                                         : __( 'Orders are stored as posts. FileDeck Store Master reads and writes them through WooCommerce either way.', 'filedeck-store-master' ),
     263                                                        : __( 'Orders are stored as posts. StoreMaster reads and writes them through WooCommerce either way.', 'filedeck-store-master' ),
    264264                                        );
    265265                                },
    … …  
    272272                                        $overlaps = ConflictScan::detect();
    273273                                        if ( ! $overlaps ) {
    274                                                 return array( 'status' => 'pass', 'summary' => __( 'No plugin was detected that overlaps an enabled FileDeck Store Master module.', 'filedeck-store-master' ) );
     274                                                return array( 'status' => 'pass', 'summary' => __( 'No plugin was detected that overlaps an enabled StoreMaster module.', 'filedeck-store-master' ) );
    275275                                        }
    276276                                        return array(
    … …  
    279279                                                        /* translators: %d: number of plugins */
    280280                                                        _n(
    281                                                                 '%d active plugin overlaps an enabled FileDeck Store Master module. Review it on staging before relying on both.',
    282                                                                 '%d active plugins overlap enabled FileDeck Store Master modules. Review them on staging before relying on both.',
     281                                                                '%d active plugin overlaps an enabled StoreMaster module. Review it on staging before relying on both.',
     282                                                                '%d active plugins overlap enabled StoreMaster modules. Review them on staging before relying on both.',
    283283                                                                count( $overlaps ),
    284284                                                                'filedeck-store-master'
  • filedeck-store-master/trunk/includes/Modules/Core/PortabilityModule.php

    r3744954 r3749403  
    5959                        __( 'Configuration export', 'filedeck-store-master' ),
    6060                        'core',
    61                         __( 'Take a signed, secret-free copy of your FileDeck Store Master configuration for review, staging or a rollback.', 'filedeck-store-master' ),
     61                        __( 'Take a signed, secret-free copy of your StoreMaster configuration for review, staging or a rollback.', 'filedeck-store-master' ),
    6262                        'free',
    6363                        __( 'Admin and CLI only. Adds nothing to a storefront request.', 'filedeck-store-master' )
  • filedeck-store-master/trunk/includes/Modules/Notifications/OrderDocumentsModule.php

    r3744954 r3749403  
    409409                add_meta_box(
    410410                        'storemaster-order-documents',
    411                         __( 'FileDeck Store Master: documents', 'filedeck-store-master' ),
     411                        __( 'StoreMaster: documents', 'filedeck-store-master' ),
    412412                        array( $this, 'render_metabox' ),
    413413                        array_values( array_unique( array_filter( $screens ) ) ),
  • filedeck-store-master/trunk/includes/Modules/Notifications/RecipientsModule.php

    r3744954 r3749403  
    459459                wp_nonce_field( 'storemaster_user_recipients', '_storemaster_nonce' );
    460460                ?>
    461                 <h2><?php esc_html_e( 'FileDeck Store Master order emails', 'filedeck-store-master' ); ?></h2>
     461                <h2><?php esc_html_e( 'StoreMaster order emails', 'filedeck-store-master' ); ?></h2>
    462462                <table class="form-table" role="presentation">
    463463                        <tr>
    … …  
    500500                add_meta_box(
    501501                        'storemaster-order-recipients',
    502                         __( 'FileDeck Store Master: extra recipients', 'filedeck-store-master' ),
     502                        __( 'StoreMaster: extra recipients', 'filedeck-store-master' ),
    503503                        array( $this, 'render_order_metabox' ),
    504504                        array_values( array_unique( array_filter( $screens ) ) ),
  • filedeck-store-master/trunk/includes/Rest/ConfigController.php

    r3744954 r3749403  
    190190                        return new \WP_Error(
    191191                                'storemaster_unsupported_format',
    192                                 __( 'This file was written by a different version of FileDeck Store Master.', 'filedeck-store-master' ),
     192                                __( 'This file was written by a different version of StoreMaster.', 'filedeck-store-master' ),
    193193                                array( 'status' => 422 )
    194194                        );
  • filedeck-store-master/trunk/includes/Rest/OverviewController.php

    r3744954 r3749403  
    7878                                'severity' => 'critical',
    7979                                'code'     => 'safe_mode_active',
    80                                 'text'     => __( 'Safe mode is on: FileDeck Store Master modules are not running on the storefront. Your settings are untouched.', 'filedeck-store-master' ),
     80                                'text'     => __( 'Safe mode is on: StoreMaster modules are not running on the storefront. Your settings are untouched.', 'filedeck-store-master' ),
    8181                        );
    8282                }
    … …  
    141141                                return array(
    142142                                        'code'  => 'resolve_warning',
    143                                         'text'  => __( 'Something needs attention before FileDeck Store Master can be trusted to price your shop correctly.', 'filedeck-store-master' ),
     143                                        'text'  => __( 'Something needs attention before StoreMaster can be trusted to price your shop correctly.', 'filedeck-store-master' ),
    144144                                        'label' => __( 'Open diagnostics', 'filedeck-store-master' ),
    145145                                        'route' => '#/diagnostics',
    … …  
    154154                        return array(
    155155                                'code'  => 'get_started',
    156                                 'text'  => __( 'Nothing runs on your storefront yet. Tell FileDeck Store Master what you are setting up and it will switch on what that kind of shop needs — showing you first, and telling you what is left to do.', 'filedeck-store-master' ),
     156                                'text'  => __( 'Nothing runs on your storefront yet. Tell StoreMaster what you are setting up and it will switch on what that kind of shop needs — showing you first, and telling you what is left to do.', 'filedeck-store-master' ),
    157157                                'label' => __( 'Get started', 'filedeck-store-master' ),
    158158                                'route' => '#/start',
  • filedeck-store-master/trunk/includes/Rest/RulesController.php

    r3744954 r3749403  
    567567                        return new \WP_Error(
    568568                                'storemaster_error',
    569                                 __( 'FileDeck Store Master could not check your permissions for this rule. Try again shortly.', 'filedeck-store-master' ),
     569                                __( 'StoreMaster could not check your permissions for this rule. Try again shortly.', 'filedeck-store-master' ),
    570570                                array( 'status' => 503 )
    571571                        );
    … …  
    679679                                return new \WP_Error(
    680680                                        'storemaster_error',
    681                                         __( 'FileDeck Store Master could not check your permissions for this rule. Try again shortly.', 'filedeck-store-master' ),
     681                                        __( 'StoreMaster could not check your permissions for this rule. Try again shortly.', 'filedeck-store-master' ),
    682682                                        array( 'status' => 503 )
    683683                                );
  • filedeck-store-master/trunk/includes/Rest/SimulateController.php

    r3744954 r3749403  
    335335                        AccessDecision::REASON_LOGIN_REQUIRED => __( 'They would have to sign in first.', 'filedeck-store-master' ),
    336336                        AccessDecision::REASON_PASSWORD       => __( 'They would have to enter an access password.', 'filedeck-store-master' ),
    337                         AccessDecision::REASON_FAIL_CLOSED    => __( 'FileDeck Store Master could not read your access rules, so it refused rather than guess. This needs fixing now.', 'filedeck-store-master' ),
     337                        AccessDecision::REASON_FAIL_CLOSED    => __( 'StoreMaster could not read your access rules, so it refused rather than guess. This needs fixing now.', 'filedeck-store-master' ),
    338338                );
    339339        }
  • filedeck-store-master/trunk/includes/Shared/Blueprints/BlueprintService.php

    r3744954 r3749403  
    295295                $blueprint = $this->get( $id );
    296296                if ( null === $blueprint ) {
    297                         throw new \InvalidArgumentException( 'FileDeck Store Master: no such blueprint.' );
     297                        throw new \InvalidArgumentException( 'StoreMaster: no such blueprint.' );
    298298                }
    299299
    … …  
    530530                $journal = $this->journal();
    531531                if ( ! isset( $journal[ $id ] ) ) {
    532                         throw new \InvalidArgumentException( 'FileDeck Store Master: that blueprint has not been applied here.' );
     532                        throw new \InvalidArgumentException( 'StoreMaster: that blueprint has not been applied here.' );
    533533                }
    534534
  • filedeck-store-master/trunk/includes/Shared/Documents/DocumentService.php

    r3744954 r3749403  
    148148
    149149                Logger::error( 'document_number_allocation_failed', array( 'type' => $type, 'order' => (int) $order->get_id() ) );
    150                 throw new \RuntimeException( 'FileDeck Store Master: could not allocate a document number.' );
     150                throw new \RuntimeException( 'StoreMaster: could not allocate a document number.' );
    151151        }
    152152
  • filedeck-store-master/trunk/includes/Shared/Forms/FormRepository.php

    r3744954 r3749403  
    197197                $key = (string) ( $definition['key'] ?? '' );
    198198                if ( ! preg_match( '/^[a-z][a-z0-9_]{1,40}$/', $key ) ) {
    199                         throw new \InvalidArgumentException( 'FileDeck Store Master: a field key must start with a lowercase letter and contain only lowercase letters, numbers and underscores.' );
     199                        throw new \InvalidArgumentException( 'StoreMaster: a field key must start with a lowercase letter and contain only lowercase letters, numbers and underscores.' );
    200200                }
    201201                $type = (string) ( $definition['type'] ?? 'text' );
    202202                if ( ! in_array( $type, self::TYPES, true ) ) {
    203203                        // phpcs:ignore WordPress.Security.EscapeOutput.ExceptionNotEscaped -- The message becomes a WP_Error the control centre renders as text, so it is escaped at the point of display; naming the rejected type back is the whole value of the message and esc_html() here would mangle it.
    204                         throw new \InvalidArgumentException( 'FileDeck Store Master: unsupported field type ' . $type );
     204                        throw new \InvalidArgumentException( 'StoreMaster: unsupported field type ' . $type );
    205205                }
    206206
    … …  
    211211                // changing the type would silently reinterpret it (PRD 6.5).
    212212                if ( null !== $existing && $existing['type'] !== $type && $this->key_in_use( $owner, $key ) ) {
    213                         throw new \InvalidArgumentException( 'FileDeck Store Master: this field has been used on an order, so its type cannot change. Archive it and add a new field.' );
     213                        throw new \InvalidArgumentException( 'StoreMaster: this field has been used on an order, so its type cannot change. Archive it and add a new field.' );
    214214                }
    215215
    … …  
    251251
    252252                if ( in_array( $type, array( 'select', 'radio' ), true ) && ! $config['options'] ) {
    253                         throw new \InvalidArgumentException( 'FileDeck Store Master: a select or radio field needs at least one option.' );
     253                        throw new \InvalidArgumentException( 'StoreMaster: a select or radio field needs at least one option.' );
    254254                }
    255255
  • filedeck-store-master/trunk/includes/Shared/Money/Decimal.php

    r3744954 r3749403  
    5858                if ( 1 !== preg_match( '/^([+-]?)(\d+)(?:\.(\d*))?$/', $value, $m ) ) {
    5959                        // phpcs:ignore WordPress.Security.EscapeOutput.ExceptionNotEscaped -- $value is the string that just failed the pattern, and whoever has to fix a malformed price needs to see it verbatim. It reaches a log or a WP_Error the admin escapes at the point of display; nothing echoes it as markup, and escaping here would spell entities into the diagnostic.
    60                         throw new \InvalidArgumentException( 'FileDeck Store Master: not a decimal string: ' . $value );
     60                        throw new \InvalidArgumentException( 'StoreMaster: not a decimal string: ' . $value );
    6161                }
    6262                $negative = '-' === $m[1];
    … …  
    7575                if ( strlen( ltrim( $digits, '0' ) ) > 18 ) {
    7676                        // phpcs:ignore WordPress.Security.EscapeOutput.ExceptionNotEscaped -- $value already passed the pattern above, so it is a sign, digits and at most one point; there is nothing in it for an escaper to change. Escaped anyway wherever it is shown.
    77                         throw new \InvalidArgumentException( 'FileDeck Store Master: decimal value out of range: ' . $value );
     77                        throw new \InvalidArgumentException( 'StoreMaster: decimal value out of range: ' . $value );
    7878                }
    7979                $units = (int) $digits;
    … …  
    101101        public static function fromFloat( float $value, int $scale = self::DEFAULT_SCALE ): self {
    102102                if ( ! is_finite( $value ) ) {
    103                         throw new \InvalidArgumentException( 'FileDeck Store Master: non-finite value cannot be a decimal' );
     103                        throw new \InvalidArgumentException( 'StoreMaster: non-finite value cannot be a decimal' );
    104104                }
    105105                return self::of( number_format( $value, $scale, '.', '' ), $scale );
    … …  
    163163        public function div( self $other, ?int $scale = null, string $mode = self::ROUND_HALF_UP ): self {
    164164                if ( 0 === $other->units ) {
    165                         throw new \DomainException( 'FileDeck Store Master: division by zero' );
     165                        throw new \DomainException( 'StoreMaster: division by zero' );
    166166                }
    167167                $target = null === $scale ? $this->scale : max( 0, $scale );
    … …  
    261261        private static function shift( int $units, int $by ): int {
    262262                if ( $by < 0 ) {
    263                         throw new \InvalidArgumentException( 'FileDeck Store Master: negative shift' );
     263                        throw new \InvalidArgumentException( 'StoreMaster: negative shift' );
    264264                }
    265265                for ( $i = 0; $i < $by; $i++ ) {
    266266                        if ( $units > intdiv( PHP_INT_MAX, 10 ) || $units < intdiv( PHP_INT_MIN, 10 ) ) {
    267                                 throw new \OverflowException( 'FileDeck Store Master: decimal overflow' );
     267                                throw new \OverflowException( 'StoreMaster: decimal overflow' );
    268268                        }
    269269                        $units *= 10;
    … …  
    274274        private static function add_units( int $a, int $b ): int {
    275275                if ( ( $b > 0 && $a > PHP_INT_MAX - $b ) || ( $b < 0 && $a < PHP_INT_MIN - $b ) ) {
    276                         throw new \OverflowException( 'FileDeck Store Master: decimal overflow on add' );
     276                        throw new \OverflowException( 'StoreMaster: decimal overflow on add' );
    277277                }
    278278                return $a + $b;
    … …  
    285285                $result = $a * $b;
    286286                if ( ! is_int( $result ) || intdiv( $result, $b ) !== $a ) {
    287                         throw new \OverflowException( 'FileDeck Store Master: decimal overflow on multiply' );
     287                        throw new \OverflowException( 'StoreMaster: decimal overflow on multiply' );
    288288                }
    289289                return $result;
  • filedeck-store-master/trunk/includes/Shared/Money/Money.php

    r3744954 r3749403  
    188188                if ( $this->currency !== $other->currency ) {
    189189                        // phpcs:ignore WordPress.Security.EscapeOutput.ExceptionNotEscaped -- Two ISO codes, each either the store's own currency setting or a literal from calling code. Combining currencies is a programming fault: the message reaches a log or a notice that is escaped where it is displayed, never markup emitted from here.
    190                         throw new \DomainException( 'FileDeck Store Master: cannot combine ' . $this->currency . ' with ' . $other->currency );
     190                        throw new \DomainException( 'StoreMaster: cannot combine ' . $this->currency . ' with ' . $other->currency );
    191191                }
    192192        }
  • filedeck-store-master/trunk/includes/Shared/Privacy/PersonalData.php

    r3744954 r3749403  
    7171                $sources = array(
    7272                        'storemaster-extra-recipients' => array(
    73                                 'label'  => __( 'FileDeck Store Master: extra order email recipients', 'filedeck-store-master' ),
     73                                'label'  => __( 'StoreMaster: extra order email recipients', 'filedeck-store-master' ),
    7474                                'export' => array( __CLASS__, 'export_recipients' ),
    7575                                'erase'  => array( __CLASS__, 'erase_recipients' ),
    7676                        ),
    7777                        'storemaster-checkout-fields'  => array(
    78                                 'label'  => __( 'FileDeck Store Master: checkout field answers', 'filedeck-store-master' ),
     78                                'label'  => __( 'StoreMaster: checkout field answers', 'filedeck-store-master' ),
    7979                                'export' => array( __CLASS__, 'export_checkout_fields' ),
    8080                                'erase'  => array( __CLASS__, 'erase_checkout_fields' ),
    … …  
    179179                                        sprintf(
    180180                                                /* translators: %s: the name of the data source */
    181                                                 __( 'FileDeck Store Master could not erase %s. The data is still there; try again, and check the site log.', 'filedeck-store-master' ),
     181                                                __( 'StoreMaster could not erase %s. The data is still there; try again, and check the site log.', 'filedeck-store-master' ),
    182182                                                $key
    183183                                        ),
  • filedeck-store-master/trunk/includes/Shared/Rules/RepositoryException.php

    r3744954 r3749403  
    4545
    4646                parent::__construct(
    47                         'FileDeck Store Master could not reach the rule store (' . $operation . '): '
     47                        'StoreMaster could not reach the rule store (' . $operation . '): '
    4848                                . ( '' !== $db_error ? $db_error : 'the database refused the query without reporting an error' )
    4949                );
  • filedeck-store-master/trunk/includes/Shared/Storage/Settings.php

    r3744954 r3749403  
    6969                if ( is_string( $encoded ) && strlen( $encoded ) > self::MAX_BYTES ) {
    7070                        // phpcs:ignore WordPress.Security.EscapeOutput.ExceptionNotEscaped -- A diagnostic, never a page: SettingsController answers a LengthException with its own translated sentence and drops this message, so the only place it lands is the log. Escaping the quotes around the domain key would make that log line harder to read, not safer.
    71                         throw new \LengthException( 'FileDeck Store Master: settings for "' . $domain . '" exceed ' . self::MAX_BYTES . ' bytes' );
     71                        throw new \LengthException( 'StoreMaster: settings for "' . $domain . '" exceed ' . self::MAX_BYTES . ' bytes' );
    7272                }
    7373                $key                 = $this->option_name( $domain );
  • filedeck-store-master/trunk/includes/Shared/Support/Json.php

    r3744954 r3749403  
    3333                if ( false === $json ) {
    3434                        // phpcs:ignore WordPress.Security.EscapeOutput.ExceptionNotEscaped -- json_last_error_msg() returns one of PHP's own fixed strings, never caller data. The message is prose that reaches a merchant through a WP_Error the admin escapes at the point of display; escaping it here would only spell entities into the sentence they read.
    35                         throw new \InvalidArgumentException( 'FileDeck Store Master: value is not JSON-encodable (' . json_last_error_msg() . ')' );
     35                        throw new \InvalidArgumentException( 'StoreMaster: value is not JSON-encodable (' . json_last_error_msg() . ')' );
    3636                }
    3737                return $json;
    … …  
    5050                if ( strlen( $json ) > $limit ) {
    5151                        // phpcs:ignore WordPress.Security.EscapeOutput.ExceptionNotEscaped -- $limit is an int: either MAX_BYTES or the ceiling the calling code chose. The message is escaped where it is displayed, not emitted as markup from here.
    52                         throw new \InvalidArgumentException( 'FileDeck Store Master: JSON document exceeds ' . $limit . ' bytes' );
     52                        throw new \InvalidArgumentException( 'StoreMaster: JSON document exceeds ' . $limit . ' bytes' );
    5353                }
    5454                if ( ! self::is_valid_utf8( $json ) ) {
    55                         throw new \InvalidArgumentException( 'FileDeck Store Master: JSON document is not valid UTF-8' );
     55                        throw new \InvalidArgumentException( 'StoreMaster: JSON document is not valid UTF-8' );
    5656                }
    5757                if ( self::has_duplicate_keys( $json ) ) {
    58                         throw new \InvalidArgumentException( 'FileDeck Store Master: JSON document contains duplicate object keys' );
     58                        throw new \InvalidArgumentException( 'StoreMaster: JSON document contains duplicate object keys' );
    5959                }
    6060                $data = json_decode( $json, true, 32, JSON_BIGINT_AS_STRING );
    6161                if ( JSON_ERROR_NONE !== json_last_error() ) {
    6262                        // phpcs:ignore WordPress.Security.EscapeOutput.ExceptionNotEscaped -- json_last_error_msg() returns one of PHP's own fixed strings, never the document that failed to parse. The message is escaped at the point of display, not here.
    63                         throw new \InvalidArgumentException( 'FileDeck Store Master: malformed JSON (' . json_last_error_msg() . ')' );
     63                        throw new \InvalidArgumentException( 'StoreMaster: malformed JSON (' . json_last_error_msg() . ')' );
    6464                }
    6565                if ( ! is_array( $data ) ) {
    66                         throw new \InvalidArgumentException( 'FileDeck Store Master: JSON document must decode to an object or array' );
     66                        throw new \InvalidArgumentException( 'StoreMaster: JSON document must decode to an object or array' );
    6767                }
    6868                return $data;
  • filedeck-store-master/trunk/readme.txt

    r3747742 r3749403  
    55Tested up to: 7.1
    66Requires PHP: 8.1
    7 Stable tag: 3.1.0
     7Stable tag: 3.1.1
    88License: GPLv2 or later
    99License URI: https://www.gnu.org/licenses/gpl-2.0.html
    … …  
    7878== Changelog ==
    7979
     80= 3.1.1 =
     81* Changed: inside WordPress the plugin now calls itself StoreMaster: the admin menu, the editor block, the order and product panels, and its notices and messages. The purchase-order method is listed as "Purchase order (StoreMaster)" in WooCommerce's payment settings; what shoppers see at checkout is unchanged. Nothing to reconfigure, and nothing stored changes.
     82
    8083= 3.1.0 =
    8184* Added: every capability now has a picture. The Modules screen shows one on each card, so you can tell what something does before reading about it.
Note: See TracChangeset for help on using the changeset viewer.