Changeset 3454005
- Timestamp:
- 02/04/2026 05:50:07 PM (8 weeks ago)
- Location:
- jump-to-checkout
- Files:
-
- 14 edited
- 1 copied
-
tags/1.0.2 (copied) (copied from jump-to-checkout/trunk)
-
tags/1.0.2/assets/css/admin.css (modified) (1 diff)
-
tags/1.0.2/assets/js/admin.js (modified) (1 diff)
-
tags/1.0.2/includes/Admin/AdminPanel.php (modified) (2 diffs)
-
tags/1.0.2/includes/Core/JumpToCheckout.php (modified) (3 diffs)
-
tags/1.0.2/jump-to-checkout.php (modified) (3 diffs)
-
tags/1.0.2/readme.txt (modified) (3 diffs)
-
tags/1.0.2/vendor/composer/installed.php (modified) (2 diffs)
-
trunk/assets/css/admin.css (modified) (1 diff)
-
trunk/assets/js/admin.js (modified) (1 diff)
-
trunk/includes/Admin/AdminPanel.php (modified) (2 diffs)
-
trunk/includes/Core/JumpToCheckout.php (modified) (3 diffs)
-
trunk/jump-to-checkout.php (modified) (3 diffs)
-
trunk/readme.txt (modified) (3 diffs)
-
trunk/vendor/composer/installed.php (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
jump-to-checkout/tags/1.0.2/assets/css/admin.css
r3434274 r3454005 462 462 } 463 463 464 /* Select2 disabled options (variable products) */ 465 .select2-results__option[aria-disabled="true"] { 466 color: #a7aaad !important; 467 cursor: not-allowed !important; 468 background-color: #f6f7f7 !important; 469 opacity: 0.6; 470 } 471 472 .select2-results__option[aria-disabled="true"]:hover { 473 background-color: #f6f7f7 !important; 474 } 475 476 /* Strike-through effect for disabled options */ 477 .select2-results__option--disabled { 478 text-decoration: line-through; 479 font-style: italic; 480 } 481 464 482 @media (max-width: 782px) { 465 483 .jump-to-checkout-product-row { -
jump-to-checkout/tags/1.0.2/assets/js/admin.js
r3434274 r3454005 93 93 } 94 94 95 // Check if product is disabled (variable product). 96 if (selectedOption.disabled || selectedOption.hasAttribute('disabled')) { 97 alert(jptcAdmin.i18n.variable_product_error || 'Variable products cannot be added directly. Please select a specific variation.'); 98 // Reset select2. 99 jQuery('.jump-to-checkout-product-search').val(null).trigger('change'); 100 return; 101 } 95 102 96 103 const productId = selectedOption.value; -
jump-to-checkout/tags/1.0.2/includes/Admin/AdminPanel.php
r3435024 r3454005 113 113 'upgrade_url' => Features::get_upgrade_url(), 114 114 'i18n' => array( 115 'copy_success' => __( 'Link copied to clipboard!', 'jump-to-checkout' ), 116 'copy_error' => __( 'Failed to copy link.', 'jump-to-checkout' ), 117 'generate_error' => __( 'Error generating link.', 'jump-to-checkout' ), 118 'search_placeholder' => __( 'Search products...', 'jump-to-checkout' ), 119 'no_products' => __( 'No products found.', 'jump-to-checkout' ), 120 'no_link_name' => __( 'Please enter a link name.', 'jump-to-checkout' ), 121 'no_products_selected' => __( 'Please select at least one product.', 'jump-to-checkout' ), 122 'no_link_in_response' => __( 'No link in response', 'jump-to-checkout' ), 123 'no_products_label' => __( 'No products selected.', 'jump-to-checkout' ), 124 'remove_button' => __( 'Remove', 'jump-to-checkout' ), 115 'copy_success' => __( 'Link copied to clipboard!', 'jump-to-checkout' ), 116 'copy_error' => __( 'Failed to copy link.', 'jump-to-checkout' ), 117 'generate_error' => __( 'Error generating link.', 'jump-to-checkout' ), 118 'search_placeholder' => __( 'Search products...', 'jump-to-checkout' ), 119 'no_products' => __( 'No products found.', 'jump-to-checkout' ), 120 'no_link_name' => __( 'Please enter a link name.', 'jump-to-checkout' ), 121 'no_products_selected' => __( 'Please select at least one product.', 'jump-to-checkout' ), 122 'no_link_in_response' => __( 'No link in response', 'jump-to-checkout' ), 123 'no_products_label' => __( 'No products selected.', 'jump-to-checkout' ), 124 'remove_button' => __( 'Remove', 'jump-to-checkout' ), 125 'variable_product_error' => __( 'Variable products cannot be added directly. Please select a specific variation.', 'jump-to-checkout' ), 125 126 ), 126 127 ) … … 473 474 } 474 475 476 // Variable products should NEVER be selectable (FREE or PRO). 477 // They need specific variations to be added to cart. 478 if ( $product->is_type( 'variable' ) ) { 479 if ( Features::is_pro() ) { 480 $product_name .= ' ' . __( '[Variable Product - Select variation below]', 'jump-to-checkout' ); 481 } else { 482 $product_name .= ' ' . __( '[PRO: Variable Product]', 'jump-to-checkout' ); 483 } 484 485 $results[] = array( 486 'id' => $product->get_id(), 487 'text' => wp_strip_all_tags( $product_name ), 488 'disabled' => true, 489 ); 490 continue; 491 } 492 493 // Variations are only selectable in PRO. 494 if ( $product->is_type( 'variation' ) ) { 495 if ( Features::is_pro() ) { 496 // PRO: Show variation as selectable with indicator. 497 $product_name .= ' ' . __( '[Variation]', 'jump-to-checkout' ); 498 499 $results[] = array( 500 'id' => $product->get_id(), 501 'text' => wp_strip_all_tags( $product_name ), 502 ); 503 } else { 504 // FREE: Disable variations. 505 $product_name .= ' ' . __( '[PRO: Variation]', 'jump-to-checkout' ); 506 507 $results[] = array( 508 'id' => $product->get_id(), 509 'text' => wp_strip_all_tags( $product_name ), 510 'disabled' => true, 511 ); 512 } 513 continue; 514 } 515 516 // Simple products are always selectable. 475 517 $results[] = array( 476 518 'id' => $product->get_id(), -
jump-to-checkout/tags/1.0.2/includes/Core/JumpToCheckout.php
r3435024 r3454005 82 82 83 83 /** 84 * Generate unique short token (8-10 characters) 85 * 86 * @return string 87 */ 88 private function generate_short_token() { 89 global $wpdb; 90 91 // Characters allowed in short token (alphanumeric, URL-safe). 92 $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; 93 $length = 10; 94 $max_tries = 10; 95 96 for ( $i = 0; $i < $max_tries; $i++ ) { 97 $token = ''; 98 for ( $j = 0; $j < $length; $j++ ) { 99 $token .= $characters[ wp_rand( 0, strlen( $characters ) - 1 ) ]; 100 } 101 102 // Check if token already exists using Database class method. 103 $existing_link = $this->db->get_link_by_token( $token ); 104 105 if ( ! $existing_link ) { 106 return $token; 107 } 108 } 109 110 // Fallback: use timestamp + random. 111 return substr( md5( time() . wp_rand() ), 0, 10 ); 112 } 113 114 /** 115 * Check if token is new short format (10 chars) or old long format 116 * 117 * @param string $token Token to check. 118 * @return bool True if new short format, false if old long format. 119 */ 120 private function is_short_token( $token ) { 121 return strlen( $token ) <= 20; 122 } 123 124 /** 84 125 * Add custom query vars 85 126 * … … 129 170 $expiry = apply_filters( 'jptc_link_expiry', 0, $name, $products ); 130 171 131 // Token data - FREE never includes expiry. PRO can add it via filter. 132 $data = array( 133 'products' => $products, 134 'exp' => 0, // FREE never expires. PRO will modify this via filter. 135 'iss' => 'jptc', 136 'iat' => time(), 137 ); 138 139 // Allow PRO to modify token data (PRO will add expiry here). 140 $data = apply_filters( 'jptc_token_data_before_encode', $data, $name, $products, $expiry ); 141 142 $token = $this->encode_token( $data ); 172 // Generate short token (new format: just a random ID, products stored in DB). 173 $token = $this->generate_short_token(); 143 174 $url = home_url( '/jump-to-checkout/' . $token ); 144 175 … … 296 327 setcookie( 'jptc_link_id', $link->id, time() + DAY_IN_SECONDS, $cookie_path, $cookie_domain, is_ssl(), true ); 297 328 298 // Decode token. 299 $data = $this->decode_token( $token ); 300 301 if ( false === $data ) { 302 wp_die( 303 esc_html__( 'Invalid or expired checkout link.', 'jump-to-checkout' ), 304 esc_html__( 'Error', 'jump-to-checkout' ), 305 array( 'response' => 403 ) 329 // Check if token is new short format or old long format. 330 if ( $this->is_short_token( $token ) ) { 331 // New format: products are stored in database. 332 $data = array( 333 'products' => json_decode( $link->products, true ), 306 334 ); 335 } else { 336 // Old format: decode token to get product data (backward compatibility). 337 $data = $this->decode_token( $token ); 338 339 if ( false === $data ) { 340 wp_die( 341 esc_html__( 'Invalid or expired checkout link.', 'jump-to-checkout' ), 342 esc_html__( 'Error', 'jump-to-checkout' ), 343 array( 'response' => 403 ) 344 ); 345 } 307 346 } 308 347 -
jump-to-checkout/tags/1.0.2/jump-to-checkout.php
r3435024 r3454005 4 4 * Plugin URI: https://close.technology/wordpress-plugins/jump-to-checkout-pro/ 5 5 * Description: Generate direct checkout links with pre-selected products for WooCommerce. 6 * Version: 1.0. 16 * Version: 1.0.2 7 7 * Author: Close Marketing 8 8 * Author URI: https://close.marketing … … 25 25 defined( 'ABSPATH' ) || die( 'No script kiddies please!' ); 26 26 27 define( 'JTPC_VERSION', '1.0. 1' );27 define( 'JTPC_VERSION', '1.0.2' ); 28 28 define( 'JTPC_PLUGIN', __FILE__ ); 29 29 define( 'JTPC_PLUGIN_URL', plugin_dir_url( __FILE__ ) ); … … 46 46 // Initialize plugin classes. 47 47 if ( class_exists( 'CLOSE\JumpToCheckout\Core\JumpToCheckout' ) ) { 48 // Check and update database if needed. 49 $db = new CLOSE\JumpToCheckout\Database\Database(); 50 $db->maybe_create_table(); 51 48 52 new CLOSE\JumpToCheckout\Core\JumpToCheckout(); 49 53 new CLOSE\JumpToCheckout\Admin\AdminPanel(); -
jump-to-checkout/tags/1.0.2/readme.txt
r3435024 r3454005 6 6 Tested up to: 6.9 7 7 Requires PHP: 7.4 8 Stable tag: 1.0. 18 Stable tag: 1.0.2 9 9 License: GPLv2 or later 10 10 License URI: https://www.gnu.org/licenses/gpl-2.0.html … … 190 190 == Changelog == 191 191 192 = 1.0.2 = 193 * Improved: Shortened token length to 10 characters for cleaner, more shareable URLs 194 * Fixed: Variable products (parent) are now always disabled to prevent direct cart addition 195 * Fixed: Product variations are only selectable in PRO version 196 * Added: Visual indicators showing product type (Variable Product, Variation, or Simple) 197 * Added: Clear PRO upgrade prompts for variable products and variations in FREE version 198 * Enhanced: Better backward compatibility with existing long-format tokens 199 192 200 = 1.0.1 = 193 201 * Fixed: some issues in admin area. … … 207 215 == Upgrade Notice == 208 216 217 = 1.0.2 = 218 Shorter, cleaner URLs and better handling of variable products. All existing links continue to work. 219 220 = 1.0.1 = 221 Bug fixes and stability improvements. 222 209 223 = 1.0.0 = 210 224 Initial release of Jump to Checkout. Install now to start creating direct checkout links for your WooCommerce store! -
jump-to-checkout/tags/1.0.2/vendor/composer/installed.php
r3435024 r3454005 2 2 'root' => array( 3 3 'name' => 'closemarketing/jump-to-checkout', 4 'pretty_version' => '1.0. 1',5 'version' => '1.0. 1.0',6 'reference' => ' fc70488f0d16cb863b4cb7c30c3fb24219d661e9',4 'pretty_version' => '1.0.2', 5 'version' => '1.0.2.0', 6 'reference' => '19416ac6343e97e541035be1437b358d2a898b4a', 7 7 'type' => 'wordpress-plugin', 8 8 'install_path' => __DIR__ . '/../../', … … 12 12 'versions' => array( 13 13 'closemarketing/jump-to-checkout' => array( 14 'pretty_version' => '1.0. 1',15 'version' => '1.0. 1.0',16 'reference' => ' fc70488f0d16cb863b4cb7c30c3fb24219d661e9',14 'pretty_version' => '1.0.2', 15 'version' => '1.0.2.0', 16 'reference' => '19416ac6343e97e541035be1437b358d2a898b4a', 17 17 'type' => 'wordpress-plugin', 18 18 'install_path' => __DIR__ . '/../../', -
jump-to-checkout/trunk/assets/css/admin.css
r3434274 r3454005 462 462 } 463 463 464 /* Select2 disabled options (variable products) */ 465 .select2-results__option[aria-disabled="true"] { 466 color: #a7aaad !important; 467 cursor: not-allowed !important; 468 background-color: #f6f7f7 !important; 469 opacity: 0.6; 470 } 471 472 .select2-results__option[aria-disabled="true"]:hover { 473 background-color: #f6f7f7 !important; 474 } 475 476 /* Strike-through effect for disabled options */ 477 .select2-results__option--disabled { 478 text-decoration: line-through; 479 font-style: italic; 480 } 481 464 482 @media (max-width: 782px) { 465 483 .jump-to-checkout-product-row { -
jump-to-checkout/trunk/assets/js/admin.js
r3434274 r3454005 93 93 } 94 94 95 // Check if product is disabled (variable product). 96 if (selectedOption.disabled || selectedOption.hasAttribute('disabled')) { 97 alert(jptcAdmin.i18n.variable_product_error || 'Variable products cannot be added directly. Please select a specific variation.'); 98 // Reset select2. 99 jQuery('.jump-to-checkout-product-search').val(null).trigger('change'); 100 return; 101 } 95 102 96 103 const productId = selectedOption.value; -
jump-to-checkout/trunk/includes/Admin/AdminPanel.php
r3435024 r3454005 113 113 'upgrade_url' => Features::get_upgrade_url(), 114 114 'i18n' => array( 115 'copy_success' => __( 'Link copied to clipboard!', 'jump-to-checkout' ), 116 'copy_error' => __( 'Failed to copy link.', 'jump-to-checkout' ), 117 'generate_error' => __( 'Error generating link.', 'jump-to-checkout' ), 118 'search_placeholder' => __( 'Search products...', 'jump-to-checkout' ), 119 'no_products' => __( 'No products found.', 'jump-to-checkout' ), 120 'no_link_name' => __( 'Please enter a link name.', 'jump-to-checkout' ), 121 'no_products_selected' => __( 'Please select at least one product.', 'jump-to-checkout' ), 122 'no_link_in_response' => __( 'No link in response', 'jump-to-checkout' ), 123 'no_products_label' => __( 'No products selected.', 'jump-to-checkout' ), 124 'remove_button' => __( 'Remove', 'jump-to-checkout' ), 115 'copy_success' => __( 'Link copied to clipboard!', 'jump-to-checkout' ), 116 'copy_error' => __( 'Failed to copy link.', 'jump-to-checkout' ), 117 'generate_error' => __( 'Error generating link.', 'jump-to-checkout' ), 118 'search_placeholder' => __( 'Search products...', 'jump-to-checkout' ), 119 'no_products' => __( 'No products found.', 'jump-to-checkout' ), 120 'no_link_name' => __( 'Please enter a link name.', 'jump-to-checkout' ), 121 'no_products_selected' => __( 'Please select at least one product.', 'jump-to-checkout' ), 122 'no_link_in_response' => __( 'No link in response', 'jump-to-checkout' ), 123 'no_products_label' => __( 'No products selected.', 'jump-to-checkout' ), 124 'remove_button' => __( 'Remove', 'jump-to-checkout' ), 125 'variable_product_error' => __( 'Variable products cannot be added directly. Please select a specific variation.', 'jump-to-checkout' ), 125 126 ), 126 127 ) … … 473 474 } 474 475 476 // Variable products should NEVER be selectable (FREE or PRO). 477 // They need specific variations to be added to cart. 478 if ( $product->is_type( 'variable' ) ) { 479 if ( Features::is_pro() ) { 480 $product_name .= ' ' . __( '[Variable Product - Select variation below]', 'jump-to-checkout' ); 481 } else { 482 $product_name .= ' ' . __( '[PRO: Variable Product]', 'jump-to-checkout' ); 483 } 484 485 $results[] = array( 486 'id' => $product->get_id(), 487 'text' => wp_strip_all_tags( $product_name ), 488 'disabled' => true, 489 ); 490 continue; 491 } 492 493 // Variations are only selectable in PRO. 494 if ( $product->is_type( 'variation' ) ) { 495 if ( Features::is_pro() ) { 496 // PRO: Show variation as selectable with indicator. 497 $product_name .= ' ' . __( '[Variation]', 'jump-to-checkout' ); 498 499 $results[] = array( 500 'id' => $product->get_id(), 501 'text' => wp_strip_all_tags( $product_name ), 502 ); 503 } else { 504 // FREE: Disable variations. 505 $product_name .= ' ' . __( '[PRO: Variation]', 'jump-to-checkout' ); 506 507 $results[] = array( 508 'id' => $product->get_id(), 509 'text' => wp_strip_all_tags( $product_name ), 510 'disabled' => true, 511 ); 512 } 513 continue; 514 } 515 516 // Simple products are always selectable. 475 517 $results[] = array( 476 518 'id' => $product->get_id(), -
jump-to-checkout/trunk/includes/Core/JumpToCheckout.php
r3435024 r3454005 82 82 83 83 /** 84 * Generate unique short token (8-10 characters) 85 * 86 * @return string 87 */ 88 private function generate_short_token() { 89 global $wpdb; 90 91 // Characters allowed in short token (alphanumeric, URL-safe). 92 $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; 93 $length = 10; 94 $max_tries = 10; 95 96 for ( $i = 0; $i < $max_tries; $i++ ) { 97 $token = ''; 98 for ( $j = 0; $j < $length; $j++ ) { 99 $token .= $characters[ wp_rand( 0, strlen( $characters ) - 1 ) ]; 100 } 101 102 // Check if token already exists using Database class method. 103 $existing_link = $this->db->get_link_by_token( $token ); 104 105 if ( ! $existing_link ) { 106 return $token; 107 } 108 } 109 110 // Fallback: use timestamp + random. 111 return substr( md5( time() . wp_rand() ), 0, 10 ); 112 } 113 114 /** 115 * Check if token is new short format (10 chars) or old long format 116 * 117 * @param string $token Token to check. 118 * @return bool True if new short format, false if old long format. 119 */ 120 private function is_short_token( $token ) { 121 return strlen( $token ) <= 20; 122 } 123 124 /** 84 125 * Add custom query vars 85 126 * … … 129 170 $expiry = apply_filters( 'jptc_link_expiry', 0, $name, $products ); 130 171 131 // Token data - FREE never includes expiry. PRO can add it via filter. 132 $data = array( 133 'products' => $products, 134 'exp' => 0, // FREE never expires. PRO will modify this via filter. 135 'iss' => 'jptc', 136 'iat' => time(), 137 ); 138 139 // Allow PRO to modify token data (PRO will add expiry here). 140 $data = apply_filters( 'jptc_token_data_before_encode', $data, $name, $products, $expiry ); 141 142 $token = $this->encode_token( $data ); 172 // Generate short token (new format: just a random ID, products stored in DB). 173 $token = $this->generate_short_token(); 143 174 $url = home_url( '/jump-to-checkout/' . $token ); 144 175 … … 296 327 setcookie( 'jptc_link_id', $link->id, time() + DAY_IN_SECONDS, $cookie_path, $cookie_domain, is_ssl(), true ); 297 328 298 // Decode token. 299 $data = $this->decode_token( $token ); 300 301 if ( false === $data ) { 302 wp_die( 303 esc_html__( 'Invalid or expired checkout link.', 'jump-to-checkout' ), 304 esc_html__( 'Error', 'jump-to-checkout' ), 305 array( 'response' => 403 ) 329 // Check if token is new short format or old long format. 330 if ( $this->is_short_token( $token ) ) { 331 // New format: products are stored in database. 332 $data = array( 333 'products' => json_decode( $link->products, true ), 306 334 ); 335 } else { 336 // Old format: decode token to get product data (backward compatibility). 337 $data = $this->decode_token( $token ); 338 339 if ( false === $data ) { 340 wp_die( 341 esc_html__( 'Invalid or expired checkout link.', 'jump-to-checkout' ), 342 esc_html__( 'Error', 'jump-to-checkout' ), 343 array( 'response' => 403 ) 344 ); 345 } 307 346 } 308 347 -
jump-to-checkout/trunk/jump-to-checkout.php
r3435024 r3454005 4 4 * Plugin URI: https://close.technology/wordpress-plugins/jump-to-checkout-pro/ 5 5 * Description: Generate direct checkout links with pre-selected products for WooCommerce. 6 * Version: 1.0. 16 * Version: 1.0.2 7 7 * Author: Close Marketing 8 8 * Author URI: https://close.marketing … … 25 25 defined( 'ABSPATH' ) || die( 'No script kiddies please!' ); 26 26 27 define( 'JTPC_VERSION', '1.0. 1' );27 define( 'JTPC_VERSION', '1.0.2' ); 28 28 define( 'JTPC_PLUGIN', __FILE__ ); 29 29 define( 'JTPC_PLUGIN_URL', plugin_dir_url( __FILE__ ) ); … … 46 46 // Initialize plugin classes. 47 47 if ( class_exists( 'CLOSE\JumpToCheckout\Core\JumpToCheckout' ) ) { 48 // Check and update database if needed. 49 $db = new CLOSE\JumpToCheckout\Database\Database(); 50 $db->maybe_create_table(); 51 48 52 new CLOSE\JumpToCheckout\Core\JumpToCheckout(); 49 53 new CLOSE\JumpToCheckout\Admin\AdminPanel(); -
jump-to-checkout/trunk/readme.txt
r3435024 r3454005 6 6 Tested up to: 6.9 7 7 Requires PHP: 7.4 8 Stable tag: 1.0. 18 Stable tag: 1.0.2 9 9 License: GPLv2 or later 10 10 License URI: https://www.gnu.org/licenses/gpl-2.0.html … … 190 190 == Changelog == 191 191 192 = 1.0.2 = 193 * Improved: Shortened token length to 10 characters for cleaner, more shareable URLs 194 * Fixed: Variable products (parent) are now always disabled to prevent direct cart addition 195 * Fixed: Product variations are only selectable in PRO version 196 * Added: Visual indicators showing product type (Variable Product, Variation, or Simple) 197 * Added: Clear PRO upgrade prompts for variable products and variations in FREE version 198 * Enhanced: Better backward compatibility with existing long-format tokens 199 192 200 = 1.0.1 = 193 201 * Fixed: some issues in admin area. … … 207 215 == Upgrade Notice == 208 216 217 = 1.0.2 = 218 Shorter, cleaner URLs and better handling of variable products. All existing links continue to work. 219 220 = 1.0.1 = 221 Bug fixes and stability improvements. 222 209 223 = 1.0.0 = 210 224 Initial release of Jump to Checkout. Install now to start creating direct checkout links for your WooCommerce store! -
jump-to-checkout/trunk/vendor/composer/installed.php
r3435024 r3454005 2 2 'root' => array( 3 3 'name' => 'closemarketing/jump-to-checkout', 4 'pretty_version' => '1.0. 1',5 'version' => '1.0. 1.0',6 'reference' => ' fc70488f0d16cb863b4cb7c30c3fb24219d661e9',4 'pretty_version' => '1.0.2', 5 'version' => '1.0.2.0', 6 'reference' => '19416ac6343e97e541035be1437b358d2a898b4a', 7 7 'type' => 'wordpress-plugin', 8 8 'install_path' => __DIR__ . '/../../', … … 12 12 'versions' => array( 13 13 'closemarketing/jump-to-checkout' => array( 14 'pretty_version' => '1.0. 1',15 'version' => '1.0. 1.0',16 'reference' => ' fc70488f0d16cb863b4cb7c30c3fb24219d661e9',14 'pretty_version' => '1.0.2', 15 'version' => '1.0.2.0', 16 'reference' => '19416ac6343e97e541035be1437b358d2a898b4a', 17 17 'type' => 'wordpress-plugin', 18 18 'install_path' => __DIR__ . '/../../',
Note: See TracChangeset
for help on using the changeset viewer.