Title: Chriskak Service &amp; Product Withdrawal Manager
Author: Christos Kakoulakis
Published: <strong>July 30, 2026</strong>
Last modified: July 30, 2026

---

Search plugins

![](https://ps.w.org/chriskak-service-product-withdrawal-manager/assets/banner-772x250.
png?rev=3628735)

![](https://s.w.org/plugins/geopattern-icon/chriskak-service-product-withdrawal-
manager_dde6e4.svg)

# Chriskak Service & Product Withdrawal Manager

 By [Christos Kakoulakis](https://profiles.wordpress.org/chriskak/)

[Download](https://downloads.wordpress.org/plugin/chriskak-service-product-withdrawal-manager.3.0.1.zip)

 * [Details](https://wordpress.org/plugins/chriskak-service-product-withdrawal-manager/#description)
 * [Reviews](https://wordpress.org/plugins/chriskak-service-product-withdrawal-manager/#reviews)
 *  [Installation](https://wordpress.org/plugins/chriskak-service-product-withdrawal-manager/#installation)
 * [Development](https://wordpress.org/plugins/chriskak-service-product-withdrawal-manager/#developers)

 [Support](https://wordpress.org/support/plugin/chriskak-service-product-withdrawal-manager/)

## Description

Chriskak Service & Product Withdrawal Manager provides a shortcode-based withdrawal
form that can work with or without WooCommerce.

Administrators can:

 * Configure the withdrawal period.
 * Add standalone services.
 * Reorder and customize standard form fields.
 * Edit customer and administrator email content.
 * Review and cancel withdrawal requests.
 * Record a cancellation reason and notify the customer.
 * Track WooCommerce orders with a dedicated Withdrawal requested status.
 * Customize the WooCommerce withdrawal button text.

When WooCommerce is active, signed-in customers see a withdrawal button beside each
eligible order in My Account and on the order details page. The button opens the
configured form page with that order selected. The withdrawal period is calculated
from the delivery date stored on the order.

For standalone services, visitors select a configured service and provide the contract
date. Guest submissions require email confirmation before a withdrawal request is
created.

The form is added with:

    ```
    [ckspwm_service_products_withdrawal_form]
    ```

This plugin does not connect to third-party services or include tracking. Email 
is sent through the WordPress mail system or the WooCommerce mailer available on
the site.

Important: The included withdrawal wording is a general example and does not constitute
legal advice. Site owners should review their legal obligations with a qualified
professional.

### How to Use

#### Initial setup

 1. Activate Chriskak Service & Product Withdrawal Manager.
 2. Create a new WordPress page for the withdrawal form.
 3. Add the following shortcode to the page:
 4. [ckspwm_service_products_withdrawal_form]
 5. Publish the page.
 6. Open WooCommerce > Withdrawal settings. Without WooCommerce, open Settings > Product
    and service withdrawals.
 7. Select the published page under Withdrawal form page.
 8. Configure the withdrawal period, notification email address, form content and email
    templates.

#### WooCommerce product withdrawals

When WooCommerce is active, the plugin can display a Withdrawal button beside eligible
customer orders under My Account > Orders and on the order details page.

An order is eligible when:

 * It belongs to the signed-in customer.
 * Its status is Completed.
 * It has a valid delivery date.
 * It is within the configured withdrawal period.
 * No previous withdrawal request exists for that order.

The plugin adds a Delivery date field to the WooCommerce order editor. When an order
becomes Completed, the current date is stored automatically if no delivery date 
exists. Administrators can correct this date manually.

When the customer selects Withdrawal, the configured form page opens with the eligible
order preselected.

After submission:

 * A withdrawal request is stored in WordPress.
 * The customer and administrator receive email notifications.
 * An order note is created.
 * The WooCommerce order status changes to Withdrawal requested.
 * Duplicate requests for the same order are prevented.

#### Standalone service withdrawals

WooCommerce is not required for service withdrawals.

To configure services:

 1. Open the plugin settings.
 2. Find Available services.
 3. Enter one service per line.
 4. Save the settings.

Visitors can select a service and enter its purchase or contract date. The plugin
validates the date against the configured withdrawal period.

Guest visitors must confirm their email address through a secure, time-limited verification
link before the request is created.

#### Customizing the form

The Shortcode form builder allows administrators to:

 * Reorder fields.
 * Edit field labels.
 * Edit placeholders.
 * Show or hide optional fields.
 * Mark configurable fields as required.
 * Customize the withdrawal statement and submit button.

Essential system fields remain enabled to ensure that requests can be validated 
securely.

#### Customizing the WooCommerce button

Use WooCommerce withdrawal button text to change the call-to-action displayed in
the customer account.

The default button text is:

    ```
    Withdrawal
    ```

#### Managing withdrawal requests

Administrators can find submitted requests under:

 * WooCommerce > Withdrawals when WooCommerce is active.
 * Settings > Withdrawals in standalone mode.

Each request includes the customer details, selected order or service, relevant 
dates, statement and optional comments.

Administrators can cancel a request by:

 1. Opening the request.
 2. Entering a cancellation reason.
 3. Selecting Cancel withdrawal and email customer.
 4. Updating the request.

The cancellation reason is stored, the customer receives an email notification and
a WooCommerce order is restored to its previous status when applicable.

#### Email configuration

The settings page provides editable email subjects and content for:

 * New customer orders.
 * Guest email verification.
 * Withdrawal confirmations.
 * Withdrawal cancellations.

Supported placeholders are displayed below each email field.

Email delivery depends on the WordPress mail configuration. For reliable production
delivery, configure WordPress with a trusted SMTP or transactional email provider.

#### Privacy

Withdrawal requests may contain names, email addresses, phone numbers, order or 
service information, dates and customer comments.

The plugin integrates with the WordPress personal data export and erasure tools.
It also adds suggested text to the WordPress privacy policy guide.

#### Important legal notice

The default withdrawal wording is provided as a general example only. It does not
constitute legal advice or guarantee compliance with any specific law. Site owners
should review their withdrawal policy and business requirements with a qualified
legal professional.

### Privacy

The plugin stores information submitted through the withdrawal form in the site’s
WordPress database. This may include contact details and order or service information.

Pending guest verification data is stored temporarily for up to 30 minutes. Confirmed
requests remain stored until an authorized administrator deletes them or uses the
WordPress personal data erasure tool.

The plugin adds suggested privacy-policy text and registers personal data exporter
and eraser callbacks under Tools > Export Personal Data and Tools > Erase Personal
Data.

## Screenshots

[[

[[

## Installation

 1. Upload the `chriskak-service-product-withdrawal-manager` folder to `/wp-content/
    plugins/`, or install the ZIP through Plugins > Add New > Upload Plugin.
 2. Activate Chriskak Service & Product Withdrawal Manager.
 3. Open WooCommerce > Withdrawal settings when WooCommerce is active, or Settings 
    > Product and service withdrawals otherwise.
 4. Add `[ckspwm_service_products_withdrawal_form]` to a page.
 5. Select that page in the Withdrawal form page setting, then configure the withdrawal
    period, notification address, services, email templates, and form fields.
 6. If WooCommerce is active, record the delivery date on eligible orders. Completing
    an order records the current date when no delivery date exists.|

## FAQ

### Is WooCommerce required?

No. The plugin supports standalone services. WooCommerce order integration is enabled
automatically when WooCommerce is active.

### Can guests submit a withdrawal request?

Guests can submit requests for configured services. They must confirm ownership 
of the submitted email address before the request is created.

### How is the deadline calculated?

The configured number of days is added to the WooCommerce delivery date or standalone
service contract date. The date and eligibility are validated again on the server.

### Where are requests stored?

Requests are stored as a private WordPress custom post type. They are visible to
authorized administrators under WooCommerce > Withdrawals, or Settings > Withdrawals
in standalone mode.

### Does the plugin send data to third parties?

No. The plugin does not send data to external APIs or analytics services. Site email
delivery depends on the mail configuration and plugins selected by the site owner.

### What personal data is stored?

The plugin may store the customer’s name, email address, phone number, account ID,
selected order or service, relevant dates, comments, and withdrawal status. It integrates
with the WordPress personal data export and erasure tools.

### What happens when the plugin is deleted?

Withdrawal records and settings are retained by default to avoid deleting business
or legal records unexpectedly. Site owners can erase customer data with the WordPress
privacy tools before deleting the plugin.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Chriskak Service & Product Withdrawal Manager” is open source software. The following
people have contributed to this plugin.

Contributors

 *   [ Christos Kakoulakis ](https://profiles.wordpress.org/chriskak/)

[Translate “Chriskak Service & Product Withdrawal Manager” into your language.](https://translate.wordpress.org/projects/wp-plugins/chriskak-service-product-withdrawal-manager)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/chriskak-service-product-withdrawal-manager/),
check out the [SVN repository](https://plugins.svn.wordpress.org/chriskak-service-product-withdrawal-manager/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/chriskak-service-product-withdrawal-manager/)
by [RSS](https://plugins.trac.wordpress.org/log/chriskak-service-product-withdrawal-manager/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 3.0.1

 * Added a Settings action link on the WordPress Plugins screen that opens the withdrawal
   settings page.

#### 3.0.0

 * Renamed the plugin to the distinctive Chriskak Service & Product Withdrawal Manager
   identity.
 * Changed the plugin slug and text domain to `chriskak-service-product-withdrawal-
   manager`.
 * Replaced all declarations, storage keys, hooks, assets, and shortcode identifiers
   with the unique `ckspwm` prefix.
 * Changed the shortcode to `[ckspwm_service_products_withdrawal_form]`.
 * Removed the external Author URI to clarify personal ownership by WordPress.org
   user `chriskak`.

#### 2.5.1

 * Prevented duplicate withdrawal buttons when a theme already renders WooCommerce
   order actions on the order-details page.
 * Retained the plugin’s order-details button as a fallback for themes that do not
   render those actions.

#### 2.5.0

 * Added a sanitized setting for the WooCommerce withdrawal button CTA.
 * Set the default My Account and order-details button text to Withdrawal.
 * Completed a security and translation-readiness review.
 * Hardened the custom WooCommerce order status visibility.

#### 2.4.0

 * Added the WooCommerce Withdrawal requested order status.
 * Orders automatically enter Withdrawal requested when an order withdrawal is submitted.
 * Cancelling a withdrawal restores the order’s previous status.

#### 2.3.0

 * Renamed the plugin, files, identifiers, shortcode, and text domain to Chriskak
   Service & Product Withdrawal Manager.
 * Added withdrawal buttons beside eligible WooCommerce orders in My Account and
   order details.
 * Added a setting for the page containing the withdrawal form shortcode.
 * Added secure order preselection when customers follow a WooCommerce account button.
 * Fixed REST and block-editor shortcode rendering and added scoped editor preview
   styles.

#### 2.2.0

 * Added email confirmation for guest service withdrawals.
 * Added WordPress personal data export, erasure, and privacy-policy integration.
 * Improved output escaping and eligible-order query performance.
 * Added complete WordPress.org plugin metadata and release documentation.

#### 2.1.0

 * Added withdrawal cancellation with an administrator-provided reason.
 * Added configurable cancellation emails.

#### 2.0.0

 * Made WooCommerce optional.
 * Added standalone services and guest submissions.
 * Added the sortable shortcode form builder.

#### 1.1.0

 * Added configurable customer order emails.
 * Changed all source strings to English and added translation support.

#### 1.0.0

 * Initial release.

## Meta

 *  Version **3.0.1**
 *  Last updated **6 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.5 or higher **
 *  Tested up to **7.0.2**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [cancellation](https://wordpress.org/plugins/tags/cancellation/)[form builder](https://wordpress.org/plugins/tags/form-builder/)
   [services](https://wordpress.org/plugins/tags/services/)[withdrawal](https://wordpress.org/plugins/tags/withdrawal/)
   [woocommerce](https://wordpress.org/plugins/tags/woocommerce/)
 *  [Advanced View](https://wordpress.org/plugins/chriskak-service-product-withdrawal-manager/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/chriskak-service-product-withdrawal-manager/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/chriskak-service-product-withdrawal-manager/reviews/)

## Contributors

 *   [ Christos Kakoulakis ](https://profiles.wordpress.org/chriskak/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/chriskak-service-product-withdrawal-manager/)