Changeset 3041433
- Timestamp:
- 02/26/2024 04:07:39 PM (13 months ago)
- Location:
- yabe-ukiyo
- Files:
-
- 14 edited
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
yabe-ukiyo/tags/1.0.10/constant.php
r3011703 r3041433 26 26 * @var string 27 27 */ 28 public const VERSION = '1.0. 9';28 public const VERSION = '1.0.10'; 29 29 /** 30 30 * @var int 31 31 */ 32 public const VERSION_ID = 100 09;32 public const VERSION_ID = 10010; 33 33 /** 34 34 * @var int … … 42 42 * @var int 43 43 */ 44 public const RELEASE_VERSION = 9;44 public const RELEASE_VERSION = 10; 45 45 /** 46 46 * @var string -
yabe-ukiyo/tags/1.0.10/readme.txt
r3011703 r3041433 5 5 Requires at least: 6.0 6 6 Tested up to: 6.4 7 Stable tag: 1.0. 97 Stable tag: 1.0.10 8 8 Requires PHP: 7.4 9 9 License: GPLv3 … … 64 64 65 65 66 = 1.0.10 = 67 * **[WooCommerce] Fix**: Licenses doesn't showed on the receipt email 68 * **[WooCommerce] Fix**: Broken style of Licenses table on the receipt page 69 66 70 = 1.0.9 = 67 71 * **New**: Yabe Ukiyo Lite is now available on [WordPress.org](https://wordpress.org/plugins/yabe-ukiyo/) -
yabe-ukiyo/tags/1.0.10/src/Ecommerce/Platform/WooCommerce/Email.php
r3011703 r3041433 35 35 private function email_after_order_table(WC_Abstract_Order $wcAbstractOrder, $sent_to_admin, $plain_text, $email) 36 36 { 37 if (!Config::get('ecommerce.woocommerce.print_receipt_email', \false)) {38 return;39 }40 37 if (!$wcAbstractOrder) { 41 38 return; … … 49 46 $site_url = \get_site_url(); 50 47 $site_name = \get_bloginfo('name'); 48 $licenseItems = []; 49 foreach ($licenseOrders as $licenseOrder) { 50 $row = $wpdb->get_row($wpdb->prepare("\n SELECT *\n FROM {$wpdb->prefix}{$wpdb->yabe_ukiyo_prefix}_licenses l\n WHERE l.id = %d\n ", $licenseOrder->license_id)); 51 if (!$row) { 52 continue; 53 } 54 $licenseItems[] = ['product_name' => wc_get_product($licenseOrder->product_id) ? wc_get_product($licenseOrder->product_id)->get_name() : null, 'expired_at' => $row->expired_at, 'license_key' => $row->license_key, 'token' => \base64_encode("{$site_url}\n{$site_name}\n{$row->license_key}")]; 55 } 56 \do_action('f!yabe/ukiyo/ecommerce/platform/woocommerce/email:email_after_order_table', $licenseItems, $wcAbstractOrder, $plain_text, $email); 57 if (!Config::get('ecommerce.woocommerce.print_receipt_email', \false)) { 58 return; 59 } 60 $block_title = \apply_filters('f!yabe/ukiyo/ecommerce/platform/woocommerce/receipt.block_head', 'Bricks Template Licenses'); 51 61 ?> 52 62 <table width="100%" border="0" cellpadding="0" cellspacing="0" style="width: 100%; vertical-align: top; margin-bottom: 40px; padding: 0;"> … … 54 64 <tr> 55 65 <td style="text-align: left; border: 0; padding: 0;" valign="top"> 56 <h2 style="color: #7f54b3; display: block; font-size: 18px; font-weight: bold; line-height: 130%; margin: 0 0 18px; text-align: left;">Yabe Ukiyo License</h2> 57 <div style="padding: 12px; color: #636363; border: 1px solid #e5e5e5;" > 66 <h2 style="color: #7f54b3; display: block; font-size: 18px; font-weight: bold; line-height: 130%; margin: 0 0 18px; text-align: left;"><?php 67 echo \esc_html($block_title); 68 ?></h2> 69 <div style="padding: 12px; color: #636363; border: 1px solid #e5e5e5;"> 58 70 <?php 59 foreach ($licenseOrders as $licenseOrder) { 60 $row = $wpdb->get_row($wpdb->prepare("\n SELECT *\n FROM {$wpdb->prefix}{$wpdb->yabe_ukiyo_prefix}_licenses l\n WHERE l.id = %d\n ", $licenseOrder->license_id)); 61 if (!$row) { 62 continue; 63 } 64 if (wc_get_product($licenseOrder->product_id)) { 71 foreach ($licenseItems as $licenseItem) { 72 if ($licenseItem['product_name']) { 65 73 ?> 66 74 <br><b>Product:</b> <?php 67 75 echo \esc_html(wc_get_product($licenseOrder->product_id)->get_name()); 68 76 ?> 69 77 <?php 70 78 } 71 if ($ row->expired_at) {79 if ($licenseItem['expired_at']) { 72 80 ?> 73 81 <br><b>Expire at:</b> <?php 74 echo \esc_html(\date('M d, Y', (int) $ row->expired_at));82 echo \esc_html(\date('M d, Y', (int) $licenseItem['expired_at'])); 75 83 ?> 76 84 <?php 77 85 } 78 86 ?> 79 87 <br><b>License Key:</b> <code><?php 80 echo \esc_html($ row->license_key);88 echo \esc_html($licenseItem['license_key']); 81 89 ?></code> 82 90 <br><b>Token:</b> <code><?php 83 echo \esc_html( \base64_encode("{$site_url}\n{$site_name}\n{$row->license_key}"));91 echo \esc_html($licenseItem['token']); 84 92 ?></code> 85 93 <br><br> 86 94 <?php 87 95 } 88 96 ?> … … 92 100 </tbody> 93 101 </table> 94 <?php 102 103 <?php 95 104 } 96 105 } -
yabe-ukiyo/tags/1.0.10/src/Ecommerce/Platform/WooCommerce/Payment.php
r3011703 r3041433 27 27 { 28 28 /** 29 * Generates and creates licenses when payment status is completed 30 * 31 * @package WooCommerce 32 * @link https://woocommerce.github.io/code-reference/hooks/hooks.html 33 */ 34 \add_action('woocommerce_order_status_completed', fn(int $order_id) => $this->order_status_completed($order_id), 10, 1); 35 /** 36 * Revokes and deactivates licenses when payment status is updated 37 * 29 38 * @package WooCommerce 30 39 * @link https://woocommerce.github.io/code-reference/hooks/hooks.html … … 61 70 return (int) \get_post_meta($post_id, 'ukiyo_max_sites', \true); 62 71 } 63 private function order_status_c hanged(int $order_id, string $old_status, string $new_status) : void72 private function order_status_completed(int $order_id) : void 64 73 { 65 74 $order = wc_get_order($order_id); … … 67 76 return; 68 77 } 69 if ($new_status === 'completed') { 70 $this->when_payment_status_completed($order, $old_status, $new_status); 71 } else { 78 $this->when_payment_status_completed($order); 79 } 80 private function order_status_changed(int $order_id, string $old_status, string $new_status) : void 81 { 82 $order = wc_get_order($order_id); 83 if (!$order) { 84 return; 85 } 86 if ($new_status !== 'completed') { 72 87 $this->when_payment_status_canceled($order, $old_status, $new_status); 73 88 } 74 89 } 75 private function when_payment_status_completed(WC_Order $wcOrder , string $old_status, string $new_status) : void90 private function when_payment_status_completed(WC_Order $wcOrder) : void 76 91 { 77 92 if ($this->is_order_complete($wcOrder->get_id())) { 78 93 $this->refresh_order($wcOrder->get_id()); 79 94 } else { 80 $this->fresh_order($wcOrder , $new_status);95 $this->fresh_order($wcOrder); 81 96 } 82 97 } … … 84 99 * A new order was created, let's create the license 85 100 */ 86 private function fresh_order(WC_Order $wcOrder , string $new_status) : void101 private function fresh_order(WC_Order $wcOrder) : void 87 102 { 88 103 /** @var wpdb $wpdb */ … … 100 115 $license_id = $wpdb->insert_id; 101 116 // create license order 102 $wpdb->insert(\sprintf('%s%s_orders', $wpdb->prefix, $wpdb->yabe_ukiyo_prefix), ['created_at' => \time(), 'updated_at' => \time(), 'uid' => Common::random_slug(10), 'vendor' => 'woocommerce', 'order_id' => $wcOrder->get_id(), 'order_type' => 'shop_order', 'product_id' => (int) $product->get_id(), 'product_type' => 'product', 'order_status' => $new_status, 'customer_id' => $wcOrder->get_user_id(), 'license_id' => $license_id], ['%d', '%d', '%s', '%s', '%d', '%s', '%d', '%s', '%s', '%d', '%d']);117 $wpdb->insert(\sprintf('%s%s_orders', $wpdb->prefix, $wpdb->yabe_ukiyo_prefix), ['created_at' => \time(), 'updated_at' => \time(), 'uid' => Common::random_slug(10), 'vendor' => 'woocommerce', 'order_id' => $wcOrder->get_id(), 'order_type' => 'shop_order', 'product_id' => (int) $product->get_id(), 'product_type' => 'product', 'order_status' => 'completed', 'customer_id' => $wcOrder->get_user_id(), 'license_id' => $license_id], ['%d', '%d', '%s', '%s', '%d', '%s', '%d', '%s', '%s', '%d', '%d']); 103 118 } 104 119 } -
yabe-ukiyo/tags/1.0.10/src/Ecommerce/Platform/WooCommerce/ReceiptBlock.php
r3011703 r3041433 44 44 $site_url = \get_site_url(); 45 45 $site_name = \get_bloginfo('name'); 46 $block_title = \apply_filters('f!yabe/ukiyo/ecommerce/platform/woocommerce/receipt.block_head', 'Bricks Template Licenses'); 46 47 ?> 47 48 48 <h3>Yabe Ukiyo License</h3> 49 <!-- <h3>Template License</h3> --> 50 <h3><?php 51 echo \esc_html($block_title); 52 ?></h3> 49 53 <table id="yabe-ukiyo_receipt" class="yabe-ukiyo_receipt"> 50 <thead >54 <thead class="yabe-ukiyo_head"> 51 55 <tr> 52 56 <th class="yabe-ukiyo_header_name">Product</th> … … 59 63 </thead> 60 64 <tbody> 61 <?php65 <?php 62 66 foreach ($licenseOrders as $licenseOrder) { 63 67 $row = $wpdb->get_row($wpdb->prepare("\n SELECT \n l.*,\n COUNT(s.id) AS sites_count\n FROM {$wpdb->prefix}{$wpdb->yabe_ukiyo_prefix}_licenses l\n LEFT JOIN {$wpdb->prefix}{$wpdb->yabe_ukiyo_prefix}_sites s ON s.license_id = l.id\n WHERE l.id = %d\n GROUP BY l.id\n ", $licenseOrder->license_id)); … … 68 72 $total_activation = $row->sites_count; 69 73 ?> 70 <tr>71 <td class="yabe-ukiyo_cel_name">72 <span class="yabe-ukiyo_name"><?php74 <tr> 75 <td class="yabe-ukiyo_cel_name"> 76 <span class="yabe-ukiyo_name"><?php 73 77 echo \esc_html(\get_post($licenseOrder->product_id)->post_title); 74 78 ?></span> 75 </td>76 <td class="yabe-ukiyo_cel_status">77 <span class="yabe-ukiyo_status"><?php79 </td> 80 <td class="yabe-ukiyo_cel_status"> 81 <span class="yabe-ukiyo_status"><?php 78 82 echo \esc_html($row->status ? 'Active' : 'Deactive'); 79 83 ?></span> 80 </td>81 <td class="yabe-ukiyo_cel_activation">82 <span class="yabe-ukiyo_activation"><?php84 </td> 85 <td class="yabe-ukiyo_cel_activation"> 86 <span class="yabe-ukiyo_activation"><?php 83 87 echo \esc_html($total_activation . ' / ' . $max_sites); 84 88 ?></span> 85 </td>86 <td class="yabe-ukiyo_cel_expire">87 <span class="yabe-ukiyo_expire"><?php89 </td> 90 <td class="yabe-ukiyo_cel_expire"> 91 <span class="yabe-ukiyo_expire"><?php 88 92 echo \esc_html($row->expired_at ? \date('M d, Y', (int) $row->expired_at) : ''); 89 93 ?></span> 90 </td>91 <td class="yabe-ukiyo_cel_license_key">92 <span class="yabe-ukiyo_license_key"><code><?php94 </td> 95 <td class="yabe-ukiyo_cel_license_key"> 96 <span class="yabe-ukiyo_license_key"><code><?php 93 97 echo \esc_html($row->license_key); 94 98 ?></code></span> 95 </td>96 <td class="yabe-ukiyo_cel_token">97 <span class="yabe-ukiyo_token"><code><?php99 </td> 100 <td class="yabe-ukiyo_cel_token"> 101 <span class="yabe-ukiyo_token"><code><?php 98 102 echo \esc_html(\base64_encode("{$site_url}\n{$site_name}\n!ukiyo:{$row->license_key}")); 99 103 ?></code></span> 100 </td>101 </tr>102 <?php104 </td> 105 </tr> 106 <?php 103 107 } 104 108 ?> 105 109 </tbody> 106 110 </table> 107 111 108 <style> 109 .yabe-ukiyo_receipt { 110 width: 100%; 111 table-layout: auto; 112 <style> 113 .woocommerce-order-details table { 114 &.yabe-ukiyo_receipt { 115 .yabe-ukiyo_head { 116 display: table-header-group; 117 border-bottom: 1px solid #e5e5e5; 118 } 112 119 } 113 114 .yabe-ukiyo_receipt .yabe-ukiyo_header_name { 115 text-align: left; 116 } 117 118 .yabe-ukiyo_receipt .yabe-ukiyo_cel_status, 119 .yabe-ukiyo_receipt .yabe-ukiyo_cel_activation, 120 .yabe-ukiyo_receipt .yabe-ukiyo_cel_expire { 121 text-align: center; 122 } 123 124 .yabe-ukiyo_receipt .yabe-ukiyo_cel_license_key, 125 .yabe-ukiyo_receipt .yabe-ukiyo_cel_token { 126 overflow-wrap: anywhere; 127 } 128 </style> 129 <?php 120 } 121 </style> 122 <?php 130 123 } 131 124 private function is_order_complete(int $post_id) : bool -
yabe-ukiyo/tags/1.0.10/vendor/composer/installed.php
r3011703 r3041433 3 3 namespace _YabeUkiyo; 4 4 5 return array('root' => array('name' => 'yabe/yabe-ukiyo-src', 'pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => NULL, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev' => \false), 'versions' => array('hidehalo/nanoid-php' => array('pretty_version' => '1.1.13', 'version' => '1.1.13.0', 'reference' => '3fc7c949f4e655939cc30e7110d658af3dbb0e30', 'type' => 'library', 'install_path' => __DIR__ . '/../hidehalo/nanoid-php', 'aliases' => array(), 'dev_requirement' => \false), 'paragonie/random_compat' => array('pretty_version' => 'v9.99.100', 'version' => '9.99.100.0', 'reference' => '996434e5492cb4c3edcb9168db6fbb1359ef965a', 'type' => 'library', 'install_path' => __DIR__ . '/../paragonie/random_compat', 'aliases' => array(), 'dev_requirement' => \false), 'psr/container' => array('pretty_version' => '1.1.2', 'version' => '1.1.2.0', 'reference' => '513e0666f7216c7459170d56df27dfcefe1689ea', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/container', 'aliases' => array(), 'dev_requirement' => \false), 'rosua/migrations' => array('pretty_version' => 'dev-master', 'version' => 'dev-master', 'reference' => '6e2f2307d71032c3707cfd25587f2132a955bcf2', 'type' => 'library', 'install_path' => __DIR__ . '/../rosua/migrations', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v2.5.2', 'version' => '2.5.2.0', 'reference' => 'e8b495ea28c1d97b5e0c121748d6f9b53d075c66', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v5.4.27', 'version' => '5.4.27.0', 'reference' => 'ff4bce3c33451e7ec778070e45bd23f74214cd5d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('pretty_version' => 'v1.27.0', 'version' => '1.27.0.0', 'reference' => '5bbc823adecdae860bb64756d639ecfec17b050a', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-ctype', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.27.0', 'version' => '1.27.0.0', 'reference' => '511a08c03c1960e08a883f4cffcacd219b758354', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('pretty_version' => 'v1.27.0', 'version' => '1.27.0.0', 'reference' => '19bd1e4fcd5b91116f14d8533c57831ed00571b6', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-normalizer', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-mbstring' => array('pretty_version' => 'v1.27.0', 'version' => '1.27.0.0', 'reference' => '8ad114f6b39e2c98a8b0e3bd907732c207c2b534', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-mbstring', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-php80' => array('pretty_version' => 'v1.27.0', 'version' => '1.27.0.0', 'reference' => '7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php80', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/property-access' => array('pretty_version' => 'v5.4.26', 'version' => '5.4.26.0', 'reference' => '0249e46f69e92049a488f39fcf531cb42c50caaa', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/property-access', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/property-info' => array('pretty_version' => 'v5.4.24', 'version' => '5.4.24.0', 'reference' => 'd43b85b00699b4484964c297575b5c6f9dc5f6e1', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/property-info', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v2.5.2', 'version' => '2.5.2.0', 'reference' => '4b426aac47d6427cc1a1d0f7e2ac724627f5966c', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/stopwatch' => array('pretty_version' => 'v5.4.21', 'version' => '5.4.21.0', 'reference' => 'f83692cd869a6f2391691d40a01e8acb89e76fee', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/stopwatch', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v5.4.26', 'version' => '5.4.26.0', 'reference' => '1181fe9270e373537475e826873b5867b863883c', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'yabe/yabe-ukiyo-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => NULL, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false)));5 return array('root' => array('name' => 'yabe/yabe-ukiyo-src', 'pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev' => \false), 'versions' => array('hidehalo/nanoid-php' => array('pretty_version' => '1.1.13', 'version' => '1.1.13.0', 'reference' => '3fc7c949f4e655939cc30e7110d658af3dbb0e30', 'type' => 'library', 'install_path' => __DIR__ . '/../hidehalo/nanoid-php', 'aliases' => array(), 'dev_requirement' => \false), 'paragonie/random_compat' => array('pretty_version' => 'v9.99.100', 'version' => '9.99.100.0', 'reference' => '996434e5492cb4c3edcb9168db6fbb1359ef965a', 'type' => 'library', 'install_path' => __DIR__ . '/../paragonie/random_compat', 'aliases' => array(), 'dev_requirement' => \false), 'psr/container' => array('pretty_version' => '1.1.2', 'version' => '1.1.2.0', 'reference' => '513e0666f7216c7459170d56df27dfcefe1689ea', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/container', 'aliases' => array(), 'dev_requirement' => \false), 'rosua/migrations' => array('pretty_version' => 'dev-master', 'version' => 'dev-master', 'reference' => '6e2f2307d71032c3707cfd25587f2132a955bcf2', 'type' => 'library', 'install_path' => __DIR__ . '/../rosua/migrations', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v2.5.2', 'version' => '2.5.2.0', 'reference' => 'e8b495ea28c1d97b5e0c121748d6f9b53d075c66', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v5.4.27', 'version' => '5.4.27.0', 'reference' => 'ff4bce3c33451e7ec778070e45bd23f74214cd5d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('pretty_version' => 'v1.27.0', 'version' => '1.27.0.0', 'reference' => '5bbc823adecdae860bb64756d639ecfec17b050a', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-ctype', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.27.0', 'version' => '1.27.0.0', 'reference' => '511a08c03c1960e08a883f4cffcacd219b758354', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('pretty_version' => 'v1.27.0', 'version' => '1.27.0.0', 'reference' => '19bd1e4fcd5b91116f14d8533c57831ed00571b6', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-normalizer', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-mbstring' => array('pretty_version' => 'v1.27.0', 'version' => '1.27.0.0', 'reference' => '8ad114f6b39e2c98a8b0e3bd907732c207c2b534', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-mbstring', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-php80' => array('pretty_version' => 'v1.27.0', 'version' => '1.27.0.0', 'reference' => '7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php80', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/property-access' => array('pretty_version' => 'v5.4.26', 'version' => '5.4.26.0', 'reference' => '0249e46f69e92049a488f39fcf531cb42c50caaa', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/property-access', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/property-info' => array('pretty_version' => 'v5.4.24', 'version' => '5.4.24.0', 'reference' => 'd43b85b00699b4484964c297575b5c6f9dc5f6e1', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/property-info', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v2.5.2', 'version' => '2.5.2.0', 'reference' => '4b426aac47d6427cc1a1d0f7e2ac724627f5966c', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/stopwatch' => array('pretty_version' => 'v5.4.21', 'version' => '5.4.21.0', 'reference' => 'f83692cd869a6f2391691d40a01e8acb89e76fee', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/stopwatch', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v5.4.26', 'version' => '5.4.26.0', 'reference' => '1181fe9270e373537475e826873b5867b863883c', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'yabe/yabe-ukiyo-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false))); -
yabe-ukiyo/tags/1.0.10/yabe-ukiyo.php
r3011703 r3041433 8 8 * Plugin URI: https://ukiyo.yabe.land 9 9 * Description: Bricks remote templates manager 10 * Version: 1.0. 910 * Version: 1.0.10 11 11 * Requires at least: 6.0 12 12 * Requires PHP: 7.4 -
yabe-ukiyo/trunk/constant.php
r3011703 r3041433 26 26 * @var string 27 27 */ 28 public const VERSION = '1.0. 9';28 public const VERSION = '1.0.10'; 29 29 /** 30 30 * @var int 31 31 */ 32 public const VERSION_ID = 100 09;32 public const VERSION_ID = 10010; 33 33 /** 34 34 * @var int … … 42 42 * @var int 43 43 */ 44 public const RELEASE_VERSION = 9;44 public const RELEASE_VERSION = 10; 45 45 /** 46 46 * @var string -
yabe-ukiyo/trunk/readme.txt
r3011703 r3041433 5 5 Requires at least: 6.0 6 6 Tested up to: 6.4 7 Stable tag: 1.0. 97 Stable tag: 1.0.10 8 8 Requires PHP: 7.4 9 9 License: GPLv3 … … 64 64 65 65 66 = 1.0.10 = 67 * **[WooCommerce] Fix**: Licenses doesn't showed on the receipt email 68 * **[WooCommerce] Fix**: Broken style of Licenses table on the receipt page 69 66 70 = 1.0.9 = 67 71 * **New**: Yabe Ukiyo Lite is now available on [WordPress.org](https://wordpress.org/plugins/yabe-ukiyo/) -
yabe-ukiyo/trunk/src/Ecommerce/Platform/WooCommerce/Email.php
r3011703 r3041433 35 35 private function email_after_order_table(WC_Abstract_Order $wcAbstractOrder, $sent_to_admin, $plain_text, $email) 36 36 { 37 if (!Config::get('ecommerce.woocommerce.print_receipt_email', \false)) {38 return;39 }40 37 if (!$wcAbstractOrder) { 41 38 return; … … 49 46 $site_url = \get_site_url(); 50 47 $site_name = \get_bloginfo('name'); 48 $licenseItems = []; 49 foreach ($licenseOrders as $licenseOrder) { 50 $row = $wpdb->get_row($wpdb->prepare("\n SELECT *\n FROM {$wpdb->prefix}{$wpdb->yabe_ukiyo_prefix}_licenses l\n WHERE l.id = %d\n ", $licenseOrder->license_id)); 51 if (!$row) { 52 continue; 53 } 54 $licenseItems[] = ['product_name' => wc_get_product($licenseOrder->product_id) ? wc_get_product($licenseOrder->product_id)->get_name() : null, 'expired_at' => $row->expired_at, 'license_key' => $row->license_key, 'token' => \base64_encode("{$site_url}\n{$site_name}\n{$row->license_key}")]; 55 } 56 \do_action('f!yabe/ukiyo/ecommerce/platform/woocommerce/email:email_after_order_table', $licenseItems, $wcAbstractOrder, $plain_text, $email); 57 if (!Config::get('ecommerce.woocommerce.print_receipt_email', \false)) { 58 return; 59 } 60 $block_title = \apply_filters('f!yabe/ukiyo/ecommerce/platform/woocommerce/receipt.block_head', 'Bricks Template Licenses'); 51 61 ?> 52 62 <table width="100%" border="0" cellpadding="0" cellspacing="0" style="width: 100%; vertical-align: top; margin-bottom: 40px; padding: 0;"> … … 54 64 <tr> 55 65 <td style="text-align: left; border: 0; padding: 0;" valign="top"> 56 <h2 style="color: #7f54b3; display: block; font-size: 18px; font-weight: bold; line-height: 130%; margin: 0 0 18px; text-align: left;">Yabe Ukiyo License</h2> 57 <div style="padding: 12px; color: #636363; border: 1px solid #e5e5e5;" > 66 <h2 style="color: #7f54b3; display: block; font-size: 18px; font-weight: bold; line-height: 130%; margin: 0 0 18px; text-align: left;"><?php 67 echo \esc_html($block_title); 68 ?></h2> 69 <div style="padding: 12px; color: #636363; border: 1px solid #e5e5e5;"> 58 70 <?php 59 foreach ($licenseOrders as $licenseOrder) { 60 $row = $wpdb->get_row($wpdb->prepare("\n SELECT *\n FROM {$wpdb->prefix}{$wpdb->yabe_ukiyo_prefix}_licenses l\n WHERE l.id = %d\n ", $licenseOrder->license_id)); 61 if (!$row) { 62 continue; 63 } 64 if (wc_get_product($licenseOrder->product_id)) { 71 foreach ($licenseItems as $licenseItem) { 72 if ($licenseItem['product_name']) { 65 73 ?> 66 74 <br><b>Product:</b> <?php 67 75 echo \esc_html(wc_get_product($licenseOrder->product_id)->get_name()); 68 76 ?> 69 77 <?php 70 78 } 71 if ($ row->expired_at) {79 if ($licenseItem['expired_at']) { 72 80 ?> 73 81 <br><b>Expire at:</b> <?php 74 echo \esc_html(\date('M d, Y', (int) $ row->expired_at));82 echo \esc_html(\date('M d, Y', (int) $licenseItem['expired_at'])); 75 83 ?> 76 84 <?php 77 85 } 78 86 ?> 79 87 <br><b>License Key:</b> <code><?php 80 echo \esc_html($ row->license_key);88 echo \esc_html($licenseItem['license_key']); 81 89 ?></code> 82 90 <br><b>Token:</b> <code><?php 83 echo \esc_html( \base64_encode("{$site_url}\n{$site_name}\n{$row->license_key}"));91 echo \esc_html($licenseItem['token']); 84 92 ?></code> 85 93 <br><br> 86 94 <?php 87 95 } 88 96 ?> … … 92 100 </tbody> 93 101 </table> 94 <?php 102 103 <?php 95 104 } 96 105 } -
yabe-ukiyo/trunk/src/Ecommerce/Platform/WooCommerce/Payment.php
r3011703 r3041433 27 27 { 28 28 /** 29 * Generates and creates licenses when payment status is completed 30 * 31 * @package WooCommerce 32 * @link https://woocommerce.github.io/code-reference/hooks/hooks.html 33 */ 34 \add_action('woocommerce_order_status_completed', fn(int $order_id) => $this->order_status_completed($order_id), 10, 1); 35 /** 36 * Revokes and deactivates licenses when payment status is updated 37 * 29 38 * @package WooCommerce 30 39 * @link https://woocommerce.github.io/code-reference/hooks/hooks.html … … 61 70 return (int) \get_post_meta($post_id, 'ukiyo_max_sites', \true); 62 71 } 63 private function order_status_c hanged(int $order_id, string $old_status, string $new_status) : void72 private function order_status_completed(int $order_id) : void 64 73 { 65 74 $order = wc_get_order($order_id); … … 67 76 return; 68 77 } 69 if ($new_status === 'completed') { 70 $this->when_payment_status_completed($order, $old_status, $new_status); 71 } else { 78 $this->when_payment_status_completed($order); 79 } 80 private function order_status_changed(int $order_id, string $old_status, string $new_status) : void 81 { 82 $order = wc_get_order($order_id); 83 if (!$order) { 84 return; 85 } 86 if ($new_status !== 'completed') { 72 87 $this->when_payment_status_canceled($order, $old_status, $new_status); 73 88 } 74 89 } 75 private function when_payment_status_completed(WC_Order $wcOrder , string $old_status, string $new_status) : void90 private function when_payment_status_completed(WC_Order $wcOrder) : void 76 91 { 77 92 if ($this->is_order_complete($wcOrder->get_id())) { 78 93 $this->refresh_order($wcOrder->get_id()); 79 94 } else { 80 $this->fresh_order($wcOrder , $new_status);95 $this->fresh_order($wcOrder); 81 96 } 82 97 } … … 84 99 * A new order was created, let's create the license 85 100 */ 86 private function fresh_order(WC_Order $wcOrder , string $new_status) : void101 private function fresh_order(WC_Order $wcOrder) : void 87 102 { 88 103 /** @var wpdb $wpdb */ … … 100 115 $license_id = $wpdb->insert_id; 101 116 // create license order 102 $wpdb->insert(\sprintf('%s%s_orders', $wpdb->prefix, $wpdb->yabe_ukiyo_prefix), ['created_at' => \time(), 'updated_at' => \time(), 'uid' => Common::random_slug(10), 'vendor' => 'woocommerce', 'order_id' => $wcOrder->get_id(), 'order_type' => 'shop_order', 'product_id' => (int) $product->get_id(), 'product_type' => 'product', 'order_status' => $new_status, 'customer_id' => $wcOrder->get_user_id(), 'license_id' => $license_id], ['%d', '%d', '%s', '%s', '%d', '%s', '%d', '%s', '%s', '%d', '%d']);117 $wpdb->insert(\sprintf('%s%s_orders', $wpdb->prefix, $wpdb->yabe_ukiyo_prefix), ['created_at' => \time(), 'updated_at' => \time(), 'uid' => Common::random_slug(10), 'vendor' => 'woocommerce', 'order_id' => $wcOrder->get_id(), 'order_type' => 'shop_order', 'product_id' => (int) $product->get_id(), 'product_type' => 'product', 'order_status' => 'completed', 'customer_id' => $wcOrder->get_user_id(), 'license_id' => $license_id], ['%d', '%d', '%s', '%s', '%d', '%s', '%d', '%s', '%s', '%d', '%d']); 103 118 } 104 119 } -
yabe-ukiyo/trunk/src/Ecommerce/Platform/WooCommerce/ReceiptBlock.php
r3011703 r3041433 44 44 $site_url = \get_site_url(); 45 45 $site_name = \get_bloginfo('name'); 46 $block_title = \apply_filters('f!yabe/ukiyo/ecommerce/platform/woocommerce/receipt.block_head', 'Bricks Template Licenses'); 46 47 ?> 47 48 48 <h3>Yabe Ukiyo License</h3> 49 <!-- <h3>Template License</h3> --> 50 <h3><?php 51 echo \esc_html($block_title); 52 ?></h3> 49 53 <table id="yabe-ukiyo_receipt" class="yabe-ukiyo_receipt"> 50 <thead >54 <thead class="yabe-ukiyo_head"> 51 55 <tr> 52 56 <th class="yabe-ukiyo_header_name">Product</th> … … 59 63 </thead> 60 64 <tbody> 61 <?php65 <?php 62 66 foreach ($licenseOrders as $licenseOrder) { 63 67 $row = $wpdb->get_row($wpdb->prepare("\n SELECT \n l.*,\n COUNT(s.id) AS sites_count\n FROM {$wpdb->prefix}{$wpdb->yabe_ukiyo_prefix}_licenses l\n LEFT JOIN {$wpdb->prefix}{$wpdb->yabe_ukiyo_prefix}_sites s ON s.license_id = l.id\n WHERE l.id = %d\n GROUP BY l.id\n ", $licenseOrder->license_id)); … … 68 72 $total_activation = $row->sites_count; 69 73 ?> 70 <tr>71 <td class="yabe-ukiyo_cel_name">72 <span class="yabe-ukiyo_name"><?php74 <tr> 75 <td class="yabe-ukiyo_cel_name"> 76 <span class="yabe-ukiyo_name"><?php 73 77 echo \esc_html(\get_post($licenseOrder->product_id)->post_title); 74 78 ?></span> 75 </td>76 <td class="yabe-ukiyo_cel_status">77 <span class="yabe-ukiyo_status"><?php79 </td> 80 <td class="yabe-ukiyo_cel_status"> 81 <span class="yabe-ukiyo_status"><?php 78 82 echo \esc_html($row->status ? 'Active' : 'Deactive'); 79 83 ?></span> 80 </td>81 <td class="yabe-ukiyo_cel_activation">82 <span class="yabe-ukiyo_activation"><?php84 </td> 85 <td class="yabe-ukiyo_cel_activation"> 86 <span class="yabe-ukiyo_activation"><?php 83 87 echo \esc_html($total_activation . ' / ' . $max_sites); 84 88 ?></span> 85 </td>86 <td class="yabe-ukiyo_cel_expire">87 <span class="yabe-ukiyo_expire"><?php89 </td> 90 <td class="yabe-ukiyo_cel_expire"> 91 <span class="yabe-ukiyo_expire"><?php 88 92 echo \esc_html($row->expired_at ? \date('M d, Y', (int) $row->expired_at) : ''); 89 93 ?></span> 90 </td>91 <td class="yabe-ukiyo_cel_license_key">92 <span class="yabe-ukiyo_license_key"><code><?php94 </td> 95 <td class="yabe-ukiyo_cel_license_key"> 96 <span class="yabe-ukiyo_license_key"><code><?php 93 97 echo \esc_html($row->license_key); 94 98 ?></code></span> 95 </td>96 <td class="yabe-ukiyo_cel_token">97 <span class="yabe-ukiyo_token"><code><?php99 </td> 100 <td class="yabe-ukiyo_cel_token"> 101 <span class="yabe-ukiyo_token"><code><?php 98 102 echo \esc_html(\base64_encode("{$site_url}\n{$site_name}\n!ukiyo:{$row->license_key}")); 99 103 ?></code></span> 100 </td>101 </tr>102 <?php104 </td> 105 </tr> 106 <?php 103 107 } 104 108 ?> 105 109 </tbody> 106 110 </table> 107 111 108 <style> 109 .yabe-ukiyo_receipt { 110 width: 100%; 111 table-layout: auto; 112 <style> 113 .woocommerce-order-details table { 114 &.yabe-ukiyo_receipt { 115 .yabe-ukiyo_head { 116 display: table-header-group; 117 border-bottom: 1px solid #e5e5e5; 118 } 112 119 } 113 114 .yabe-ukiyo_receipt .yabe-ukiyo_header_name { 115 text-align: left; 116 } 117 118 .yabe-ukiyo_receipt .yabe-ukiyo_cel_status, 119 .yabe-ukiyo_receipt .yabe-ukiyo_cel_activation, 120 .yabe-ukiyo_receipt .yabe-ukiyo_cel_expire { 121 text-align: center; 122 } 123 124 .yabe-ukiyo_receipt .yabe-ukiyo_cel_license_key, 125 .yabe-ukiyo_receipt .yabe-ukiyo_cel_token { 126 overflow-wrap: anywhere; 127 } 128 </style> 129 <?php 120 } 121 </style> 122 <?php 130 123 } 131 124 private function is_order_complete(int $post_id) : bool -
yabe-ukiyo/trunk/vendor/composer/installed.php
r3011703 r3041433 3 3 namespace _YabeUkiyo; 4 4 5 return array('root' => array('name' => 'yabe/yabe-ukiyo-src', 'pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => NULL, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev' => \false), 'versions' => array('hidehalo/nanoid-php' => array('pretty_version' => '1.1.13', 'version' => '1.1.13.0', 'reference' => '3fc7c949f4e655939cc30e7110d658af3dbb0e30', 'type' => 'library', 'install_path' => __DIR__ . '/../hidehalo/nanoid-php', 'aliases' => array(), 'dev_requirement' => \false), 'paragonie/random_compat' => array('pretty_version' => 'v9.99.100', 'version' => '9.99.100.0', 'reference' => '996434e5492cb4c3edcb9168db6fbb1359ef965a', 'type' => 'library', 'install_path' => __DIR__ . '/../paragonie/random_compat', 'aliases' => array(), 'dev_requirement' => \false), 'psr/container' => array('pretty_version' => '1.1.2', 'version' => '1.1.2.0', 'reference' => '513e0666f7216c7459170d56df27dfcefe1689ea', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/container', 'aliases' => array(), 'dev_requirement' => \false), 'rosua/migrations' => array('pretty_version' => 'dev-master', 'version' => 'dev-master', 'reference' => '6e2f2307d71032c3707cfd25587f2132a955bcf2', 'type' => 'library', 'install_path' => __DIR__ . '/../rosua/migrations', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v2.5.2', 'version' => '2.5.2.0', 'reference' => 'e8b495ea28c1d97b5e0c121748d6f9b53d075c66', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v5.4.27', 'version' => '5.4.27.0', 'reference' => 'ff4bce3c33451e7ec778070e45bd23f74214cd5d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('pretty_version' => 'v1.27.0', 'version' => '1.27.0.0', 'reference' => '5bbc823adecdae860bb64756d639ecfec17b050a', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-ctype', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.27.0', 'version' => '1.27.0.0', 'reference' => '511a08c03c1960e08a883f4cffcacd219b758354', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('pretty_version' => 'v1.27.0', 'version' => '1.27.0.0', 'reference' => '19bd1e4fcd5b91116f14d8533c57831ed00571b6', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-normalizer', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-mbstring' => array('pretty_version' => 'v1.27.0', 'version' => '1.27.0.0', 'reference' => '8ad114f6b39e2c98a8b0e3bd907732c207c2b534', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-mbstring', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-php80' => array('pretty_version' => 'v1.27.0', 'version' => '1.27.0.0', 'reference' => '7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php80', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/property-access' => array('pretty_version' => 'v5.4.26', 'version' => '5.4.26.0', 'reference' => '0249e46f69e92049a488f39fcf531cb42c50caaa', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/property-access', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/property-info' => array('pretty_version' => 'v5.4.24', 'version' => '5.4.24.0', 'reference' => 'd43b85b00699b4484964c297575b5c6f9dc5f6e1', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/property-info', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v2.5.2', 'version' => '2.5.2.0', 'reference' => '4b426aac47d6427cc1a1d0f7e2ac724627f5966c', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/stopwatch' => array('pretty_version' => 'v5.4.21', 'version' => '5.4.21.0', 'reference' => 'f83692cd869a6f2391691d40a01e8acb89e76fee', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/stopwatch', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v5.4.26', 'version' => '5.4.26.0', 'reference' => '1181fe9270e373537475e826873b5867b863883c', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'yabe/yabe-ukiyo-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => NULL, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false)));5 return array('root' => array('name' => 'yabe/yabe-ukiyo-src', 'pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev' => \false), 'versions' => array('hidehalo/nanoid-php' => array('pretty_version' => '1.1.13', 'version' => '1.1.13.0', 'reference' => '3fc7c949f4e655939cc30e7110d658af3dbb0e30', 'type' => 'library', 'install_path' => __DIR__ . '/../hidehalo/nanoid-php', 'aliases' => array(), 'dev_requirement' => \false), 'paragonie/random_compat' => array('pretty_version' => 'v9.99.100', 'version' => '9.99.100.0', 'reference' => '996434e5492cb4c3edcb9168db6fbb1359ef965a', 'type' => 'library', 'install_path' => __DIR__ . '/../paragonie/random_compat', 'aliases' => array(), 'dev_requirement' => \false), 'psr/container' => array('pretty_version' => '1.1.2', 'version' => '1.1.2.0', 'reference' => '513e0666f7216c7459170d56df27dfcefe1689ea', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/container', 'aliases' => array(), 'dev_requirement' => \false), 'rosua/migrations' => array('pretty_version' => 'dev-master', 'version' => 'dev-master', 'reference' => '6e2f2307d71032c3707cfd25587f2132a955bcf2', 'type' => 'library', 'install_path' => __DIR__ . '/../rosua/migrations', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('pretty_version' => 'v2.5.2', 'version' => '2.5.2.0', 'reference' => 'e8b495ea28c1d97b5e0c121748d6f9b53d075c66', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v5.4.27', 'version' => '5.4.27.0', 'reference' => 'ff4bce3c33451e7ec778070e45bd23f74214cd5d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('pretty_version' => 'v1.27.0', 'version' => '1.27.0.0', 'reference' => '5bbc823adecdae860bb64756d639ecfec17b050a', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-ctype', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-grapheme' => array('pretty_version' => 'v1.27.0', 'version' => '1.27.0.0', 'reference' => '511a08c03c1960e08a883f4cffcacd219b758354', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-intl-normalizer' => array('pretty_version' => 'v1.27.0', 'version' => '1.27.0.0', 'reference' => '19bd1e4fcd5b91116f14d8533c57831ed00571b6', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-normalizer', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-mbstring' => array('pretty_version' => 'v1.27.0', 'version' => '1.27.0.0', 'reference' => '8ad114f6b39e2c98a8b0e3bd907732c207c2b534', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-mbstring', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-php80' => array('pretty_version' => 'v1.27.0', 'version' => '1.27.0.0', 'reference' => '7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php80', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/property-access' => array('pretty_version' => 'v5.4.26', 'version' => '5.4.26.0', 'reference' => '0249e46f69e92049a488f39fcf531cb42c50caaa', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/property-access', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/property-info' => array('pretty_version' => 'v5.4.24', 'version' => '5.4.24.0', 'reference' => 'd43b85b00699b4484964c297575b5c6f9dc5f6e1', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/property-info', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v2.5.2', 'version' => '2.5.2.0', 'reference' => '4b426aac47d6427cc1a1d0f7e2ac724627f5966c', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/stopwatch' => array('pretty_version' => 'v5.4.21', 'version' => '5.4.21.0', 'reference' => 'f83692cd869a6f2391691d40a01e8acb89e76fee', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/stopwatch', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('pretty_version' => 'v5.4.26', 'version' => '5.4.26.0', 'reference' => '1181fe9270e373537475e826873b5867b863883c', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'yabe/yabe-ukiyo-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => null, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false))); -
yabe-ukiyo/trunk/yabe-ukiyo.php
r3011703 r3041433 8 8 * Plugin URI: https://ukiyo.yabe.land 9 9 * Description: Bricks remote templates manager 10 * Version: 1.0. 910 * Version: 1.0.10 11 11 * Requires at least: 6.0 12 12 * Requires PHP: 7.4
Note: See TracChangeset
for help on using the changeset viewer.