{"id":355616,"date":"2026-09-05T15:44:17","date_gmt":"2026-09-05T15:44:17","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/lineweb-withdrawal-for-woocommerce\/"},"modified":"2026-09-05T15:44:08","modified_gmt":"2026-09-05T15:44:08","slug":"lineweb-withdrawal-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/lt.wordpress.org\/plugins\/lineweb-withdrawal-for-woocommerce\/","author":23285232,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.2","stable_tag":"1.0.2","tested":"7.1","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"Lineweb Withdrawal for WooCommerce","header_author":"Andrew Matia - Lineweb","header_description":"Adds a public two-step electronic withdrawal statement and receipt workflow for WooCommerce stores.","assets_banners_color":"f2f3f6","last_updated":"2026-09-05 15:44:08","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/github.com\/drewmt\/lineweb-withdrawal-for-woocommerce","header_author_uri":"https:\/\/www.lineweb.gr\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":49,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.2":{"tag":"1.0.2","author":"linewebdigital","date":"2026-09-05 15:44:08","revision":3682594}},"upgrade_notice":{"1.0.2":"<p>The managed withdrawal page is upgraded automatically. Replace any manually embedded <code>[lineweb_withdrawal_form]<\/code> shortcodes elsewhere with <code>[lwfw_withdrawal_form]<\/code>. Translations are now provided through WordPress.org language packs.<\/p>","1.0.1":"<p>Recommended maintenance release for the optional destructive uninstall path.<\/p>","1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3682594,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3682594,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3682594,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3682594,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3682594,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.2"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3682594,"resolution":"1","location":"assets","locale":"","width":1280,"height":889},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3682594,"resolution":"2","location":"assets","locale":"","width":1280,"height":787},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3682594,"resolution":"3","location":"assets","locale":"","width":1280,"height":835},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3682594,"resolution":"4","location":"assets","locale":"","width":1280,"height":1000},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3682594,"resolution":"5","location":"assets","locale":"","width":1280,"height":1000}},"screenshots":{"1":"Public electronic withdrawal form, available without a customer account.","2":"Separate review and confirmation step before the statement is submitted.","3":"Timestamped receipt shown after a successful statement.","4":"Merchant statement queue in WooCommerce administration.","5":"Statement detail with the matched order and review-only workflow."}},"plugin_section":[],"plugin_tags":[255182,282,207503,245590,286],"plugin_category":[45],"plugin_contributors":[275980],"plugin_business_model":[],"class_list":["post-355616","plugin","type-plugin","status-publish","hentry","plugin_tags-consumer-rights","plugin_tags-ecommerce","plugin_tags-greece","plugin_tags-withdrawal","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-linewebdigital","plugin_committers-linewebdigital"],"banners":{"banner":"https:\/\/ps.w.org\/lineweb-withdrawal-for-woocommerce\/assets\/banner-772x250.png?rev=3682594","banner_2x":"https:\/\/ps.w.org\/lineweb-withdrawal-for-woocommerce\/assets\/banner-1544x500.png?rev=3682594","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/lineweb-withdrawal-for-woocommerce\/assets\/icon.svg?rev=3682594","icon":"https:\/\/ps.w.org\/lineweb-withdrawal-for-woocommerce\/assets\/icon.svg?rev=3682594","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/lineweb-withdrawal-for-woocommerce\/assets\/screenshot-1.png?rev=3682594","caption":"Public electronic withdrawal form, available without a customer account."},{"src":"https:\/\/ps.w.org\/lineweb-withdrawal-for-woocommerce\/assets\/screenshot-2.png?rev=3682594","caption":"Separate review and confirmation step before the statement is submitted."},{"src":"https:\/\/ps.w.org\/lineweb-withdrawal-for-woocommerce\/assets\/screenshot-3.png?rev=3682594","caption":"Timestamped receipt shown after a successful statement."},{"src":"https:\/\/ps.w.org\/lineweb-withdrawal-for-woocommerce\/assets\/screenshot-4.png?rev=3682594","caption":"Merchant statement queue in WooCommerce administration."},{"src":"https:\/\/ps.w.org\/lineweb-withdrawal-for-woocommerce\/assets\/screenshot-5.png?rev=3682594","caption":"Statement detail with the matched order and review-only workflow."}],"raw_content":"<!--section=description-->\n<p>Lineweb Withdrawal for WooCommerce gives a store a focused electronic withdrawal workflow:<\/p>\n\n<ul>\n<li>a prominent storefront link that remains available without login;<\/li>\n<li>a public form asking only for name, order or contract reference, and acknowledgement email;<\/li>\n<li>a separate review step and clear confirmation action;<\/li>\n<li>a timestamped receipt shown to the consumer and sent by email;<\/li>\n<li>a merchant record screen under WooCommerce;<\/li>\n<li>safe WooCommerce order matching, an internal order note, and HPOS support;<\/li>\n<li>WordPress personal-data export integration;<\/li>\n<li>no telemetry, remote service, advertising, Pro upsell, or persistent IP\/browser logging.<\/li>\n<\/ul>\n\n<p>The plugin records a consumer statement. It does not automatically cancel an order, issue a refund, decide whether a statutory withdrawal right exists, or calculate the legal deadline. These decisions depend on facts the plugin cannot reliably know, including delivery timing, information provided to the consumer, contract type, and statutory exceptions.<\/p>\n\n<p>This software assists a technical workflow. It is not legal advice and does not by itself guarantee compliance. Store owners should have their implementation, consumer information, retention period, and internal handling process reviewed for their business and jurisdiction.<\/p>\n\n<p>Source code and development documentation are available at https:\/\/github.com\/drewmt\/lineweb-withdrawal-for-woocommerce.<\/p>\n\n<p>Developed by Andrew Matia and Lineweb: https:\/\/www.lineweb.gr\/<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate WooCommerce.<\/li>\n<li>Upload the plugin folder to <code>\/wp-content\/plugins\/<\/code> or install the ZIP through Plugins &gt; Add New.<\/li>\n<li>Activate Lineweb Withdrawal for WooCommerce.<\/li>\n<li>The plugin creates a published \u201cWithdraw from a contract\u201d page containing <code>[lwfw_withdrawal_form]<\/code> and adds the public storefront action.<\/li>\n<li>Submit a test statement and verify both the customer acknowledgement and merchant notification email before using the workflow on a live store.<\/li>\n<\/ol>\n\n<p>The page can be added to the site menu or footer as an additional permanent link. Do not place it behind authentication.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"how%20are%20translations%20provided%3F\"><h3>How are translations provided?<\/h3><\/dt>\n<dd><p>The plugin is translation-ready and uses language packs distributed through WordPress.org. Translations become available once approved on translate.wordpress.org. Translation files are not bundled in the installable ZIP.<\/p><\/dd>\n<dt id=\"what%20changes%20when%20upgrading%20from%201.0.0%20or%201.0.1%3F\"><h3>What changes when upgrading from 1.0.0 or 1.0.1?<\/h3><\/dt>\n<dd><p>The plugin automatically updates the shortcode on its managed withdrawal page, preserving the rest of its content and publication status. If you manually placed <code>[lineweb_withdrawal_form]<\/code> in other pages, widgets or templates, replace it with <code>[lwfw_withdrawal_form]<\/code> when upgrading. Other content is not rewritten.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20guarantee%20legal%20compliance%3F\"><h3>Does this plugin guarantee legal compliance?<\/h3><\/dt>\n<dd><p>No. It implements a technical statement and acknowledgement workflow. The merchant remains responsible for legal review, consumer information, availability, email delivery, retention, and handling.<\/p><\/dd>\n<dt id=\"does%20it%20automatically%20apply%20a%2014-day%20rule%3F\"><h3>Does it automatically apply a 14-day rule?<\/h3><\/dt>\n<dd><p>No. The relevant start date, information duties, extensions, and exceptions cannot be safely inferred from a WooCommerce order alone. The plugin accepts and timestamps the statement for merchant review.<\/p><\/dd>\n<dt id=\"does%20it%20cancel%20the%20order%20or%20issue%20a%20refund%3F\"><h3>Does it cancel the order or issue a refund?<\/h3><\/dt>\n<dd><p>No. It never changes the order status, payment, stock, fulfilment, or refund automatically.<\/p><\/dd>\n<dt id=\"must%20the%20consumer%20log%20in%3F\"><h3>Must the consumer log in?<\/h3><\/dt>\n<dd><p>No. The public function remains available to guests. A valid WooCommerce order key may prefill the form, but it is not required.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20an%20order%20cannot%20be%20matched%3F\"><h3>What happens if an order cannot be matched?<\/h3><\/dt>\n<dd><p>The statement is still recorded. Failed matching is not disclosed publicly, which prevents order enumeration and avoids blocking a consumer statement.<\/p><\/dd>\n<dt id=\"what%20personal%20data%20is%20stored%3F\"><h3>What personal data is stored?<\/h3><\/dt>\n<dd><p>Name, email, order or contract reference, statement text, receipt reference, timestamps, timezone, and limited delivery\/review metadata. The plugin does not persist IP addresses or browser user agents and sends no data to Lineweb.<\/p><\/dd>\n<dt id=\"what%20happens%20on%20uninstall%3F\"><h3>What happens on uninstall?<\/h3><\/dt>\n<dd><p>Receipt records are preserved by default. A site owner who has independently decided deletion is appropriate can define <code>LWFW_REMOVE_DATA_ON_UNINSTALL<\/code> as <code>true<\/code> before uninstalling.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Standardized the public shortcode as <code>[lwfw_withdrawal_form]<\/code> and safely upgraded the managed withdrawal page.<\/li>\n<li>Switched the installable package to WordPress.org language packs, keeping translation sources in the development repository.<\/li>\n<li>Added release file checks and WordPress runtime regression tests.<\/li>\n<li>Verified compatibility with WordPress 7.1.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Hardened the explicitly enabled uninstall cleanup with WordPress's identifier placeholder.<\/li>\n<li>Validated clean activation and public form rendering with WooCommerce 11.0.1.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<li>Public two-step withdrawal statement and acknowledgement workflow.<\/li>\n<li>Merchant receipt records, safe order matching, HPOS support, privacy export, and bounded email retries.<\/li>\n<\/ul>","raw_excerpt":"Adds a public two-step electronic withdrawal statement and timestamped acknowledgement workflow to WooCommerce.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/lt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/355616","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/lt.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/lt.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=355616"}],"author":[{"embeddable":true,"href":"https:\/\/lt.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/linewebdigital"}],"wp:attachment":[{"href":"https:\/\/lt.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=355616"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/lt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=355616"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/lt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=355616"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/lt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=355616"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/lt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=355616"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/lt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=355616"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}