| 开发者 |
teetb
peeterpaanike |
|---|---|
| 更新时间 | 2026年9月10日 19:10 |
| PHP版本: | 8.0 及以上 |
| WordPress版本: | 7.1 |
| 版权: | GPL-2.0-or-later |
| 版权网址: | 版权信息 |
WC_Order_Item::get_total().bcmod or pure-PHP fallback).[rowfs_withdrawal_form] shortcode) where customers without an account enter their order number and email and receive a secure, signed withdrawal link. Guest orders also get this link in the order email./wp-content/plugins/.[rowfs_withdrawal_form] shortcode and select it under General → Withdrawal form page (guests).Yes. The plugin declares full compatibility with the WooCommerce Custom Order Tables (HPOS) and uses the WC_Order meta API throughout — never get_post_meta() on the order ID.
Yes. The plugin reads WC_Order_Item::get_total() (the post-coupon line total) plus get_total_tax(), so a customer returning a coupon-discounted item gets the correct, post-discount refund.
Default is the EU-mandated 14 days. You can change the number and the unit (days / months / years) in the settings, and choose whether the period starts from the order's payment date or completion date.
No. The button in the order email is a regular link to the customer's "View order" page. If the customer is not signed in, WordPress / WooCommerce shows the standard login form and returns the customer to the same page after authentication. The plugin does not implement its own login flow. For guest orders the button opens the withdrawal form page via a signed link that authorises only the withdrawal form for that order — it never logs anyone in.
Registered customers: the "Withdraw from order" action button in My Account → Orders, or the same button in the order confirmation email — both open the modal on the customer's "View order" page. Guests (and anyone not signed in): the withdrawal form page with the [rowfs_withdrawal_form] shortcode, or the button in the order email of a guest order.
Yes. The plugin tracks per-line cumulative withdrawn quantities — a customer can return 1 of 3 items today, then 1 more next week. Further submissions are blocked once every line has been fully accounted for.
Yes. Create a page, add the [rowfs_withdrawal_form] shortcode and select it under WooCommerce → Settings → Right of Withdrawal → General → Withdrawal form page (guests). The customer enters the order number and the email address used for the order; if they match an order that is still within the withdrawal period, a secure link is emailed to the billing address. The link opens the same withdrawal form as in My Account. Guest orders also get the link directly in the order confirmation email.
The link is signed (HMAC over order ID, order key, billing email and expiry), is valid until the withdrawal period ends and only authorises the withdrawal form for that one order — it does not log anyone in. The lookup form always shows the same response, so it cannot be used to check whether an order or email exists, and it is rate-limited per IP.
Any country that uses IBAN. The plugin validates the standard format (2-letter country code + 2 check digits + up to 30 alphanumeric characters) and runs the Mod-97 checksum (uses bcmod if available, falls back to pure PHP). Non-IBAN formats are rejected at submit time.
If "Create WooCommerce refund automatically" is enabled (default), a WC_Order_Refund record is created with the exact line items and amount the customer requested; the order totals update accordingly, and stock is restocked if enabled. A confirmation email is then sent to the customer. Without auto-refund, only the order status and metadata are updated — no WC_Order_Refund is created.
Go to WooCommerce → Orders. The Withdrawal column shows the state of every request (initiated / partial / refunded), and the All withdrawal states dropdown next to the other filters narrows the list to pending or processed requests. When requests are waiting, a notice at the top of the orders list links straight to them.
The sender name and address set in WooCommerce → Settings → Emails → Sender options — the same as your regular order emails. If an SMTP plugin forces its own "From" address, that setting takes precedence. The rowfs_email_headers filter lets you change the headers further.
WooCommerce → Settings → Right of Withdrawal. The tab has five sub-tabs: General (notifications, deadline, terms page), Refund behaviour (auto-refund, restock), Withdrawal button (label, colours), Modal appearance (colours, opacity, width) and Required fields in modal (reason, IBAN, contact email, terms checkbox).
Yes. The reasons are filterable. In a child-theme functions.php or a small custom plugin:
add_filter('rowfs_withdrawal_reasons', function ($reasons) { $reasons['gift_unsuitable'] = __('Gift was unsuitable', 'your-textdomain'); unset($reasons['found_better_price']); return $reasons; });
[rowfs_withdrawal_form] shortcode page where customers without an account request a secure, signed withdrawal link by order number + billing email.rowfs_find_order_by_number filter for stores using custom order numbers.get_total() not get_subtotal()).