Plugin Directory

Changeset 3339767


Ignore:
Timestamp:
08/05/2025 03:38:20 PM (8 months ago)
Author:
printess
Message:
  • fixed: broken thumbnail retrieval on save actions in PanelUi
  • added: save token timeouts are automtaically extended after replacing the original save token in the admin order view
  • added: admin order view / customer order view are now displaying the expiration date of the save tokens
  • fixed: saved designs do now display the correct timeout date format that is configured inside the wordpress date / time settings
  • added: it is now possible to specify form field mappings for ACF fields
Location:
printess-editor/trunk
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • printess-editor/trunk/includes/js/printessEditor.js

    r3329685 r3339767  
    137137        return document.querySelector("printess-component") || null;
    138138    }
    139     applyFormFieldMappings(formFields, mappings) {
     139    static applyFormFieldMappings(formFields, mappings) {
    140140        const ret = [];
    141141        if (!mappings) {
     
    279279                    break;
    280280                }
    281                 case 'renderFirstPageImage': {
    282                     if (callbacks && typeof callbacks.onRenderedFirstPageImageAsync === "function") {
    283                         callbacks.onRenderedFirstPageImageAsync(evt.data.result);
    284                     }
    285                     break;
    286                 }
    287281                case "getFormField": {
    288282                    if (callbacks && typeof callbacks.onGetFormField === "function") {
     
    293287                case 'save': {
    294288                    if (callbacks && typeof callbacks.onSaveAsync === "function") {
    295                         callbacks.onSaveAsync(evt.data.token);
     289                        callbacks.onSaveAsync(evt.data.token, evt.data.thumbnailUrl);
    296290                    }
    297291                    break;
     
    300294                    if (that.Settings.autoImportImageUrlsInFormFields === true) {
    301295                        try {
    302                             const images = await that.downloadImages(that.getImagesInFormFields(that.applyFormFieldMappings(context.getCurrentFormFieldValues(), context.getFormFieldMappings())));
     296                            const images = await that.downloadImages(that.getImagesInFormFields(PrintessEditor.applyFormFieldMappings(context.getCurrentFormFieldValues(), context.getFormFieldMappings())));
    303297                            if (!that.tempUploadImages) {
    304298                                that.tempUploadImages = images;
     
    319313                    }
    320314                    if (that.Settings.autoImportUserImages === true) {
    321                         let userId = await that.getUserId(context);
    322                         let basketId = await that.getOrGenerateBasketId(context);
     315                        let userId = await PrintessEditor.getUserId(context);
     316                        let basketId = await PrintessEditor.getOrGenerateBasketId(context);
    323317                        if (userId || basketId) {
    324318                            that.uploadUserImagesToClassicEditor(iFrame, basketId, userId);
     
    575569        });
    576570    }
    577     async getOrGenerateBasketId(context) {
     571    static async getOrGenerateBasketId(context) {
    578572        let ret = typeof context.getBasketId === "function" ? context.getBasketId() : "";
    579573        if (!ret && typeof context.getBasketIdAsync === "function") {
     
    605599        return ret || null;
    606600    }
    607     async getUserId(context) {
     601    static async getUserId(context) {
    608602        let ret = typeof context.getUserId === "function" ? context.getUserId() : null;
    609603        if (!ret && typeof context.getUserIdAsync === "function") {
     
    633627        let mergeTemplates = null;
    634628        if (!isSaveToken) {
    635             formFields = that.applyFormFieldMappings(context.getCurrentFormFieldValues(), context.getFormFieldMappings());
     629            formFields = PrintessEditor.applyFormFieldMappings(context.getCurrentFormFieldValues(), context.getFormFieldMappings());
    636630            mergeTemplates = context.getMergeTemplates();
    637631            if (context.additionalAttachParams && typeof context.additionalAttachParams["pageCountFormField"] !== "undefined") {
     
    660654        if (printessComponent && printessComponent.editor) {
    661655            printessComponent.style.display = "block";
    662             context.renderFirstPageImageAsync = async (maxThumbnailWidth, maxThumbnailHeight) => {
    663                 const url = await printessComponent.editor.api.renderFirstPageImage("thumbnail.png", undefined, maxThumbnailWidth, maxThumbnailHeight);
    664                 if (context && typeof context.onRenderFirstPageImageAsync === "function") {
    665                     await context.onRenderFirstPageImageAsync(url);
    666                 }
    667                 else if (context && typeof context.onRenderFirstPageImage === "function") {
    668                     context.onRenderFirstPageImage(url);
    669                 }
    670             };
    671656            await printessComponent.editor.api.loadTemplateAndFormFields(context.templateNameOrSaveToken, mergeTemplates, formFields, null);
    672657            if (!isSaveToken && pageCount !== null && pageCount > 0) {
     
    681666                if (that.Settings.autoImportImageUrlsInFormFields === true) {
    682667                    try {
    683                         const images = await that.downloadImages(that.getImagesInFormFields(that.applyFormFieldMappings(context.getCurrentFormFieldValues(), context.getFormFieldMappings())));
     668                        const images = await that.downloadImages(that.getImagesInFormFields(PrintessEditor.applyFormFieldMappings(context.getCurrentFormFieldValues(), context.getFormFieldMappings())));
    684669                        await that.uploadImagesToBcUiEditor(images, printessComponent.editor);
    685670                    }
     
    690675                if (that.Settings.autoImportUserImages === true) {
    691676                    try {
    692                         let userId = await that.getUserId(context);
    693                         let basketId = await that.getOrGenerateBasketId(context);
     677                        let userId = await PrintessEditor.getUserId(context);
     678                        let basketId = await PrintessEditor.getOrGenerateBasketId(context);
    694679                        if (userId || basketId) {
    695680                            await that.uploadUserImagesToBcUiEditor(printessComponent.editor, basketId, userId);
     
    720705                //templateVersion: "publish",//"draft"
    721706                translationKey: "auto", //"en"
    722                 basketId: await this.getOrGenerateBasketId(context),
    723                 shopUserId: await this.getUserId(context),
     707                basketId: await PrintessEditor.getOrGenerateBasketId(context),
     708                shopUserId: await PrintessEditor.getUserId(context),
    724709                // mobileMargin: {left: 20, right: 40, top: 30, bottom: 40},
    725710                // allowZoomAndPan: false,
     
    766751                    that.hideBcUiVersion(context, true);
    767752                },
    768                 saveTemplateCallback: (saveToken, type) => {
     753                saveTemplateCallback: (saveToken, type, thumbnailUrl) => {
    769754                    if (typeof callbacks.onSaveAsync === "function") {
    770                         callbacks.onSaveAsync(saveToken);
     755                        callbacks.onSaveAsync(saveToken, thumbnailUrl);
    771756                    }
    772757                    if (type && type === "close") {
     
    775760                }
    776761            };
     762            if (typeof context.showSplitterGridSizeButton !== "undefined" && context.showSplitterGridSizeButton !== null) {
     763                attachParams["showSplitterGridSizeButton"] = context.showSplitterGridSizeButton === true || context.showSplitterGridSizeButton === "true";
     764            }
    777765            if (!isSaveToken && pageCount !== null && pageCount >= 1) {
    778766                attachParams["bookInsidePages"] = pageCount;
     767            }
     768            const globalSettings = PrintessEditor.getGlobalShopSettings();
     769            if (typeof globalSettings.getFormFieldProperties === "function") {
     770                attachParams.formFieldProperties = globalSettings.getFormFieldProperties();
    779771            }
    780772            const printess = await printessLoader.load(attachParams);
     
    792784                if (that.Settings.autoImportImageUrlsInFormFields === true) {
    793785                    try {
    794                         const images = await that.downloadImages(that.getImagesInFormFields(that.applyFormFieldMappings(context.getCurrentFormFieldValues(), context.getFormFieldMappings())));
     786                        const images = await that.downloadImages(that.getImagesInFormFields(PrintessEditor.applyFormFieldMappings(context.getCurrentFormFieldValues(), context.getFormFieldMappings())));
    795787                        await that.uploadImagesToBcUiEditor(images, printessComponent.editor);
    796788                    }
     
    801793                if (that.Settings.autoImportUserImages === true) {
    802794                    try {
    803                         let userId = await that.getUserId(context);
    804                         let basketId = await that.getOrGenerateBasketId(context);
     795                        let userId = await PrintessEditor.getUserId(context);
     796                        let basketId = await PrintessEditor.getOrGenerateBasketId(context);
    805797                        if (userId || basketId) {
    806798                            await that.uploadUserImagesToBcUiEditor(printessComponent.editor, basketId, userId);
     
    864856                await that.onPriceChanged(priceInfo, context);
    865857            },
    866             onRenderedFirstPageImageAsync: async (result) => {
    867                 if (typeof context.onRenderFirstPageImageAsync === "function") {
    868                     await context.onRenderFirstPageImageAsync(result);
    869                 }
    870                 else if (typeof context.onRenderFirstPageImage === "function") {
    871                     context.onRenderFirstPageImage(result);
    872                 }
    873             },
    874858            onGetFormField: (result) => {
    875859                if (typeof context.onGetFormField === "function") {
     
    877861                }
    878862            },
    879             onSaveAsync: async (saveToken) => {
     863            onSaveAsync: async (saveToken, thumbnailUrl) => {
    880864                if (typeof context.onSaveAsync === "function") {
    881                     await context.onSaveAsync(saveToken, "");
     865                    await context.onSaveAsync(saveToken, thumbnailUrl);
    882866                }
    883867                else if (typeof context.onSave === "function") {
    884                     context.onSave(saveToken, "");
     868                    context.onSave(saveToken, thumbnailUrl);
    885869                }
    886870            },
     
    907891            let mergeTemplates = null;
    908892            if (!isSaveToken) {
    909                 formFields = this.applyFormFieldMappings(context.getCurrentFormFieldValues(), context.getFormFieldMappings());
     893                formFields = PrintessEditor.applyFormFieldMappings(context.getCurrentFormFieldValues(), context.getFormFieldMappings());
    910894                mergeTemplates = context.getMergeTemplates();
    911895                if (context.additionalAttachParams && typeof context.additionalAttachParams["pageCountFormField"] !== "undefined") {
     
    920904            }
    921905            const iFrame = await this.initializeIFrame(callbacks, context, this.Settings);
    922             context.renderFirstPageImageAsync = (maxThumbnailWidth, maxThumbnailHeight) => {
    923                 setTimeout(function () {
    924                     iFrame.contentWindow.postMessage({
    925                         cmd: "renderFirstPageImage",
    926                         properties: {}
    927                     }, "*");
    928                 }, 0);
    929                 return Promise.resolve();
    930             };
    931906            if (iFrame.getAttribute('data-attached') === "false") {
    932907                try {
     
    937912                        showBuyerSide: true,
    938913                        templateUserId: '',
    939                         basketId: await this.getOrGenerateBasketId(context),
    940                         shopUserId: await this.getUserId(context),
     914                        basketId: await PrintessEditor.getOrGenerateBasketId(context),
     915                        shopUserId: await PrintessEditor.getUserId(context),
    941916                        formFields: formFields,
    942917                        snippetPriceCategoryLabels: priceInfo && priceInfo.snippetPrices ? priceInfo.snippetPrices : null,
     
    945920                    if (typeof context.showSplitterGridSizeButton !== "undefined" && context.showSplitterGridSizeButton !== null) {
    946921                        attachParams["showSplitterGridSizeButton"] = context.showSplitterGridSizeButton === true || context.showSplitterGridSizeButton === "true";
     922                    }
     923                    const globalSettings = PrintessEditor.getGlobalShopSettings();
     924                    if (typeof globalSettings.getFormFieldProperties === "function") {
     925                        attachParams.formFieldProperties = globalSettings.getFormFieldProperties();
    947926                    }
    948927                    if (this.Settings.uiSettings && this.Settings.uiSettings.theme) {
  • printess-editor/trunk/includes/js/printessWoocommerce.js

    r3336133 r3339767  
    848848                return ret;
    849849            },
    850             onRenderFirstPageImage: (thumbnailUrl) => {
    851                 if (context.cameFromSave && context.lastSaveSaveToken) {
    852                     try {
    853                         context.onSave(context.lastSaveSaveToken, thumbnailUrl, true);
    854                     }
    855                     catch (e) {
    856                         console.error(e);
    857                     }
    858                     context.cameFromSave = false;
    859                     context.lastSaveSaveToken = "";
    860                 }
    861             },
    862             onSave: (saveToken, thumbnailUrl, cameFromRenderFirstPageImage = false) => {
     850            onSave: (saveToken, thumbnailUrl) => {
    863851                context.cameFromSave = true;
    864852                context.lastSaveSaveToken = saveToken;
    865853                const productValues = getCurrentProductOptionValues(settings.product);
    866854                const variant = getCurrentVariant(productValues, settings.product);
    867                 if (!cameFromRenderFirstPageImage) {
    868                     postMessage("renderFirstPageImage", null);
    869                 }
    870                 else {
    871                     if (printessSettings.editorMode === "admin") {
    872                         saveAdminSaveToken(saveToken, thumbnailUrl);
     855                if (printessSettings.editorMode === "admin") {
     856                    saveAdminSaveToken(saveToken, thumbnailUrl);
     857                    return;
     858                }
     859                const cancelCallback = () => {
     860                };
     861                const saveDesignCallback = (designName) => {
     862                    if (!designName || !designName.trim()) {
     863                        alert(printessSettings.userMessages && printessSettings.userMessages["noDisplayName"] ? printessSettings.userMessages["noDisplayName"] : 'Please provide a display name.');
     864                        showSaveDialog(context.designName || "", printessSettings.userIsLoggedIn ? saveDesignCallback : loginCallback, cancelCallback);
    873865                        return;
    874866                    }
    875                     const cancelCallback = () => {
    876                     };
    877                     const saveDesignCallback = (designName) => {
    878                         if (!designName || !designName.trim()) {
    879                             alert(printessSettings.userMessages && printessSettings.userMessages["noDisplayName"] ? printessSettings.userMessages["noDisplayName"] : 'Please provide a display name.');
    880                             showSaveDialog(context.designName || "", printessSettings.userIsLoggedIn ? saveDesignCallback : loginCallback, cancelCallback);
    881                             return;
    882                         }
    883                         showInformationOverlay(printessSettings.userMessages && printessSettings.userMessages["savingDesign"] ? printessSettings.userMessages["savingDesign"] : "Saving design to your list of saved designs");
    884                         saveDesign(saveToken, thumbnailUrl, settings.product.id, designName, context.designId, getCurrentProductOptionValues(settings.product, false), (savedDesignName, savedDesignId) => {
    885                             hideInformationOverlay();
    886                             context.designName = savedDesignName;
    887                             context.designId = savedDesignId;
    888                             try {
    889                                 const globalConfig = getGlobalConfig();
    890                                 if (globalConfig && typeof globalConfig.onSave === "function") {
    891                                     globalConfig.onSave(saveToken, thumbnailUrl);
    892                                 }
    893                             }
    894                             catch (e) {
    895                                 console.error(e);
    896                             }
    897                         }, (message) => {
    898                             hideInformationOverlay();
    899                             alert(message);
    900                             showSaveDialog(context.designName, printessSettings.userIsLoggedIn ? saveDesignCallback : loginCallback, cancelCallback);
    901                         });
    902                     };
    903                     const loginCallback = (designName) => {
    904                         if (!loginAndSave(designName, settings.product.id, variant ? variant.id : null, saveToken, thumbnailUrl, productValues)) {
    905                             alert(printessSettings.userMessages && printessSettings.userMessages["noDisplayName"] ? printessSettings.userMessages["noDisplayName"] : 'Please provide a display name.');
    906                             showSaveDialog(designName, printessSettings.userIsLoggedIn ? saveDesignCallback : loginCallback, cancelCallback);
    907                         }
    908                     };
    909                     showSaveDialog(context.designName, printessSettings.userIsLoggedIn ? saveDesignCallback : loginCallback, cancelCallback);
    910                 }
     867                    showInformationOverlay(printessSettings.userMessages && printessSettings.userMessages["savingDesign"] ? printessSettings.userMessages["savingDesign"] : "Saving design to your list of saved designs");
     868                    saveDesign(saveToken, thumbnailUrl, settings.product.id, designName, context.designId, getCurrentProductOptionValues(settings.product, false), (savedDesignName, savedDesignId) => {
     869                        hideInformationOverlay();
     870                        context.designName = savedDesignName;
     871                        context.designId = savedDesignId;
     872                        try {
     873                            const globalConfig = getGlobalConfig();
     874                            if (globalConfig && typeof globalConfig.onSave === "function") {
     875                                globalConfig.onSave(saveToken, thumbnailUrl);
     876                            }
     877                        }
     878                        catch (e) {
     879                            console.error(e);
     880                        }
     881                    }, (message) => {
     882                        hideInformationOverlay();
     883                        alert(message);
     884                        showSaveDialog(context.designName, printessSettings.userIsLoggedIn ? saveDesignCallback : loginCallback, cancelCallback);
     885                    });
     886                };
     887                const loginCallback = (designName) => {
     888                    if (!loginAndSave(designName, settings.product.id, variant ? variant.id : null, saveToken, thumbnailUrl, productValues)) {
     889                        alert(printessSettings.userMessages && printessSettings.userMessages["noDisplayName"] ? printessSettings.userMessages["noDisplayName"] : 'Please provide a display name.');
     890                        showSaveDialog(designName, printessSettings.userIsLoggedIn ? saveDesignCallback : loginCallback, cancelCallback);
     891                    }
     892                };
     893                showSaveDialog(context.designName, printessSettings.userIsLoggedIn ? saveDesignCallback : loginCallback, cancelCallback);
    911894            },
    912895            getBasketId: () => { return settings.basketId; },
  • printess-editor/trunk/includes/printess-admin-settings.php

    r3336133 r3339767  
    236236
    237237        return false;
     238    }
     239
     240    static function get_acf_field_mappings(): array {
     241        $setting = get_option( 'printess_acf_field_mapping', false );
     242        $ret = [];
     243        $parse_as_text = false;
     244
     245        if(null === $setting) {
     246            $setting = "";
     247        }
     248
     249        if(!empty($setting)) {
     250            try {
     251               $values = json_decode($setting, true);
     252
     253               if(null !== $values && is_array($values)) {
     254                foreach($values as $key => $value) {
     255                    if(null !== $key && null !== $value) {
     256                        $key = trim("" . $key);
     257                        $value = trim("" . $value);
     258
     259                        if(!empty($key) && !empty($value)) {
     260                            $ret[$key] = $value;
     261                        }
     262                    }
     263                }
     264               } else {
     265                    $parse_as_text = true;
     266                }
     267            } catch(\Exception $ex) {
     268                $parse_as_text = true;
     269            }
     270
     271            if($parse_as_text) {
     272                $lines = str_replace("\r\n", "\n", "" . $setting);
     273                $lines = explode("\n", $lines);
     274
     275                foreach($lines as $line) {
     276                    $line = trim($line);
     277                    $parts = explode(":", $line);
     278
     279                    if(count($parts) > 1) {
     280                        $key = trim($parts[0]);
     281                        $value = trim($parts[1]);
     282
     283                        if(!empty($key) && !empty($value)) {
     284                            $ret[$key] = $value;
     285                        }
     286                    }
     287                }
     288            }
     289        }
     290
     291        return $ret;
    238292    }
    239293
     
    10771131                ?>
    10781132
    1079                 <textarea style="min-width: 50%; min-height: 200px:" name="printess_user_fields" ?><?php echo esc_attr( $setting ); ?></textarea>
     1133                <textarea style="min-width: 50%;" rows="10" name="printess_user_fields" ?><?php echo esc_attr( $setting ); ?></textarea>
    10801134
    10811135                <?php
     
    11121166
    11131167                <input type="checkbox" name="printess_use_acf_name_instead_of_label" <?php echo esc_html( $checked ); ?> >
     1168                <?php
     1169            },
     1170            'printess-settings',
     1171            'printess_settings_section'
     1172        );
     1173
     1174        register_setting(
     1175            'printess-settings',
     1176            'printess_acf_field_mapping',
     1177            array(
     1178                'type'    => 'string',
     1179                'default' => "",
     1180            )
     1181        );
     1182
     1183        add_settings_field(
     1184            'printess_acf_field_mapping',
     1185            __( 'ACF Field to Printess formfield mappings', 'printess-editor' ),
     1186            function() {
     1187                $setting = get_option( 'printess_acf_field_mapping', "");
     1188
     1189
     1190                if ( null === $setting) {
     1191                    $setting = "";
     1192                }
     1193
     1194                ?>
     1195
     1196                <textarea style="min-width: 50%;" rows="10" name="printess_acf_field_mapping" ?><?php echo esc_attr( $setting ); ?></textarea>
    11141197                <?php
    11151198            },
  • printess-editor/trunk/includes/printess-api.php

    r3226357 r3339767  
    3030            'data_format' => 'body',
    3131        );
    32    
     32
    3333        $response = wp_remote_post( $url, $args );
    34    
     34
    3535        if ( is_wp_error( $response ) ) {
    3636            $error_message = $response->get_error_message();
    3737            throw new \Exception( $error_message );
    3838        }
    39    
     39
    4040        return json_decode( wp_remote_retrieve_body( $response ), true );
    4141    }
     
    6161            'sslverify'   => $ssl_verify,
    6262        );
    63    
     63
    6464        $response = wp_remote_get( $url, $args );
    65    
     65
    6666        if ( is_wp_error( $response ) ) {
    6767            $error_message = $response->get_error_message();
    6868            throw new \Exception( $error_message );
    6969        }
    70    
     70
    7171        return json_decode( wp_remote_retrieve_body( $response ), true );
    7272    }
     
    139139        );
    140140    }
     141
     142    static function get_save_token_info($save_token) {
     143        include_once("printess-admin-settings.php");
     144
     145        $printess_host = PrintessAdminSettings::get_host();
     146        $service_token = PrintessAdminSettings::get_service_token();
     147
     148        return PrintessApi::send_post_request("$printess_host/shop/template/info/", $service_token, Array( "id" => $save_token));
     149    }
     150
     151    static function get_expiration_date($save_token) {
     152        $info = PrintessApi::get_save_token_info($save_token);
     153
     154        if(null !== $info && is_array($info) && array_key_exists("expiresOn", $info) && null !== $info["expiresOn"] && !empty($info["expiresOn"])) {
     155            return new DateTime($info["expiresOn"]);
     156        }
     157
     158        return null;
     159    }
    141160}
    142161
  • printess-editor/trunk/languages/printess-editor-en_US.po

    r3324841 r3339767  
    44"Report-Msgid-Bugs-To: \n"
    55"POT-Creation-Date: 2023-09-26 09:19+0000\n"
    6 "PO-Revision-Date: 2025-06-02 13:37+0000\n"
     6"PO-Revision-Date: 2025-08-05 15:31+0000\n"
    77"Last-Translator: \n"
    88"Language-Team: English (United States)\n"
     
    1616"X-Domain: printess-editor"
    1717
    18 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:2697
     18#: includes/printess-admin-settings.php:798
    1919msgid "Access Token"
    2020msgstr ""
    2121
    22 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:1913
     22#: printess.php:2138
    2323msgid "account page"
    2424msgstr "account page"
    2525
    26 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:2527
     26#: includes/printess-admin-settings.php:394
    2727msgid "Add to cart after customization"
    2828msgstr "Add to cart after customization"
    2929
    30 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:2493
     30#: includes/printess-admin-settings.php:337
    3131msgid "Additional classes for customize button"
    3232msgstr "Additional classes for customize button"
    3333
    34 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:188
     34#: printess.php:71
    3535msgid ""
    3636"After saving, your saved design can be found under {SAVE_DESIGN} on your "
     
    3838msgstr ""
    3939
    40 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:2425
     40#: includes/printess-admin-settings.php:253
    4141msgid "Api Domain"
    4242msgstr "Api Domain"
    4343
    44 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:1893
     44#: printess.php:2085
    4545msgid "Approve and send to production."
    4646msgstr "Approve and send to production."
    4747
    48 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:2297
     48#: includes/printess-admin-settings.php:374
    4949msgid "Automatic"
    5050msgstr "Automatic"
    5151
    52 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:4147
     52#: printess.php:3304
    5353msgid "Available until"
    5454msgstr ""
    5555
    56 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:194
     56#: includes/printess-product-helpers.php:360
     57msgid "Buyer side user interface"
     58msgstr ""
     59
     60#: printess.php:77 includes/printess-dialogs.php:25
    5761msgid "Cancel"
    5862msgstr ""
    5963
    60 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:2476
     64#: includes/printess-admin-settings.php:316
    6165msgid "Class names to hide when showing editor"
    6266msgstr "Class names to hide when showing editor"
    6367
    64 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:3652
     68#: includes/printess-product-helpers.php:361
     69msgid "Classical or the new PanelUi (Beta!)."
     70msgstr ""
     71
     72#: printess.php:2691
    6573msgid "Could not find line item or product..."
    6674msgstr ""
    6775
    68 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:488
    69 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:3626
     76#: printess.php:542 printess.php:2664
    7077msgid "Customize"
    7178msgstr "Customize"
    7279
    73 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:2180
    74 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:2228
     80#: includes/printess-admin-settings.php:643
     81#: includes/printess-admin-settings.php:703
    7582msgid "days"
    7683msgstr ""
    7784
    78 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:3448
     85#: includes/printess-product-helpers.php:305
    7986msgid "Default"
    8087msgstr ""
    8188
    82 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:3072
     89#: includes/printess-admin-settings.php:992
     90msgid "Default Editor Theme"
     91msgstr ""
     92
     93#: includes/printess-html-helpers.php:56
    8394msgid "Defaults"
    8495msgstr "Defaults"
    8596
    86 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:4147
    87 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:4183
     97#: printess.php:3304 printess.php:3340
    8898msgid "Delete"
    8999msgstr ""
    90100
    91 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:182
     101#: printess.php:1712 printess.php:1940
     102msgid "Design Name"
     103msgstr ""
     104
     105#: printess.php:65 includes/printess-dialogs.php:16
    92106msgid "Design name"
    93107msgstr ""
    94108
    95 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:2595
     109#: includes/printess-admin-settings.php:506
    96110msgid "Display legal info in case prices are displayed inside editor"
    97111msgstr ""
    98112
    99 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:2765
     113#: includes/printess-admin-settings.php:932
    100114msgid "Display line item id in order view"
    101115msgstr ""
    102116
    103 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:4147
     117#: printess.php:3304
    104118msgid "Display name"
    105119msgstr ""
    106120
    107 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:3036
    108 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:3076
     121#: includes/printess-product-helpers.php:311
     122#: includes/printess-admin-settings.php:1066
     123msgid "Do not use"
     124msgstr ""
     125
     126#: includes/printess-html-helpers.php:20 includes/printess-html-helpers.php:60
    109127msgid "Do not use dropshipping override"
    110128msgstr ""
    111129
    112 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:3349
     130#: includes/printess-product-helpers.php:274
     131msgid "Document based output settings"
     132msgstr ""
     133
     134#: includes/printess-product-helpers.php:275
     135msgid ""
     136"Document specific output settings (e.g. different file format for different "
     137"documents)"
     138msgstr ""
     139
     140#: includes/printess-product-helpers.php:173
    113141msgid "Dropshipping"
    114142msgstr "Dropshipping"
    115143
    116 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:2820
    117 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:4147
    118 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:4179
    119 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:4227
     144#: printess.php:2178 printess.php:3304 printess.php:3336 printess.php:3384
    120145msgid "Edit"
    121146msgstr "Edit"
    122147
    123 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:1845
     148#: printess.php:2037
    124149msgid "Edit Customer Design"
    125150msgstr "Edit Customer Design"
    126151
    127 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:2442
     152#: printess.php:2029
     153msgid "Edit save token"
     154msgstr ""
     155
     156#: includes/printess-admin-settings.php:274
    128157msgid "Embed Html Url"
    129158msgstr "Embed Html Url"
    130159
    131 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:2782
     160#: includes/printess-admin-settings.php:962
    132161msgid "Enable Debug Mode"
    133162msgstr "Enable Debug Mode"
    134163
    135 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:2646
     164#: includes/printess-admin-settings.php:602
    136165msgid "Enable saving of designs"
    137166msgstr ""
    138167
    139 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:183
     168#: includes/printess-admin-settings.php:1068
     169msgid "enforce"
     170msgstr ""
     171
     172#: includes/printess-admin-settings.php:1056
     173msgid "Enforce Design Name during add to basket"
     174msgstr ""
     175
     176#: includes/printess-dialogs.php:17
     177msgid "Enter the design name"
     178msgstr ""
     179
     180#: printess.php:66
    140181msgid "Enter your display name"
     182msgstr ""
     183
     184#: printess.php:2101
     185msgid "Form field"
    141186msgstr ""
    142187
     
    149194msgstr "https://printess.com/kb/integrations/woo-commerce/index.html"
    150195
    151 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:2459
     196#: includes/printess-admin-settings.php:295
    152197msgid "Ids to hide when showing editor"
    153198msgstr "Ids to hide when showing editor"
    154199
    155 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:2629
     200#: printess.php:1996
     201msgid "Invalid save token"
     202msgstr ""
     203
     204#: includes/printess-product-helpers.php:287
     205msgid "Item Usage"
     206msgstr ""
     207
     208#: includes/printess-admin-settings.php:563
    156209msgid "JPEG Compression"
    157210msgstr ""
    158211
    159 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:2317
     212#: includes/printess-admin-settings.php:543
    160213msgid "JPG"
    161214msgstr ""
    162215
    163 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:3429
     216#: includes/printess-product-helpers.php:253
    164217msgid "JPG compression"
    165218msgstr ""
    166219
    167 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:1615
     220#: includes/printess-product-helpers.php:288
     221msgid "Json configuration for item based usage pricing"
     222msgstr ""
     223
     224#: printess.php:1716
    168225msgid "Line item id"
    169226msgstr ""
    170227
    171 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:1842
     228#: printess.php:2034
    172229msgid "Line item id:"
    173230msgstr ""
    174231
    175 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:3723
     232#: printess.php:2778
    176233msgid "Loading editor..."
    177234msgstr ""
    178235
    179 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:2298
     236#: includes/printess-admin-settings.php:375
    180237msgid "Manual"
    181238msgstr "Manual"
    182239
    183 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:3371
     240#: includes/printess-product-helpers.php:195
    184241msgid "Merge Template 1"
    185242msgstr "Merge Template 1"
    186243
    187 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:3379
     244#: includes/printess-product-helpers.php:203
    188245msgid "Merge Template 2"
    189246msgstr "Merge Template 2"
    190247
    191 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:3387
     248#: includes/printess-product-helpers.php:211
    192249msgid "Merge Template 3"
    193250msgstr "Merge Template 3"
    194251
    195 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:4204
     252#: printess.php:3361
    196253msgid "Next"
    197254msgstr ""
    198255
    199 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:3038
    200 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:3062
    201 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:3081
     256#: includes/printess-html-helpers.php:22 includes/printess-html-helpers.php:46
     257#: includes/printess-html-helpers.php:65
    202258msgid "No dropshipping"
    203259msgstr "No dropshipping"
    204260
    205 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:4117
     261#: printess.php:3274
    206262msgid "No saved designs yet"
    207263msgstr ""
    208264
    209 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:4076
     265#: printess.php:3233
    210266msgid "Not logged in"
    211267msgstr ""
    212268
    213 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:1683
     269#: includes/printess-dialogs.php:24
     270msgid "Ok"
     271msgstr ""
     272
     273#: printess.php:1791
    214274msgid "Open"
    215275msgstr ""
    216276
    217 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:1611
     277#: printess.php:1708
    218278msgid "Open design"
    219279msgstr ""
    220280
    221 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:2510
     281#: includes/printess-admin-settings.php:1067
     282msgid "optional"
     283msgstr ""
     284
     285#: includes/printess-admin-settings.php:358
    222286msgid "Order Approval Mode"
    223287msgstr "Order Approval Mode"
    224288
    225 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:2680
     289#: includes/printess-admin-settings.php:692
    226290msgid "Ordered Design lifetime (Days)"
    227291msgstr ""
    228292
    229 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:3414
     293#: printess.php:1967
     294msgid "Original Save token:"
     295msgstr ""
     296
     297#: includes/printess-product-helpers.php:238
    230298msgid "Output DPI"
    231299msgstr "Output DPI"
    232300
    233 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:2612
     301#: includes/printess-admin-settings.php:531
    234302msgid "Output Format"
    235303msgstr ""
    236304
    237 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:3399
     305#: includes/printess-product-helpers.php:223
    238306msgid "Output Type"
    239307msgstr "Output Type"
    240308
    241 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:2714
     309#: includes/printess-admin-settings.php:823
    242310msgid "Overwrite product drop shipper in case of template mode"
    243311msgstr ""
    244312
    245 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:2315
     313#: includes/printess-product-helpers.php:322
     314msgid "Page Count Option"
     315msgstr ""
     316
     317#: includes/printess-admin-settings.php:541
    246318msgid "PDF"
    247319msgstr ""
     
    255327"possibilities."
    256328
    257 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:1585
     329#: printess.php:1682
    258330msgid "Personalized products"
    259331msgstr ""
    260332
    261 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:447
     333#: printess.php:494
    262334msgid "Please close this window or tab."
    263335msgstr "Please close this window or tab."
    264336
    265 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:1912
     337#: printess.php:2137
    266338msgid "Please copy & paste the shop and service tokens from your"
    267339msgstr "Please copy & paste the shop and service tokens from your"
    268340
    269 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:444
     341#: includes/printess-dialogs.php:12
     342msgid "Please provide a design name"
     343msgstr ""
     344
     345#: printess.php:491
    270346msgid "Please provide a display name."
    271347msgstr ""
    272348
    273 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:2316
     349#: includes/printess-admin-settings.php:542
    274350msgid "PNG"
    275351msgstr ""
    276352
    277 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:4200
     353#: printess.php:3357
    278354msgid "Previous"
    279355msgstr ""
     
    287363msgstr "Printess Editor"
    288364
    289 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:1855
     365#: printess.php:2047
    290366msgid "Printess Error Details"
    291367msgstr "Printess Error Details"
    292368
    293 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:1861
    294 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:1869
    295 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:1877
     369#: printess.php:2095
     370msgid "Printess Form Fields"
     371msgstr ""
     372
     373#: printess.php:2053 printess.php:2061 printess.php:2069
    296374msgid "Printess Production Files"
    297375msgstr "Printess Production Files"
    298376
    299377#. section slug .
    300 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:2389
     378#: includes/printess-admin-settings.php:209
    301379msgid "Printess Settings"
    302380msgstr "Printess Settings"
    303381
    304 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:3825
     382#: printess.php:2926
    305383msgid "Printess Template"
    306384msgstr "Printess Template"
    307385
    308 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:1895
     386#: printess.php:2087
    309387msgid "Processing."
    310388msgstr "Processing."
    311389
    312 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:1600
    313 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:1743
     390#: printess.php:1697 printess.php:1855
    314391msgid "Product"
    315392msgstr "Product"
    316393
    317 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:4147
     394#: printess.php:3304
    318395msgid "Product name"
    319396msgstr ""
    320397
    321 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:1656
     398#: printess.php:1764
    322399msgid "Product thumbnail"
    323400msgstr ""
    324401
    325 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:2731
     402#: includes/printess-admin-settings.php:870
    326403msgid "Provide input for design name on second save"
    327404msgstr ""
    328405
    329 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:3446
     406#: includes/printess-admin-settings.php:1019
     407msgid "Push user fields"
     408msgstr ""
     409
     410#: includes/printess-product-helpers.php:303
    330411msgid "Redirect page"
    331412msgstr ""
    332413
    333 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:170
    334 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:193
     414#: printess.php:53 printess.php:76
    335415msgid "Save design"
    336416msgstr ""
    337417
    338 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:1919
     418#: printess.php:2144
    339419msgid "Save Settings"
    340420msgstr "Save Settings"
    341421
    342 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:2663
     422#: printess.php:1983
     423msgid "Save token:"
     424msgstr ""
     425
     426#: includes/printess-admin-settings.php:632
    343427msgid "Saved Design lifetime (Days)"
    344428msgstr ""
    345429
    346 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:3875
    347 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:4136
     430#: printess.php:2976 printess.php:3293
    348431msgid "Saved Designs"
    349432msgstr ""
    350433
    351 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:173
    352 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:177
    353 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:188
     434#: printess.php:56 printess.php:60 printess.php:71
    354435msgid "Saved designs"
    355436msgstr ""
    356437
    357 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:3722
     438#: printess.php:2777
    358439#, fuzzy
    359440#| msgid "Saving design and redirecting back to product page..."
     
    361442msgstr "Saving design and redirecting back to product page..."
    362443
    363 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:446
     444#: printess.php:493
    364445msgid "Saving design to your list of saved designs"
    365446msgstr ""
    366447
    367 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:168
     448#: printess.php:51
    368449msgid "Saving your design"
    369450msgstr ""
    370451
    371 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:4139
     452#: printess.php:3296
    372453msgid "Search"
    373454msgstr ""
    374455
    375 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:4137
     456#: printess.php:3294
    376457msgid "Search for name"
    377458msgstr ""
    378459
    379 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:2408
     460#: includes/printess-admin-settings.php:232
    380461msgid "Service Token"
    381462msgstr "Service Token"
    382463
    383 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:1738
     464#: printess.php:1850
    384465msgid "Shipping"
    385466msgstr "Shipping"
    386467
    387 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:1503
    388 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:1607
    389 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:1748
     468#: printess.php:1594 printess.php:1704 printess.php:1860
    390469msgid "Shipping status"
    391470msgstr "Shipping status"
    392471
    393472#. setting slug .
    394 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:2398
     473#: includes/printess-admin-settings.php:218
    395474msgid "Shop Token"
    396475msgstr "Shop Token"
    397476
    398 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:2544
     477#: includes/printess-admin-settings.php:420
    399478msgid "Show customize button on archive page"
    400479msgstr "Show customize button on archive page"
    401480
    402 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:2748
     481#: includes/printess-admin-settings.php:898
    403482msgid "Show original product in basket"
    404483msgstr ""
    405484
    406 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:2561
     485#: includes/printess-admin-settings.php:446
    407486msgid "Show prices inside editor"
    408487msgstr ""
    409488
    410 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:2578
     489#: includes/printess-admin-settings.php:476
    411490msgid "Show product name inside editor"
    412491msgstr ""
    413492
    414 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:3430
     493#: includes/printess-admin-settings.php:775
     494msgid "The height of the rendered thumbnail"
     495msgstr ""
     496
     497#: includes/printess-product-helpers.php:254
    415498msgid "The jpg compression ratio. Defaults to 90. 0 = Use system setting"
    416499msgstr ""
    417500
    418 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:3372
     501#: includes/printess-product-helpers.php:196
    419502msgid "The name of the optional 1st merge template within Printess"
    420503msgstr "The name of the optional 1st merge template within Printess"
    421504
    422 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:3380
     505#: includes/printess-product-helpers.php:204
    423506msgid "The name of the optional 2nd merge template within Printess"
    424507msgstr "The name of the optional 2nd merge template within Printess"
    425508
    426 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:3388
     509#: includes/printess-product-helpers.php:212
    427510msgid "The name of the optional 3rd merge template within Printess"
    428511msgstr "The name of the optional 3rd merge template within Printess"
    429512
    430 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:3400
     513#: includes/printess-product-helpers.php:323
     514msgid ""
     515"The option that contains the page count for configurable book templates."
     516msgstr ""
     517
     518#: includes/printess-product-helpers.php:224
    431519msgid "The output file type. Defaults to output a pdf file."
    432520msgstr "The output file type. Defaults to output a pdf file."
    433521
    434 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:3447
     522#: includes/printess-product-helpers.php:304
    435523msgid ""
    436524"The page that should be opened after the product has been added to the cart."
    437525msgstr ""
    438526
    439 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:3415
     527#: includes/printess-product-helpers.php:239
    440528msgid "The used output dpi. Defaults to 300"
    441529msgstr "The used output dpi. Defaults to 300"
    442530
    443 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:445
     531#: includes/printess-admin-settings.php:752
     532msgid "The width of the rendered thumbnail"
     533msgstr ""
     534
     535#: printess.php:492
    444536msgid "There was an error while trying to save your design"
    445537msgstr ""
    446538
    447 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:3000
     539#: printess.php:2343
    448540msgid "This item was edited. Consider removing it from your cart."
    449541msgstr ""
    450542
    451 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:4147
     543#: printess.php:3304
    452544msgid "Thumbnail"
    453545msgstr ""
    454546
    455 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:2318
     547#: includes/printess-admin-settings.php:544
    456548msgid "TIF"
    457549msgstr ""
    458550
    459 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:1482
    460 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:1603
    461 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:1745
     551#: printess.php:1573 printess.php:1700 printess.php:1857
    462552msgid "Tracking"
    463553msgstr "Tracking"
    464554
    465 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:1466
    466 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:1622
    467 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:1758
     555#: printess.php:1557 printess.php:1723 printess.php:1870
    468556msgid "Tracking link"
    469557msgstr "Tracking link"
    470558
    471 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:2180
    472 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:2190
    473 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:2228
    474 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:2238
     559#: includes/printess-admin-settings.php:643
     560#: includes/printess-admin-settings.php:653
     561#: includes/printess-admin-settings.php:703
     562#: includes/printess-admin-settings.php:713
    475563msgid "Unlimited"
    476564msgstr ""
    477565
    478 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:3040
    479 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:3082
     566#: includes/printess-html-helpers.php:24 includes/printess-html-helpers.php:66
    480567msgid "Use template settings"
    481568msgstr "Use template settings"
    482569
    483 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:1444
     570#: printess.php:2102
     571msgid "Value"
     572msgstr ""
     573
     574#: printess.php:1535
    484575msgid "View thumbnail in new window."
    485576msgstr "View thumbnail in new window."
    486577
    487 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:170
     578#: printess.php:53
    488579msgid ""
    489580"You are currently not logged in. To be able to save designs you need to be "
     
    494585msgstr ""
    495586
    496 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:177
     587#: printess.php:60
    497588msgid ""
    498589"You can provide a new design name to store this version under a different "
     
    500591msgstr ""
    501592
    502 #: /home/alex/printess/src/Printess/shopIntegrations/woocommerce/printess.php:173
     593#: printess.php:56
    503594msgid ""
    504595"You need to provide a display name for your saved design. This name is shown "
  • printess-editor/trunk/languages/printess-editor.pot

    r3324841 r3339767  
    44"Project-Id-Version: Printess Editor\n"
    55"Report-Msgid-Bugs-To: \n"
    6 "POT-Creation-Date: 2025-06-02 13:40+0000\n"
     6"POT-Creation-Date: 2025-08-05 15:33+0000\n"
    77"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
    88"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
     
    1717"X-Domain: printess-editor"
    1818
    19 #: includes/printess-admin-settings.php:798
     19#: includes/printess-admin-settings.php:904
    2020msgid "Access Token"
    2121msgstr ""
    2222
    23 #: printess.php:2138
     23#: printess.php:2172
    2424msgid "account page"
    2525msgstr ""
    2626
    27 #: includes/printess-admin-settings.php:394
     27#: includes/printess-admin-settings.php:1185
     28msgid "ACF Field to Printess formfield mappings"
     29msgstr ""
     30
     31#: includes/printess-admin-settings.php:500
    2832msgid "Add to cart after customization"
    2933msgstr ""
    3034
    31 #: includes/printess-admin-settings.php:337
     35#: includes/printess-admin-settings.php:443
    3236msgid "Additional classes for customize button"
    3337msgstr ""
    3438
    35 #: printess.php:71
     39#: printess.php:73
    3640msgid ""
    3741"After saving, your saved design can be found under {SAVE_DESIGN} on your "
     
    3943msgstr ""
    4044
    41 #: includes/printess-admin-settings.php:253
     45#: includes/printess-admin-settings.php:359
    4246msgid "Api Domain"
    4347msgstr ""
    4448
    45 #: printess.php:2085
     49#: printess.php:2119
    4650msgid "Approve and send to production."
    4751msgstr ""
    4852
    49 #: includes/printess-admin-settings.php:374
     53#: includes/printess-admin-settings.php:480
    5054msgid "Automatic"
    5155msgstr ""
    5256
    53 #: printess.php:3304
     57#: printess.php:3382
    5458msgid "Available until"
    5559msgstr ""
    5660
    57 #: includes/printess-product-helpers.php:360
     61#: includes/printess-product-helpers.php:401
    5862msgid "Buyer side user interface"
    5963msgstr ""
    6064
    61 #: printess.php:77 includes/printess-dialogs.php:25
     65#: printess.php:79 includes/printess-dialogs.php:27
    6266msgid "Cancel"
    6367msgstr ""
    6468
    65 #: includes/printess-admin-settings.php:316
     69#: includes/printess-admin-settings.php:422
    6670msgid "Class names to hide when showing editor"
    6771msgstr ""
    6872
    69 #: includes/printess-product-helpers.php:361
     73#: includes/printess-product-helpers.php:402
    7074msgid "Classical or the new PanelUi (Beta!)."
    7175msgstr ""
    7276
    73 #: printess.php:2691
     77#: printess.php:2735
    7478msgid "Could not find line item or product..."
    7579msgstr ""
    7680
    77 #: printess.php:542 printess.php:2664
     81#: printess.php:561 printess.php:2708
    7882msgid "Customize"
    7983msgstr ""
    8084
    81 #: includes/printess-admin-settings.php:643
    82 #: includes/printess-admin-settings.php:703
     85#: includes/printess-admin-settings.php:749
     86#: includes/printess-admin-settings.php:809
    8387msgid "days"
    8488msgstr ""
    8589
    86 #: includes/printess-product-helpers.php:305
     90#: includes/printess-product-helpers.php:346
    8791msgid "Default"
    8892msgstr ""
    8993
    90 #: includes/printess-admin-settings.php:992
     94#: includes/printess-admin-settings.php:1098
    9195msgid "Default Editor Theme"
    9296msgstr ""
     
    96100msgstr ""
    97101
    98 #: printess.php:3304 printess.php:3340
     102#: printess.php:3382 printess.php:3418
    99103msgid "Delete"
    100104msgstr ""
    101105
    102 #: printess.php:1712 printess.php:1940
     106#: includes/printess-admin-settings.php:1255
     107msgid "Delete original basket item only on same design name"
     108msgstr ""
     109
     110#: printess.php:1737 printess.php:1973 printess.php:2375 printess.php:3665
    103111msgid "Design Name"
    104112msgstr ""
    105113
    106 #: printess.php:65 includes/printess-dialogs.php:16
     114#: printess.php:67 includes/printess-dialogs.php:18
    107115msgid "Design name"
    108116msgstr ""
    109117
    110 #: includes/printess-admin-settings.php:506
     118#: includes/printess-admin-settings.php:1321
     119msgid "Disable unpersonalized items warning in basket"
     120msgstr ""
     121
     122#: includes/printess-admin-settings.php:612
    111123msgid "Display legal info in case prices are displayed inside editor"
    112124msgstr ""
    113125
    114 #: includes/printess-admin-settings.php:932
     126#: includes/printess-admin-settings.php:1038
    115127msgid "Display line item id in order view"
    116128msgstr ""
    117129
    118 #: printess.php:3304
     130#: printess.php:3382
    119131msgid "Display name"
    120132msgstr ""
    121133
    122 #: includes/printess-product-helpers.php:311
    123 #: includes/printess-admin-settings.php:1066
     134#: includes/printess-product-helpers.php:352
     135#: includes/printess-admin-settings.php:1234
    124136msgid "Do not use"
    125137msgstr ""
     
    129141msgstr ""
    130142
    131 #: includes/printess-product-helpers.php:274
     143#: includes/printess-product-helpers.php:315
    132144msgid "Document based output settings"
    133145msgstr ""
    134146
    135 #: includes/printess-product-helpers.php:275
     147#: includes/printess-product-helpers.php:316
    136148msgid ""
    137149"Document specific output settings (e.g. different file format for different "
     
    139151msgstr ""
    140152
    141 #: includes/printess-product-helpers.php:173
     153#: includes/printess-product-helpers.php:214
    142154msgid "Dropshipping"
    143155msgstr ""
    144156
    145 #: printess.php:2178 printess.php:3304 printess.php:3336 printess.php:3384
     157#: printess.php:2214 printess.php:3382 printess.php:3414 printess.php:3468
    146158msgid "Edit"
    147159msgstr ""
    148160
    149 #: printess.php:2037
     161#: printess.php:2054
    150162msgid "Edit Customer Design"
    151163msgstr ""
    152164
    153 #: printess.php:2029
     165#: printess.php:2044
    154166msgid "Edit save token"
    155167msgstr ""
    156168
    157 #: includes/printess-admin-settings.php:274
     169#: includes/printess-admin-settings.php:380
    158170msgid "Embed Html Url"
    159171msgstr ""
    160172
    161 #: includes/printess-admin-settings.php:962
     173#: includes/printess-admin-settings.php:1068
    162174msgid "Enable Debug Mode"
    163175msgstr ""
    164176
    165 #: includes/printess-admin-settings.php:602
     177#: includes/printess-admin-settings.php:708
    166178msgid "Enable saving of designs"
    167179msgstr ""
    168180
    169 #: includes/printess-admin-settings.php:1068
     181#: includes/printess-admin-settings.php:1236
    170182msgid "enforce"
    171183msgstr ""
    172184
    173 #: includes/printess-admin-settings.php:1056
     185#: includes/printess-admin-settings.php:1224
    174186msgid "Enforce Design Name during add to basket"
    175187msgstr ""
    176188
    177 #: includes/printess-dialogs.php:17
     189#: includes/printess-dialogs.php:19
    178190msgid "Enter the design name"
    179191msgstr ""
    180192
    181 #: printess.php:66
     193#: printess.php:68
    182194msgid "Enter your display name"
    183195msgstr ""
    184196
    185 #: printess.php:2101
     197#: printess.php:2047
     198msgid "Expires On:"
     199msgstr ""
     200
     201#: printess.php:2135
    186202msgid "Form field"
    187203msgstr ""
     
    195211msgstr ""
    196212
    197 #: includes/printess-admin-settings.php:295
     213#: includes/printess-admin-settings.php:401
    198214msgid "Ids to hide when showing editor"
    199215msgstr ""
    200216
    201 #: printess.php:1996
     217#: printess.php:2032
    202218msgid "Invalid save token"
    203219msgstr ""
    204220
    205 #: includes/printess-product-helpers.php:287
     221#: printess.php:2992
     222msgid "Is merge template"
     223msgstr ""
     224
     225#: includes/printess-product-helpers.php:328
    206226msgid "Item Usage"
    207227msgstr ""
    208228
    209 #: includes/printess-admin-settings.php:563
     229#: includes/printess-admin-settings.php:669
    210230msgid "JPEG Compression"
    211231msgstr ""
    212232
    213 #: includes/printess-admin-settings.php:543
     233#: includes/printess-admin-settings.php:649
    214234msgid "JPG"
    215235msgstr ""
    216236
    217 #: includes/printess-product-helpers.php:253
     237#: includes/printess-product-helpers.php:294
    218238msgid "JPG compression"
    219239msgstr ""
    220240
    221 #: includes/printess-product-helpers.php:288
     241#: includes/printess-product-helpers.php:329
    222242msgid "Json configuration for item based usage pricing"
    223243msgstr ""
    224244
    225 #: printess.php:1716
     245#: printess.php:1741
    226246msgid "Line item id"
    227247msgstr ""
    228248
    229 #: printess.php:2034
     249#: printess.php:2072
    230250msgid "Line item id:"
    231251msgstr ""
    232252
    233 #: printess.php:2778
     253#: printess.php:2822
    234254msgid "Loading editor..."
    235255msgstr ""
    236256
    237 #: includes/printess-admin-settings.php:375
     257#: includes/printess-admin-settings.php:481
    238258msgid "Manual"
    239259msgstr ""
    240260
    241 #: includes/printess-product-helpers.php:195
     261#: includes/printess-product-helpers.php:236
    242262msgid "Merge Template 1"
    243263msgstr ""
    244264
    245 #: includes/printess-product-helpers.php:203
     265#: includes/printess-product-helpers.php:244
    246266msgid "Merge Template 2"
    247267msgstr ""
    248268
    249 #: includes/printess-product-helpers.php:211
     269#: includes/printess-product-helpers.php:252
    250270msgid "Merge Template 3"
    251271msgstr ""
    252272
    253 #: printess.php:3361
     273#: printess.php:3439
    254274msgid "Next"
    255275msgstr ""
     
    260280msgstr ""
    261281
    262 #: printess.php:3274
     282#: printess.php:3352
    263283msgid "No saved designs yet"
    264284msgstr ""
    265285
    266 #: printess.php:3233
     286#: printess.php:3311
    267287msgid "Not logged in"
    268288msgstr ""
    269289
    270 #: includes/printess-dialogs.php:24
     290#: includes/printess-dialogs.php:26
    271291msgid "Ok"
    272292msgstr ""
    273293
    274 #: printess.php:1791
     294#: printess.php:1817
    275295msgid "Open"
    276296msgstr ""
    277297
    278 #: printess.php:1708
     298#: printess.php:1732
    279299msgid "Open design"
    280300msgstr ""
    281301
    282 #: includes/printess-admin-settings.php:1067
     302#: includes/printess-admin-settings.php:1235
    283303msgid "optional"
    284304msgstr ""
    285305
    286 #: includes/printess-admin-settings.php:358
     306#: includes/printess-admin-settings.php:464
    287307msgid "Order Approval Mode"
    288308msgstr ""
    289309
    290 #: includes/printess-admin-settings.php:692
     310#: includes/printess-admin-settings.php:798
    291311msgid "Ordered Design lifetime (Days)"
    292312msgstr ""
    293313
    294 #: printess.php:1967
     314#: printess.php:2002
    295315msgid "Original Save token:"
    296316msgstr ""
    297317
    298 #: includes/printess-product-helpers.php:238
     318#: includes/printess-product-helpers.php:279
    299319msgid "Output DPI"
    300320msgstr ""
    301321
    302 #: includes/printess-admin-settings.php:531
     322#: includes/printess-admin-settings.php:637
    303323msgid "Output Format"
    304324msgstr ""
    305325
    306 #: includes/printess-product-helpers.php:223
     326#: includes/printess-product-helpers.php:264
    307327msgid "Output Type"
    308328msgstr ""
    309329
    310 #: includes/printess-admin-settings.php:823
     330#: includes/printess-admin-settings.php:929
    311331msgid "Overwrite product drop shipper in case of template mode"
    312332msgstr ""
    313333
    314 #: includes/printess-product-helpers.php:322
     334#: includes/printess-product-helpers.php:363
    315335msgid "Page Count Option"
    316336msgstr ""
    317337
    318 #: includes/printess-admin-settings.php:541
     338#: includes/printess-admin-settings.php:647
    319339msgid "PDF"
    320340msgstr ""
     
    326346msgstr ""
    327347
    328 #: printess.php:1682
     348#: printess.php:1706
    329349msgid "Personalized products"
    330350msgstr ""
    331351
    332 #: printess.php:494
     352#: printess.php:512
    333353msgid "Please close this window or tab."
    334354msgstr ""
    335355
    336 #: printess.php:2137
     356#: printess.php:2171
    337357msgid "Please copy & paste the shop and service tokens from your"
    338358msgstr ""
    339359
    340 #: includes/printess-dialogs.php:12
     360#: includes/printess-dialogs.php:13
    341361msgid "Please provide a design name"
    342362msgstr ""
    343363
    344 #: printess.php:491
     364#: printess.php:509
    345365msgid "Please provide a display name."
    346366msgstr ""
    347367
    348 #: includes/printess-admin-settings.php:542
     368#: includes/printess-admin-settings.php:648
    349369msgid "PNG"
    350370msgstr ""
    351371
    352 #: printess.php:3357
     372#: printess.php:3435
    353373msgid "Previous"
    354374msgstr ""
     
    362382msgstr ""
    363383
    364 #: printess.php:2047
     384#: printess.php:2081
    365385msgid "Printess Error Details"
    366386msgstr ""
    367387
    368 #: printess.php:2095
     388#: printess.php:2129
    369389msgid "Printess Form Fields"
    370390msgstr ""
    371391
    372 #: printess.php:2053 printess.php:2061 printess.php:2069
     392#: printess.php:2087 printess.php:2095 printess.php:2103
    373393msgid "Printess Production Files"
    374394msgstr ""
    375395
    376396#. section slug .
    377 #: includes/printess-admin-settings.php:209
     397#: includes/printess-admin-settings.php:315
    378398msgid "Printess Settings"
    379399msgstr ""
    380400
    381 #: printess.php:2926
    382 msgid "Printess Template"
    383 msgstr ""
    384 
    385 #: printess.php:2087
     401#: printess.php:2121
    386402msgid "Processing."
    387403msgstr ""
    388404
    389 #: printess.php:1697 printess.php:1855
     405#: printess.php:1721 printess.php:1888
    390406msgid "Product"
    391407msgstr ""
    392408
    393 #: printess.php:3304
     409#: printess.php:3382
    394410msgid "Product name"
    395411msgstr ""
    396412
    397 #: printess.php:1764
     413#: printess.php:1789
    398414msgid "Product thumbnail"
    399415msgstr ""
    400416
    401 #: includes/printess-admin-settings.php:870
     417#: includes/printess-admin-settings.php:976
    402418msgid "Provide input for design name on second save"
    403419msgstr ""
    404420
    405 #: includes/printess-admin-settings.php:1019
     421#: includes/printess-admin-settings.php:1125
    406422msgid "Push user fields"
    407423msgstr ""
    408424
    409 #: includes/printess-product-helpers.php:303
     425#: includes/printess-product-helpers.php:344
    410426msgid "Redirect page"
    411427msgstr ""
    412428
    413 #: printess.php:53 printess.php:76
     429#: printess.php:2069
     430msgid "Reproduce item"
     431msgstr ""
     432
     433#: printess.php:55 printess.php:78
    414434msgid "Save design"
    415435msgstr ""
    416436
    417 #: printess.php:2144
     437#: printess.php:2178
    418438msgid "Save Settings"
    419439msgstr ""
    420440
    421 #: printess.php:1983
     441#: printess.php:2018
    422442msgid "Save token:"
    423443msgstr ""
    424444
    425 #: includes/printess-admin-settings.php:632
     445#: includes/printess-admin-settings.php:738
    426446msgid "Saved Design lifetime (Days)"
    427447msgstr ""
    428448
    429 #: printess.php:2976 printess.php:3293
     449#: printess.php:3050 printess.php:3371
    430450msgid "Saved Designs"
    431451msgstr ""
    432452
    433 #: printess.php:56 printess.php:60 printess.php:71
     453#: printess.php:58 printess.php:62 printess.php:73
    434454msgid "Saved designs"
    435455msgstr ""
    436456
    437 #: printess.php:2777
     457#: printess.php:2821
    438458msgid "Saving design and redirecting back to order detail page..."
    439459msgstr ""
    440460
    441 #: printess.php:493
     461#: printess.php:511
    442462msgid "Saving design to your list of saved designs"
    443463msgstr ""
    444464
    445 #: printess.php:51
     465#: printess.php:52
    446466msgid "Saving your design"
    447467msgstr ""
    448468
    449 #: printess.php:3296
     469#: printess.php:3374
    450470msgid "Search"
    451471msgstr ""
    452472
    453 #: printess.php:3294
     473#: printess.php:3372
    454474msgid "Search for name"
    455475msgstr ""
    456476
    457 #: includes/printess-admin-settings.php:232
     477#: includes/printess-admin-settings.php:338
    458478msgid "Service Token"
    459479msgstr ""
    460480
    461 #: printess.php:1850
     481#: printess.php:1883
    462482msgid "Shipping"
    463483msgstr ""
    464484
    465 #: printess.php:1594 printess.php:1704 printess.php:1860
     485#: printess.php:1618 printess.php:1728 printess.php:1893
    466486msgid "Shipping status"
    467487msgstr ""
    468488
    469489#. setting slug .
    470 #: includes/printess-admin-settings.php:218
     490#: includes/printess-admin-settings.php:324
    471491msgid "Shop Token"
    472492msgstr ""
    473493
    474 #: includes/printess-admin-settings.php:420
     494#: includes/printess-admin-settings.php:526
    475495msgid "Show customize button on archive page"
    476496msgstr ""
    477497
    478 #: includes/printess-admin-settings.php:898
     498#: includes/printess-admin-settings.php:1004
    479499msgid "Show original product in basket"
    480500msgstr ""
    481501
    482 #: includes/printess-admin-settings.php:446
     502#: includes/printess-admin-settings.php:552
    483503msgid "Show prices inside editor"
    484504msgstr ""
    485505
    486 #: includes/printess-admin-settings.php:476
     506#: includes/printess-admin-settings.php:582
    487507msgid "Show product name inside editor"
    488508msgstr ""
    489509
    490 #: includes/printess-admin-settings.php:775
     510#: includes/printess-admin-settings.php:1288
     511msgid "Show warning on tab close or page reload"
     512msgstr ""
     513
     514#: printess.php:2992
     515msgid "Template name"
     516msgstr ""
     517
     518#: printess.php:2993
     519msgid "Template name or merge template"
     520msgstr ""
     521
     522#: includes/printess-admin-settings.php:881
    491523msgid "The height of the rendered thumbnail"
    492524msgstr ""
    493525
    494 #: includes/printess-product-helpers.php:254
     526#: includes/printess-product-helpers.php:295
    495527msgid "The jpg compression ratio. Defaults to 90. 0 = Use system setting"
    496528msgstr ""
    497529
    498 #: includes/printess-product-helpers.php:196
     530#: includes/printess-product-helpers.php:237
    499531msgid "The name of the optional 1st merge template within Printess"
    500532msgstr ""
    501533
    502 #: includes/printess-product-helpers.php:204
     534#: includes/printess-product-helpers.php:245
    503535msgid "The name of the optional 2nd merge template within Printess"
    504536msgstr ""
    505537
    506 #: includes/printess-product-helpers.php:212
     538#: includes/printess-product-helpers.php:253
    507539msgid "The name of the optional 3rd merge template within Printess"
    508540msgstr ""
    509541
    510 #: includes/printess-product-helpers.php:323
     542#: includes/printess-product-helpers.php:364
    511543msgid ""
    512544"The option that contains the page count for configurable book templates."
    513545msgstr ""
    514546
    515 #: includes/printess-product-helpers.php:224
     547#: includes/printess-product-helpers.php:265
    516548msgid "The output file type. Defaults to output a pdf file."
    517549msgstr ""
    518550
    519 #: includes/printess-product-helpers.php:304
     551#: includes/printess-product-helpers.php:345
    520552msgid ""
    521553"The page that should be opened after the product has been added to the cart."
    522554msgstr ""
    523555
    524 #: includes/printess-product-helpers.php:239
     556#: includes/printess-product-helpers.php:280
    525557msgid "The used output dpi. Defaults to 300"
    526558msgstr ""
    527559
    528 #: includes/printess-admin-settings.php:752
     560#: includes/printess-admin-settings.php:858
    529561msgid "The width of the rendered thumbnail"
    530562msgstr ""
    531563
    532 #: printess.php:492
     564#: printess.php:510
    533565msgid "There was an error while trying to save your design"
    534566msgstr ""
    535567
    536 #: printess.php:2343
     568#: printess.php:2387
    537569msgid "This item was edited. Consider removing it from your cart."
    538570msgstr ""
    539571
    540 #: printess.php:3304
     572#: printess.php:3382
    541573msgid "Thumbnail"
    542574msgstr ""
    543575
    544 #: includes/printess-admin-settings.php:544
     576#: includes/printess-admin-settings.php:650
    545577msgid "TIF"
    546578msgstr ""
    547579
    548 #: printess.php:1573 printess.php:1700 printess.php:1857
     580#: printess.php:1597 printess.php:1724 printess.php:1890
    549581msgid "Tracking"
    550582msgstr ""
    551583
    552 #: printess.php:1557 printess.php:1723 printess.php:1870
     584#: printess.php:1581 printess.php:1748 printess.php:1903
    553585msgid "Tracking link"
    554586msgstr ""
    555587
    556 #: includes/printess-admin-settings.php:643
    557 #: includes/printess-admin-settings.php:653
    558 #: includes/printess-admin-settings.php:703
    559 #: includes/printess-admin-settings.php:713
     588#: includes/printess-admin-settings.php:749
     589#: includes/printess-admin-settings.php:759
     590#: includes/printess-admin-settings.php:809
     591#: includes/printess-admin-settings.php:819
    560592msgid "Unlimited"
     593msgstr ""
     594
     595#: includes/printess-admin-settings.php:1152
     596msgid "Use names instead of labels for ACF fields"
    561597msgstr ""
    562598
     
    565601msgstr ""
    566602
    567 #: printess.php:2102
     603#: printess.php:1733
     604msgid "Valid until"
     605msgstr ""
     606
     607#: printess.php:2136
    568608msgid "Value"
    569609msgstr ""
    570610
    571 #: printess.php:1535
     611#: printess.php:1559
    572612msgid "View thumbnail in new window."
    573613msgstr ""
    574614
    575 #: printess.php:53
     615#: printess.php:55
    576616msgid ""
    577617"You are currently not logged in. To be able to save designs you need to be "
     
    582622msgstr ""
    583623
    584 #: printess.php:60
     624#: printess.php:62
    585625msgid ""
    586626"You can provide a new design name to store this version under a different "
     
    588628msgstr ""
    589629
    590 #: printess.php:56
     630#: printess.php:3697
     631msgid ""
     632"You just added a personalized product without any personalization. Please "
     633"personalize the product first."
     634msgstr ""
     635
     636#: printess.php:58
    591637msgid ""
    592638"You need to provide a display name for your saved design. This name is shown "
  • printess-editor/trunk/printess.php

    r3336133 r3339767  
    55 * Plugin URI: https://printess.com/kb/integrations/woo-commerce/index.html
    66 * Developer: Bastian Kröger (support@printess.com); Alexander Oser (support@printess.com)
    7  * Version: 1.6.54
     7 * Version: 1.6.55
    88 * Author: Printess
    99 * Author URI: https://printess.com
     
    1414 * Tested up to: 6.8
    1515 *
    16  * Woo: 10000:924013dfsfhsf8429842386wdff234sfd
     16 * Woo: 10000:924014dfsfhsf8429842386wdff234sfd
    1717 * WC requires at least: 5.8
    1818 * WC tested up to: 9.8.2
     
    367367        if(in_array("all", $filter_lookup) || in_array("billingemail", $filter_lookup))$form_fields["BillingEmail"] = $customer->billing["email"];
    368368        if(in_array("all", $filter_lookup) || in_array("billingphone", $filter_lookup))$form_fields["BillingPhone"] = $customer->billing["phone"];
    369         if(in_array("all", $filter_lookup) || in_array("billingcity", $filter_lookup))$form_fields["BillingCity"] = $customer->billing["city"];
     369        if(in_array("all", $filter_lookup) || in_array("", $filter_lookup))$form_fields["BillingCity"] = $customer->billing["city"];
    370370        if(in_array("all", $filter_lookup) || in_array("billingstate", $filter_lookup))$form_fields["BillingState"] = $customer->billing["state"];
    371371        if(in_array("all", $filter_lookup) || in_array("billingpostcode", $filter_lookup))$form_fields["BillingPostcode"] = $customer->billing["postcode"];
     
    392392        if(null !== $acf_fields && false !== $acf_fields && is_array($acf_fields)) {
    393393            $acf_label_property = PrintessAdminSettings::get_use_acf_name_instead_of_label() ? "name" : "label";
     394            $acf_mappings = PrintessAdminSettings::get_acf_field_mappings();
    394395
    395396            foreach($acf_fields as $key => &$field) {
    396397                if(is_array($field) && array_key_exists($acf_label_property, $field) && array_key_exists("value", $field) && (in_array("all", $filter_lookup) || in_array(strtolower($field[$acf_label_property]), $filter_lookup))) {
    397                     $form_fields[$field[$acf_label_property]] = $field["value"];
     398                    $key = $field[$acf_label_property];
     399                    $value = $field["value"];
     400
     401                    if(count($acf_mappings) > 0 && array_key_exists($key, $acf_mappings)) {
     402                        $key = $acf_mappings[$key];
     403                    }
     404
     405                    $form_fields[$key] = $value;
    398406                }
    399407            }
     
    17231731    if ( $has_save_token ) {
    17241732        $table->add_column( esc_html__( 'Open design', 'printess-editor' ) );
     1733        $table->add_column( esc_html__( 'Valid until', 'printess-editor' ) );
    17251734    }
    17261735
     
    18021811        }
    18031812
    1804         if ( $has_save_token && printess_do_render_edit_link( $item ) ) {
    1805             $content[] = array(
    1806                 'url'   => $product_url,
    1807                 'label' => esc_html__( 'Open', 'printess-editor' ),
    1808             );
     1813        if ( $has_save_token) {
     1814            if(printess_do_render_edit_link( $item )) {
     1815                $content[] = array(
     1816                    'url'   => $product_url,
     1817                    'label' => esc_html__( 'Open', 'printess-editor' ),
     1818                );
     1819            } else {
     1820                $content[] = "";
     1821            }
     1822
     1823            $expiration_date = $save_token !== null && !empty($save_token) ? PrintessApi::get_expiration_date($save_token) : null;
     1824
     1825            $content[] = null !== $expiration_date ? wp_date(get_option( 'date_format' ), $expiration_date->getTimestamp()) : "";
    18091826        }
    18101827
     
    19581975    }
    19591976
     1977    $expiration_date = $printess_save_token !== null && !empty($printess_save_token) ? PrintessApi::get_expiration_date($printess_save_token) : null;
     1978
    19601979    if ( ! empty( $printess_save_token ) ) {
    19611980        echo '<hr />';
     
    19982017
    19992018            echo ' <div><div style="white-space:nowrap">' . esc_html__( 'Save token:', 'printess-editor' ) . "&nbsp;<a href=\"" . esc_url($edit_url) . "\" target=\"_blank\"')\">" . esc_html($printess_save_token) . '</a></div>';
     2019
    20002020            echo "<script>
    20012021                if(!window['printessUpdateSaveToken']) {
     
    20232043            </script>";
    20242044            echo ' <div data-save-token="' . esc_html($printess_save_token) . '"><a href="#" onclick="window.printessUpdateSaveToken(\'' . esc_html($printess_save_token) . '\', \'' . esc_html($update_url) . '\')" >' . esc_html__( 'Edit save token', 'printess-editor' ) . "</a></div>";
     2045
     2046            if(null !== $expiration_date) {
     2047                echo ' <div><div style="white-space:nowrap">' . esc_html__( 'Expires On:', 'printess-editor' ) . "&nbsp;<span>" . esc_html(wp_date(get_option( 'date_format' ), $expiration_date->getTimestamp())) . '</span></div>';
     2048            }
     2049
    20252050            echo '</div>';
    20262051        }
     
    29182943            wc_update_order_item_meta($item->get_id(), '_printess-save-token', $printess_save_token);
    29192944            wc_delete_order_item_meta($item->get_id(), '_printess-original-save-token');
     2945            printess_unexpire_save_token( $printess_save_token, printess_create_new_unexpiration_date( true ) );
    29202946
    29212947            $query_string = http_build_query(array(
     
    29382964
    29392965        wc_update_order_item_meta($item->get_id(), '_printess-save-token', $printess_save_token);
     2966        printess_unexpire_save_token( $printess_save_token, printess_create_new_unexpiration_date( true ) );
    29402967
    29412968        $query_string = http_build_query(array(
     
    33823409            $design['displayName'],
    33833410            $design['productName'],
    3384             ( new \DateTime( $design['validUntil'] ) )->format( wc_date_format() ),
     3411            wp_date(get_option( 'date_format' ), (new DateTime($design['validUntil']))->getTimestamp()),
    33853412            array(
    33863413                'url'   => $product_url,
  • printess-editor/trunk/readme.txt

    r3336133 r3339767  
    300300- Added option to use ACF field names instead of labels while assigning form field values
    301301- Fixed variant option to use given template name as merge template for variants where not all variants use the template name as merge template
     302
     303= 1.6.55 =
     304- fixed: broken thumbnail retrieval on save actions in PanelUi
     305- added: save token timeouts are automtaically extended after replacing the original save token in the admin order view
     306- added: admin order view / customer order view are now displaying the expiration date of the save tokens
     307- fixed: saved designs do now display the correct timeout date format that is configured inside the wordpress date / time settings
     308- added: it is now possible to specify form field mappings for ACF fields
Note: See TracChangeset for help on using the changeset viewer.