Changeset 3267575
- Timestamp:
- 04/06/2025 10:25:11 PM (11 months ago)
- Location:
- sign-customiser
- Files:
-
- 9 added
- 4 edited
-
tags/1.3.0 (added)
-
tags/1.3.0/.gitignore (added)
-
tags/1.3.0/api.php (added)
-
tags/1.3.0/cart.php (added)
-
tags/1.3.0/config.php (added)
-
tags/1.3.0/orders.php (added)
-
tags/1.3.0/readme.txt (added)
-
tags/1.3.0/settings.php (added)
-
tags/1.3.0/sign-customiser.php (added)
-
trunk/cart.php (modified) (6 diffs)
-
trunk/orders.php (modified) (2 diffs)
-
trunk/readme.txt (modified) (2 diffs)
-
trunk/sign-customiser.php (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
sign-customiser/trunk/cart.php
r3218658 r3267575 19 19 $product->set_regular_price(floatval($data['price'])); 20 20 $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'); 21 25 22 26 $upload = function ($base64, $ext = '.png') { … … 45 49 46 50 $imageIds = []; 51 $customBackgroundUrl = null; 52 $customBackgroundOriginalUrl = null; 53 $productTypePaths = []; 47 54 48 55 if (!empty($data['productImage'])) { … … 65 72 $product->add_meta_data('spcwp_custom_background_image_id', $imageId); 66 73 $imageIds[] = $imageId; 74 $customBackgroundUrl = wp_get_attachment_image_url($imageId, 'full'); 67 75 } 68 76 if (!empty($data['customBackgroundOriginal'])) { … … 70 78 $product->add_meta_data('spcwp_custom_background_original_image_id', $imageId); 71 79 $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 } 72 92 } 73 93 … … 94 114 'product_id' => strval($id), 95 115 '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 97 120 ]); 98 121 } … … 105 128 'methods' => WP_REST_Server::CREATABLE, 106 129 'callback' => 'spcwp_product_callback', 130 'permission_callback' => '__return_true', 107 131 ]); 108 132 }); 133 134 // Add noindex meta tag for hidden products 135 if (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 36 36 $whiteImageUrl = $whiteImageId ? wp_get_attachment_image_url($whiteImageId, 'full') : null; 37 37 $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 } 40 54 41 55 $products[] = [ … … 47 61 'custom_background_original_url' => $customBackgroundOriginalUrl, 48 62 'customiser_id' => $customiserId, 63 'product_type_urls' => $productTypeUrls, 49 64 ]; 50 65 } -
sign-customiser/trunk/readme.txt
r3218658 r3267575 1 1 === Sign Customiser === 2 Tags: neon, channel signs, sign customizer, acrylic signs, metal signs 2 Tags: 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 3 3 Tested up to: 6.6.1 4 4 Requires at least: 6.5 5 Stable tag: 1. 2.15 Stable tag: 1.3.0 6 6 Requires PHP: 7.4 7 7 License: GPLv2 or later 8 8 License URI: https://www.gnu.org/licenses/gpl-2.0.html 9 9 10 Easily integrate add-to-cart functionality from your Sign Customiser account with WooCommerce.10 Transform your WooCommerce store into a powerful custom sign business with real-time pricing, instant previews, and automated manufacturing specs. 11 11 12 12 == 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.13 Sign 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. 14 14 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? = 16 16 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 48 Managing 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/) 20 53 [Pricing](https://www.signcustomiser.com/pricing/) 21 54 … … 29 62 30 63 == 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. 31 70 32 71 = 1.2.1 = -
sign-customiser/trunk/sign-customiser.php
r3218658 r3267575 4 4 Plugin Name: Sign Customiser 5 5 Plugin URI: https://signcustomiser.com 6 Version: 1. 2.16 Version: 1.3.0 7 7 Requires Plugins: woocommerce 8 8 License: GPL v2 or later
Note: See TracChangeset
for help on using the changeset viewer.