Changeset 3435218
- Timestamp:
- 01/08/2026 02:46:19 PM (6 weeks ago)
- Location:
- woopop-electronic-invoice-free/trunk
- Files:
-
- 14 edited
-
addon/for/cozmos/vendor/composer/installed.php (modified) (2 diffs)
-
addon/for/pmpro/vendor/composer/installed.php (modified) (2 diffs)
-
addon/to/aruba/vendor/composer/installed.php (modified) (2 diffs)
-
addon/to/fattureincloud-stock/vendor/composer/installed.php (modified) (2 diffs)
-
addon/to/fattureincloud/vendor/composer/installed.php (modified) (2 diffs)
-
addon/to/sdi-pec/vendor/composer/installed.php (modified) (2 diffs)
-
changelog.txt (modified) (1 diff)
-
inc/integrations.php (modified) (1 diff)
-
index.php (modified) (2 diffs)
-
readme.md (modified) (2 diffs)
-
readme.txt (modified) (2 diffs)
-
src/Functions/Invoice.php (modified) (1 diff)
-
src/WooCommerce/Fields/TaxFields.php (modified) (2 diffs)
-
vendor/composer/installed.php (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
woopop-electronic-invoice-free/trunk/addon/for/cozmos/vendor/composer/installed.php
r3426093 r3435218 4 4 'pretty_version' => 'dev-main', 5 5 'version' => 'dev-main', 6 'reference' => ' f200e3aa0575373da9b9d69cfa3f3d0273687fe4',6 'reference' => '1ecdf32bf3f88d82e8272ff1de3beaddca188836', 7 7 'type' => 'library', 8 8 'install_path' => __DIR__ . '/../../', … … 14 14 'pretty_version' => 'dev-main', 15 15 'version' => 'dev-main', 16 'reference' => ' f200e3aa0575373da9b9d69cfa3f3d0273687fe4',16 'reference' => '1ecdf32bf3f88d82e8272ff1de3beaddca188836', 17 17 'type' => 'library', 18 18 'install_path' => __DIR__ . '/../../', -
woopop-electronic-invoice-free/trunk/addon/for/pmpro/vendor/composer/installed.php
r3426093 r3435218 4 4 'pretty_version' => 'dev-main', 5 5 'version' => 'dev-main', 6 'reference' => ' f200e3aa0575373da9b9d69cfa3f3d0273687fe4',6 'reference' => '1ecdf32bf3f88d82e8272ff1de3beaddca188836', 7 7 'type' => 'library', 8 8 'install_path' => __DIR__ . '/../../', … … 14 14 'pretty_version' => 'dev-main', 15 15 'version' => 'dev-main', 16 'reference' => ' f200e3aa0575373da9b9d69cfa3f3d0273687fe4',16 'reference' => '1ecdf32bf3f88d82e8272ff1de3beaddca188836', 17 17 'type' => 'library', 18 18 'install_path' => __DIR__ . '/../../', -
woopop-electronic-invoice-free/trunk/addon/to/aruba/vendor/composer/installed.php
r3426093 r3435218 4 4 'pretty_version' => 'dev-main', 5 5 'version' => 'dev-main', 6 'reference' => ' f200e3aa0575373da9b9d69cfa3f3d0273687fe4',6 'reference' => '1ecdf32bf3f88d82e8272ff1de3beaddca188836', 7 7 'type' => 'library', 8 8 'install_path' => __DIR__ . '/../../', … … 14 14 'pretty_version' => 'dev-main', 15 15 'version' => 'dev-main', 16 'reference' => ' f200e3aa0575373da9b9d69cfa3f3d0273687fe4',16 'reference' => '1ecdf32bf3f88d82e8272ff1de3beaddca188836', 17 17 'type' => 'library', 18 18 'install_path' => __DIR__ . '/../../', -
woopop-electronic-invoice-free/trunk/addon/to/fattureincloud-stock/vendor/composer/installed.php
r3426093 r3435218 4 4 'pretty_version' => 'dev-main', 5 5 'version' => 'dev-main', 6 'reference' => ' f200e3aa0575373da9b9d69cfa3f3d0273687fe4',6 'reference' => '1ecdf32bf3f88d82e8272ff1de3beaddca188836', 7 7 'type' => 'library', 8 8 'install_path' => __DIR__ . '/../../', … … 14 14 'pretty_version' => 'dev-main', 15 15 'version' => 'dev-main', 16 'reference' => ' f200e3aa0575373da9b9d69cfa3f3d0273687fe4',16 'reference' => '1ecdf32bf3f88d82e8272ff1de3beaddca188836', 17 17 'type' => 'library', 18 18 'install_path' => __DIR__ . '/../../', -
woopop-electronic-invoice-free/trunk/addon/to/fattureincloud/vendor/composer/installed.php
r3426093 r3435218 4 4 'pretty_version' => 'dev-main', 5 5 'version' => 'dev-main', 6 'reference' => ' f200e3aa0575373da9b9d69cfa3f3d0273687fe4',6 'reference' => '1ecdf32bf3f88d82e8272ff1de3beaddca188836', 7 7 'type' => 'library', 8 8 'install_path' => __DIR__ . '/../../', … … 14 14 'pretty_version' => 'dev-main', 15 15 'version' => 'dev-main', 16 'reference' => ' f200e3aa0575373da9b9d69cfa3f3d0273687fe4',16 'reference' => '1ecdf32bf3f88d82e8272ff1de3beaddca188836', 17 17 'type' => 'library', 18 18 'install_path' => __DIR__ . '/../../', -
woopop-electronic-invoice-free/trunk/addon/to/sdi-pec/vendor/composer/installed.php
r3426093 r3435218 4 4 'pretty_version' => 'dev-main', 5 5 'version' => 'dev-main', 6 'reference' => ' f200e3aa0575373da9b9d69cfa3f3d0273687fe4',6 'reference' => '1ecdf32bf3f88d82e8272ff1de3beaddca188836', 7 7 'type' => 'library', 8 8 'install_path' => __DIR__ . '/../../', … … 14 14 'pretty_version' => 'dev-main', 15 15 'version' => 'dev-main', 16 'reference' => ' f200e3aa0575373da9b9d69cfa3f3d0273687fe4',16 'reference' => '1ecdf32bf3f88d82e8272ff1de3beaddca188836', 17 17 'type' => 'library', 18 18 'install_path' => __DIR__ . '/../../', -
woopop-electronic-invoice-free/trunk/changelog.txt
r3426093 r3435218 1 = 6.5.8 - 08/01/2025 = 2 Added: resolveOrder 3 Fixed: disableInvoiceOnOrderTotalZero, add support for auto completed order 4 Fixed: getNature and getRefN 5 1 6 = 6.5.7 - 23/12/2025 = 2 7 Added: Freshworks widget -
woopop-electronic-invoice-free/trunk/inc/integrations.php
r3409381 r3435218 360 360 'help_link', WC_EL_INV_TEXTDOMAIN); ?></a></li> 361 361 <li><a target="_blank" 362 href="https://help.popapi.io/category/paid-memberships-pro/"><?php echo esc_html_x('Paid Memberships Pro', 363 'help_link', WC_EL_INV_TEXTDOMAIN); ?></a></li> 364 <li><a target="_blank" 362 365 href="https://help.popapi.io/category/sdi-via-pop/"><?php echo esc_html_x('SdI via POP', 366 'help_link', WC_EL_INV_TEXTDOMAIN); ?></a></li> 367 <li><a target="_blank" 368 href="https://help.popapi.io/category/peppol/"><?php echo esc_html_x('PEPPOL', 363 369 'help_link', WC_EL_INV_TEXTDOMAIN); ?></a></li> 364 370 <li><a target="_blank" -
woopop-electronic-invoice-free/trunk/index.php
r3426093 r3435218 7 7 * Description: POP automatically configures your e-commerce to comply with European tax regulations. Your e-commerce can generate electronic invoices in XML format and, thanks to our APIs, automatically transmit them to your accounting software and tax authorities. 8 8 * 9 * Version: 6.5. 79 * Version: 6.5.8 10 10 * Author: POP 11 11 * Author URI: https://popapi.io/ … … 52 52 define('WC_EL_INV_NAME', 'POP Electronic Invoice'); 53 53 define('WC_EL_INV_TEXTDOMAIN', 'el-inv'); 54 define('WC_EL_INV_VERSION', '6.5. 7');54 define('WC_EL_INV_VERSION', '6.5.8'); 55 55 define('WC_EL_INV_VERSION_CLASS', str_replace('.', '_', WC_EL_INV_VERSION)); 56 56 define('WC_EL_INV_PLUGIN_DIR', basename(plugin_dir_path(__FILE__))); -
woopop-electronic-invoice-free/trunk/readme.md
r3426093 r3435218 4 4 * **Requires at least:** 4.6 5 5 * **Tested up to:** 6.9 6 * **Stable tag:** 6.5. 76 * **Stable tag:** 6.5.8 7 7 * **Requires PHP:** 5.6 8 8 * **License:** GPLv2 or later … … 150 150 ## Changelog 151 151 == Changelog == 152 = 6.5.8 - 08/01/2025 = 153 * Add: resolveOrder 154 * Fix: disableInvoiceOnOrderTotalZero, add support for auto completed order 155 * Fix: getNature and getRefN 156 152 157 = 6.5.7 - 23/12/2025 = 153 158 * Add: Freshworks widget -
woopop-electronic-invoice-free/trunk/readme.txt
r3426093 r3435218 4 4 Requires at least: 4.6 5 5 Tested up to: 6.9 6 Stable tag: 6.5. 76 Stable tag: 6.5.8 7 7 Requires PHP: 5.6 8 8 License: GPLv2 or later … … 129 129 130 130 == Changelog == 131 = 6.5.8 - 08/01/2025 = 132 * Add: resolveOrder 133 * Fix: disableInvoiceOnOrderTotalZero, add support for auto completed order 134 * Fix: getNature and getRefN 135 131 136 = 6.5.7 - 23/12/2025 = 132 137 * Add: Freshworks widget -
woopop-electronic-invoice-free/trunk/src/Functions/Invoice.php
r3382415 r3435218 676 676 677 677 if ('on' === $disableInvoiceNumber && 678 is_subclass_of($order, '\WcElectronInvoice\Providers\Order')678 (is_subclass_of($order, '\WcElectronInvoice\Providers\Order') || $order instanceof \WC_Abstract_Order) 679 679 ) { 680 680 $total = floatval($order->get_total()); -
woopop-electronic-invoice-free/trunk/src/WooCommerce/Fields/TaxFields.php
r3327458 r3435218 209 209 public static function getNature($order): ?string 210 210 { 211 if ($order instanceof \stdClass) { 212 if ('shop_order' === $order->order_type) { 213 $order = OrderQuery::instance()->getProviderOrder($order->id, $order->provider); 214 } elseif ('shop_order_refund' === $order->order_type) { 215 $order = OrderQuery::instance()->getProviderOrder($order->parent_id, $order->provider); 216 } 217 } 218 219 if (! is_subclass_of($order, '\WcElectronInvoice\Providers\Order') && 220 ! is_subclass_of($order, '\WcElectronInvoice\Providers\OrderRefund') && 221 ! property_exists($order, 'id') || 222 ! method_exists($order, 'get_id') 211 $order = self::resolveOrder($order); 212 $sanMarinoSupport = sanMarinoSupport(); 213 214 $isOrder = is_subclass_of($order, '\WcElectronInvoice\Providers\Order'); 215 $isRefund = is_subclass_of($order, '\WcElectronInvoice\Providers\OrderRefund'); 216 217 if ((! $isOrder && ! $isRefund) || ! method_exists($order, 'get_id')) { 218 return null; 219 } 220 221 if (! self::getType($order->get_meta('_billing_invoice_type'))) { 222 return null; 223 } 224 225 $nature = method_exists($order, 'get_nature_rc') ? $order->get_nature_rc() : ''; 226 227 // Country IT return 228 if ($isOrder && 229 'SM' !== $sanMarinoSupport->shopCountry && 230 'IT' === $order->get_billing_country() && 231 '' === $nature 223 232 ) { 224 233 return null; 225 234 } 226 235 227 if (! self::getType($order->get_meta('_billing_invoice_type'))) { 228 return null; 229 } 230 231 $nature = $order->get_nature_rc(); 232 233 // Country IT return 234 if (is_subclass_of($order, '\WcElectronInvoice\Providers\Order') && ! property_exists($order, 'id')) { 235 if ('IT' === $order->get_billing_country() && ! $nature) { 236 return null; 237 } 238 } 239 240 $parentID = $order->get_parent_id(); 241 $orderID = $order->get_id(); 242 243 $parentOrder = OrderQuery::instance()->getProviderOrder($parentID, $order->provider); 244 $orderIsAllowed = isset($parentID) && 0 !== $parentID && 'shop_order_refund' === $order->get_type() ? 245 // parent of shop refund order 246 $parentOrder : 247 // shop order 248 $order; 249 250 if (is_object($orderIsAllowed)) { 251 $natureRCharge = $orderIsAllowed->get_meta('nature_rc'); 252 } else { 253 $natureRCharge = ''; 254 } 255 256 if ('' !== $natureRCharge) { 257 return $natureRCharge; 258 } else { 259 return ''; 260 } 236 $parentOrder = null; 237 if (property_exists($order, 'provider') && 0 !== (int) $order->get_parent_id()) { 238 $parentOrder = OrderQuery::instance()->getProviderOrder($order->get_parent_id(), $order->provider); 239 } 240 241 $orderForMeta = $isRefund && is_object($parentOrder) ? $parentOrder : $order; 242 $natureMeta = is_object($orderForMeta) ? $orderForMeta->get_meta('nature_rc') : ''; 243 244 if ('' !== $natureMeta) { 245 return $natureMeta; 246 } 247 248 return $nature; 261 249 } 262 250 … … 290 278 public static function getRefN($order) 291 279 { 292 $provider = $order->provider; 293 $order = OrderQuery::instance()->getProviderOrder($order->id, $provider); 280 $order = self::resolveOrder($order); 294 281 $sanMarinoSupport = sanMarinoSupport(); 295 282 296 $refNorm = ''; 297 if (is_subclass_of($order, '\WcElectronInvoice\Providers\OrderRefund')) { 298 $refNorm = $order->get_ref_norm_rc(); 299 } 300 301 $isSubclass = is_subclass_of($order, '\WcElectronInvoice\Providers\Order'); 302 if ($isSubclass && 303 ! property_exists($order, 'id') || 304 ! method_exists($order, 'get_id') 283 $refNorm = method_exists($order, 'get_ref_norm_rc') ? $order->get_ref_norm_rc() : ''; 284 285 $isOrder = is_subclass_of($order, '\WcElectronInvoice\Providers\Order'); 286 $isRefund = is_subclass_of($order, '\WcElectronInvoice\Providers\OrderRefund'); 287 288 if ((! $isOrder && ! $isRefund) || ! method_exists($order, 'get_id')) { 289 return null; 290 } 291 292 if (! self::getType($order->get_meta('_billing_invoice_type'))) { 293 return null; 294 } 295 296 // Country IT return 297 if ($isOrder && 298 'SM' !== $sanMarinoSupport->shopCountry && 299 'IT' === $order->get_billing_country() && 300 '' === $refNorm 305 301 ) { 306 302 return null; 307 } elseif (! $isSubclass) { 308 $order = wc_get_order($order->id); 309 } 310 311 if (! self::getType($order->get_meta('_billing_invoice_type'))) { 312 return null; 313 } 314 315 // Country IT return 316 if ($isSubclass) { 317 if ('SM' !== $sanMarinoSupport->shopCountry && 318 'IT' === $order->get_billing_country() && 319 ! $refNorm) { 320 return null; 321 } 322 } 323 324 $parentID = $order->get_parent_id(); 325 $orderID = $order->get_id(); 326 $parentOrder = OrderQuery::instance()->getProviderOrder($parentID, $provider); 327 $orderIsAllowed = isset($parentID) && 0 !== $parentID ? 328 // shop refund order 329 $parentOrder : 330 // shop order 331 $order; 332 333 if (is_object($orderIsAllowed)) { 334 $natureRefNorm = $orderIsAllowed->get_meta('ref_norm_rc'); 335 } else { 336 $natureRefNorm = ''; 337 } 303 } 304 305 $parentOrder = null; 306 if (property_exists($order, 'provider') && 0 !== (int) $order->get_parent_id()) { 307 $parentOrder = OrderQuery::instance()->getProviderOrder($order->get_parent_id(), $order->provider); 308 } 309 310 $orderForMeta = $isRefund && is_object($parentOrder) ? $parentOrder : $order; 311 $natureRefNorm = is_object($orderForMeta) ? $orderForMeta->get_meta('ref_norm_rc') : ''; 338 312 339 313 if ('' !== $natureRefNorm) { 340 314 return $natureRefNorm; 341 } else { 342 return ''; 343 } 315 } 316 317 return $refNorm; 318 } 319 320 /** 321 * Resolve order/stdClass to provider order where possible. 322 * 323 * @param $order 324 * 325 * @return mixed 326 */ 327 private static function resolveOrder($order) 328 { 329 $isOrder = is_subclass_of($order, '\WcElectronInvoice\Providers\Order'); 330 $isRefund = is_subclass_of($order, '\WcElectronInvoice\Providers\OrderRefund'); 331 if ($isOrder || $isRefund) { 332 return $order; 333 } 334 335 if ($order instanceof \stdClass && isset($order->order_type, $order->provider, $order->id)) { 336 $orderId = 'shop_order_refund' === $order->order_type ? $order->parent_id : $order->id; 337 return OrderQuery::instance()->getProviderOrder($orderId, $order->provider); 338 } 339 340 if (isset($order->provider, $order->id)) { 341 return OrderQuery::instance()->getProviderOrder($order->id, $order->provider); 342 } 343 344 return $order; 344 345 } 345 346 -
woopop-electronic-invoice-free/trunk/vendor/composer/installed.php
r3426093 r3435218 4 4 'pretty_version' => 'dev-main', 5 5 'version' => 'dev-main', 6 'reference' => ' f200e3aa0575373da9b9d69cfa3f3d0273687fe4',6 'reference' => '1ecdf32bf3f88d82e8272ff1de3beaddca188836', 7 7 'type' => 'library', 8 8 'install_path' => __DIR__ . '/../../', … … 14 14 'pretty_version' => 'dev-main', 15 15 'version' => 'dev-main', 16 'reference' => ' f200e3aa0575373da9b9d69cfa3f3d0273687fe4',16 'reference' => '1ecdf32bf3f88d82e8272ff1de3beaddca188836', 17 17 'type' => 'library', 18 18 'install_path' => __DIR__ . '/../../',
Note: See TracChangeset
for help on using the changeset viewer.