Plugin Directory

Changeset 3267575


Ignore:
Timestamp:
04/06/2025 10:25:11 PM (11 months ago)
Author:
signcustomiser
Message:

Release version 1.3.0

Location:
sign-customiser
Files:
9 added
4 edited

Legend:

Unmodified
Added
Removed
  • sign-customiser/trunk/cart.php

    r3218658 r3267575  
    1919  $product->set_regular_price(floatval($data['price']));
    2020  $product->set_description($data['description']);
     21
     22  // Set catalog visibility to hidden and add meta key to hide from search engines
     23  $product->set_catalog_visibility('hidden');
     24  $product->add_meta_data('_hide_from_search_engines', '1');
    2125
    2226  $upload = function ($base64, $ext = '.png') {
     
    4549
    4650  $imageIds = [];
     51  $customBackgroundUrl = null;
     52  $customBackgroundOriginalUrl = null;
     53  $productTypePaths = [];
    4754
    4855  if (!empty($data['productImage'])) {
     
    6572    $product->add_meta_data('spcwp_custom_background_image_id', $imageId);
    6673    $imageIds[] = $imageId;
     74    $customBackgroundUrl = wp_get_attachment_image_url($imageId, 'full');
    6775  }
    6876  if (!empty($data['customBackgroundOriginal'])) {
     
    7078    $product->add_meta_data('spcwp_custom_background_original_image_id', $imageId);
    7179    $imageIds[] = $imageId;
     80    $customBackgroundOriginalUrl = wp_get_attachment_image_url($imageId, 'full');
     81  }
     82  if (!empty($data['productTypeImageUrls'])) {
     83    foreach ($data['productTypeImageUrls'] as $part => $arr) {
     84      foreach (['cropped', 'original'] as $variant) {
     85        if (!empty($arr[$variant])) {
     86          $product->add_meta_data("spcwp_{$part}_{$variant}_image_url", $arr[$variant]);
     87          $productTypePaths[$part] ??= [];
     88          $productTypePaths[$part][$variant] = $arr[$variant];
     89        }
     90      }
     91    }
    7292  }
    7393
     
    94114      'product_id' => strval($id),
    95115      'cart' => $productWithoutImg,
    96       'price_breakdown' => $request['priceBreakdown'] ?? []
     116      'price_breakdown' => $request['priceBreakdown'] ?? [],
     117      'custom_background_path' => $customBackgroundUrl,
     118      'custom_background_original_path' => $customBackgroundOriginalUrl,
     119      'product_type_paths' => $productTypePaths
    97120    ]);
    98121  }
     
    105128    'methods' => WP_REST_Server::CREATABLE,
    106129    'callback' => 'spcwp_product_callback',
     130    'permission_callback' => '__return_true',
    107131  ]);
    108132});
     133
     134// Add noindex meta tag for hidden products
     135if (class_exists('WooCommerce')) {
     136    function add_noindex_for_hidden_products() {
     137        if (is_product()) { // Only run on single product pages
     138            $product = wc_get_product(get_the_ID());
     139            if ($product && $product->get_meta('_hide_from_search_engines') === '1') {
     140                echo '<meta name="robots" content="noindex, nofollow">';
     141            }
     142        }
     143    }
     144    add_action('wp_head', 'add_noindex_for_hidden_products');
     145}
  • sign-customiser/trunk/orders.php

    r3208312 r3267575  
    3636    $whiteImageUrl = $whiteImageId ? wp_get_attachment_image_url($whiteImageId, 'full') : null;
    3737    $svgImageUrl = $svgImageId ? wp_get_attachment_url($svgImageId) : null;
    38     $customBackgroundUrl = $customBackgroundId ? wp_get_attachment_url($customBackgroundId) : null;
    39     $customBackgroundOriginalUrl = $customBackgroundOriginalId ? wp_get_attachment_url($customBackgroundOriginalId) : null;
     38    $customBackgroundUrl = $customBackgroundId ? wp_get_attachment_image_url($customBackgroundId, 'full') : null;
     39    $customBackgroundOriginalUrl = $customBackgroundOriginalId ? wp_get_attachment_image_url($customBackgroundOriginalId, 'full') : null;
     40
     41    $productTypeUrls = [];
     42    $parts = ['face', 'back', 'left', 'right', 'top', 'bottom'];
     43    $variants = ['cropped', 'original'];
     44    foreach ($parts as $part) {
     45      foreach ($variants as $variant) {
     46        $url = $product->get_meta("spcwp_{$part}_{$variant}_image_url");
     47        if (!$url) {
     48          continue;
     49        }
     50        $productTypeUrls[$part] ??= [];
     51        $productTypeUrls[$part][$variant] = $url;
     52      }
     53    }
    4054
    4155    $products[] = [
     
    4761      'custom_background_original_url' => $customBackgroundOriginalUrl,
    4862      'customiser_id' => $customiserId,
     63      'product_type_urls' => $productTypeUrls,
    4964    ];
    5065  }
  • sign-customiser/trunk/readme.txt

    r3218658 r3267575  
    11=== Sign Customiser ===
    2 Tags: neon, channel signs, sign customizer, acrylic signs, metal signs
     2Tags: neon, channel signs, sign customizer, acrylic signs, metal signs, lightbox signs, custom signs, sign designer, sign maker, woocommerce signs, wooden signs, aluminum signs, business signs
    33Tested up to: 6.6.1
    44Requires at least: 6.5
    5 Stable tag: 1.2.1
     5Stable tag: 1.3.0
    66Requires PHP: 7.4
    77License: GPLv2 or later
    88License URI: https://www.gnu.org/licenses/gpl-2.0.html
    99
    10 Easily integrate add-to-cart functionality from your Sign Customiser account with WooCommerce.
     10Transform your WooCommerce store into a powerful custom sign business with real-time pricing, instant previews, and automated manufacturing specs.
    1111
    1212== Description ==
    13 This is a free plugin to sync the products generated by the embedded Sign Customiser app on your Woocommerce store to your cart.
     13Sign Customiser is the world's most advanced sign creation platform, trusted by 700+ merchants worldwide. This plugin seamlessly integrates Sign Customiser's powerful features with your WooCommerce store, helping you sell more custom signs while saving time on quotes and production.
    1414
    15 Managing your account and all data associated with Sign Customiser is done through the [web admin](https://web.signcustomiser.com/login).
     15= Why Choose Sign Customiser? =
    1616
    17 ## Further information
    18 [Sign Customiser website](https://www.signcustomiser.com/features/)
    19 [View all features](https://www.signcustomiser.com/features/)
     17* 🎨 **Powerful Sign Visualizations** - Give customers instant, photo-realistic previews of their custom signs with real-time 2D/3D rendering and multiple viewing angles
     18* 💰 **Advanced Pricing Engine** - Automatically calculate prices based on materials, size, and shipping with support for volumetric pricing
     19* 🏭 **Streamlined Manufacturing** - Generate detailed production specs and SVG files automatically for your sign makers
     20* 📱 **Mobile-Optimized Design** - Fully responsive interface works perfectly on all devices
     21* 🌍 **Multi-language & Currency** - Support for all languages including RTL, with automatic currency conversion
     22* ⚡ **Boost Conversion Rates** - Interactive customization increases engagement and sales
     23
     24= Supported Sign Types =
     25
     26* LED Neon Signs - Create vibrant, eye-catching displays with flexible LED tubing
     27* Acrylic Letter Signs - Premium 2D/3D letters with optional backlighting
     28* Metal Letter Signs - Elegant metallic finishes for professional signage
     29* Lightbox Signs - Illuminated displays with custom graphics
     30* Wooden Signs - Rustic and natural wood materials for a classic look
     31* Aluminum Plate Signs - Durable, weather-resistant signage perfect for outdoor use
     32* Custom Designs - Unlimited possibilities for unique sign creations
     33
     34= Premium Features =
     35
     36* Drag, scale and rotate sign designs
     37* Multiple colors and fonts per sign
     38* Custom graphics and icons
     39* Material options including metal, acrylic, wood, and aluminum
     40* Comprehensive mounting options for indoor and outdoor use
     41* Weather-resistant finishes for outdoor signage
     42* Automated manufacturing emails with detailed specifications
     43* SVG file exports for precise production
     44* Unlimited design submissions
     45* Real-time material cost calculation
     46* Volumetric shipping calculations
     47
     48Managing your account and accessing advanced features is done through the [web admin](https://web.signcustomiser.com/login).
     49
     50## Further Information
     51[Sign Customiser Website](https://www.signcustomiser.com/)
     52[View All Features](https://www.signcustomiser.com/features/)
    2053[Pricing](https://www.signcustomiser.com/pricing/)
    2154
     
    2962
    3063== Changelog ==
     64
     65= 1.3.1 =
     66* Ensure products generated by Sign Customiser in woocommerce are hidden in product catalogue and product page is set to noindex for search engines
     67
     68= 1.3.0 =
     69* Added support for lightbox customisers.
    3170
    3271= 1.2.1 =
  • sign-customiser/trunk/sign-customiser.php

    r3218658 r3267575  
    44Plugin Name: Sign Customiser
    55Plugin URI: https://signcustomiser.com
    6 Version: 1.2.1
     6Version: 1.3.0
    77Requires Plugins: woocommerce
    88License: GPL v2 or later
Note: See TracChangeset for help on using the changeset viewer.