Credit Support System Pro
Register below to try the entire support system before purchase, including admin features and user ticket submission processes. *Use your real email to receive and review notifications to approve or decline estimates. Change the cost of everything from 0 – โ, ย submit tickets, create estimates, approve or decline estimates, and more.ย
PLEASE NOTE! – For security reasons, this demo will not allow a user to see any other user’s info or tickets in the backend. So you cannot create multiple users when testing. You’ll text the back and front end, one after the other during the same login. After you log out, your user info is automatically deleted.
Learn More
๐ง Tired of chasing clients for payment after the work is already done?
๐ ๐ฒ๐ฒ๐ ๐๐ฟ๐ฒ๐ฑ๐ถ๐ ๐ฆ๐๐ฝ๐ฝ๐ผ๐ฟ๐ ๐ฆ๐๐๐๐ฒ๐บ ๐ฃ๐ฟ๐ผ โ a WordPress plugin that puts a professional, credit-based support portal directly on your website. Instead of sending invoices afterward, your clients purchase credits upfront, which are spent as work is approved.
๐๐ฒ๐ฟ๐ฒ’๐ ๐ต๐ผ๐ ๐ถ๐ ๐๐ฟ๐ฎ๐ป๐๐ณ๐ผ๐ฟ๐บ๐ ๐๐ผ๐๐ฟ ๐๐ผ๐ฟ๐ธ๐ณ๐น๐ผ๐:
๐ณ ๐๐ฟ๐ฒ๐ฑ๐ถ๐๐ ๐ณ๐ถ๐ฟ๐๐, ๐๐ผ๐ฟ๐ธ ๐๐ฒ๐ฐ๐ผ๐ป๐ฑ
Clients buy a credit package before any work begins. No more uncomfortable “can you pay your invoice?” conversations. The financial side is handled before you’ve written a single line of code.
๐ ๐ฆ๐๐ฟ๐๐ฐ๐๐๐ฟ๐ฒ๐ฑ ๐๐ถ๐ฐ๐ธ๐ฒ๐ ๐ณ๐น๐ผ๐
Every request comes in as a support ticket โ organized, tracked, and timestamped. No more digging through email threads to remember what a client asked for six weeks ago.
๐ ๐๐๐๐ถ๐บ๐ฎ๐๐ฒ ๐ฏ๐ฒ๐ณ๐ผ๐ฟ๐ฒ ๐๐ผ๐ ๐ฐ๐ผ๐บ๐บ๐ถ๐
You review the ticket, set an estimated start date, completion date, and credit cost. The client approves before work begins. Scope creep becomes a thing of the past because the client literally has to click “Accept” before anything moves forward.
โก ๐๐๐๐ผ๐บ๐ฎ๐๐ฒ๐ฑ ๐ป๐ผ๐๐ถ๐ณ๐ถ๐ฐ๐ฎ๐๐ถ๐ผ๐ป๐ ๐ฎ๐ ๐ฒ๐๐ฒ๐ฟ๐ ๐๐๐ฒ๐ฝ
New ticket, estimate ready, estimate accepted, work complete โ your clients are notified automatically at every stage. You spend less time sending status updates and more time doing the actual work.
๐ ๐ง๐ฟ๐ฎ๐ป๐๐ฝ๐ฎ๐ฟ๐ฒ๐ป๐ ๐ณ๐ผ๐ฟ ๐ฐ๐น๐ถ๐ฒ๐ป๐๐, ๐ฝ๐ผ๐๐ฒ๐ฟ๐ณ๐๐น ๐ณ๐ผ๐ฟ ๐๐ผ๐
Clients log in to their own support portal, see their credit balance, track their tickets, and manage everything themselves. Less back-and-forth. Fewer “what’s the status?” messages.
๐ ๐๐๐ฒ๐ฟ๐๐๐ต๐ถ๐ป๐ด ๐ถ๐ป ๐ผ๐ป๐ฒ ๐ฝ๐น๐ฎ๐ฐ๐ฒ
File attachments, ticket history, replies, transaction records โ all stored and organized. Professional from day one.
Whether you’re a solo developer, a designer, or a web agency โ if you offer ongoing support or maintenance services, this plugin will change how you work.
Changelog
Release History
Credit Support System Pro
A complete record of every update, fix, and improvement.
- Redesigned the admin Dashboard โ the main Support System overview now uses a modern, at-a-glance layout with summary cards, recent activity, and a revenue chart, replacing the previous three plain stat boxes.
- Summary cards across the top of the Dashboard: Total Revenue, Open Tickets, Pending Estimates, and Completed Tickets.
- Recent Tickets panel showing the latest tickets across all customers, each with a colour-coded status badge and a link through to the full ticket.
- Monthly Revenue chart visualising income from credit purchases over the last six months.
- Recent Transactions feed listing the most recent credit purchases and deductions, with the customer name and date.
- Settings page: Stripe and PayPal dashboard links now render as clickable hyperlinks instead of displaying raw HTML. Changed from
esc_html_e()(which escapes tags) towp_kses()with an explicit anchor allowlist. - Test site: Registered testers were receiving "Unauthorized" errors when attempting to create estimates, update ticket status, or perform any admin AJAX action. Restored the
user_has_capfilter in the Tester Utilities plugin to correctly grantmanage_css_supportto all logged-in non-admin users on the demo site.
- Configurable ticket submission cost โ Admin can now set the number of credits deducted when a customer submits a ticket (default: 1). Found in Settings โ Credits to Submit a Ticket.
- Setting to 0 allows completely free ticket submission โ ideal when credits are reserved solely for estimate acceptance.
- The "Note: Submitting a ticket costs X credit(s)" notice on the support page updates dynamically and disappears entirely when the cost is set to 0.
- Submit Ticket button label updates to reflect the current cost, or shows plain "Submit Ticket" when cost is 0.
- Critical PHP parse error on line 320 of
class-css-customer.php. Curly-braceif () { }syntax inserted inside PHP template blocks that useif:...endif;alternative syntax caused a fatal error on every page load. All new conditional blocks rewritten using consistent alternative syntax.
- Gateway key protection for non-admins โ Stripe and PayPal API key fields in Settings are displayed as masked, disabled inputs for non-administrator users. Keys cannot be modified without
manage_optionscapability. Save handler enforces this server-side.
- Support System admin menu now reliably appears for all logged-in users by registering menu pages with the
readcapability and hiding irrelevant items viaadmin_menuhook rather than relying on custom capability checks for visibility.
- Admin menu registration capability changed from
manage_css_supporttoreadto ensure the Support System menu always appears for logged-in users regardless of role configuration or capability caching. - Tester Utilities plugin simplified to use direct role array checks rather than capability checks, eliminating dependency on the Members plugin.
manage_css_supportcustom capability introduced to scope Support System admin access independently of WordPress's built-inmanage_options. Automatically added to the Administrator role on activation and on everyinitcall.- All
manage_optionschecks across admin, credits, and tickets classes replaced withmanage_css_support.
- Tester role users could not add credits, update tickets, or perform any admin AJAX action because
class-css-credits.php(3 handlers) andclass-css-tickets.php(8 checks) still referencedmanage_optionsafter the initial capability migration.
- Tester Utilities companion plugin introduced for demo/test site deployments. Provides automatic role assignment, starting credit allocation on registration, login redirect to Support System, admin menu restriction, frontend admin bar suppression, and per-user data isolation.
- Minimum credits per purchase enforcement โ configurable in Settings. Custom amount input is visually greyed out for amounts below minimum; payment buttons disabled; red warning shown. Server-side validation in both Stripe and PayPal handlers prevents bypass.
- Buy Credits modal custom amount input was invisible. Root cause:
wp_kses_post()wrapper was silently stripping all<input>elements from plugin-generated HTML. All affected calls replaced with directecho. csspro-btnbutton system introduced โ all plugin buttons use plugin-owned classes with!importantdeclarations, preventing theme stylesheet interference.- Buy Now buttons on preset credit packages now correctly centred. Responsive grid collapses to single-column below 640px.
- Configurable preset credit packages โ Admin can set the three quick-buy amounts shown in the Buy Credits popup (default: 10, 50, 100). Found in Settings โ Buy Credits Preset Packages.
- Minimum credits grey-out not functioning. Root cause: inline
styleattribute on the input overrode class-based CSS rules. Inline style removed; grey-out rule uses!important. register_settings()was applyingsanitize_text_fieldtocss_welcome_message, stripping all TinyMCE HTML on every save. Fixed to usewp_kses_post.
- Minimum credits per purchase setting in admin. Optional โ leave blank for no minimum. Visual grey-out on custom amount input for amounts below minimum.
csspro-btnplugin-owned button system. All buttons use plugin classes with!importantcoverage to prevent theme interference.- Responsive CSS for Buy Credits modal and package grid.
- Buy Credits modal custom amount input not rendering. Root cause:
wp_kses_post()stripping<input>elements from allrender_*()method output.
- TinyMCE Welcome Message content stripped of all HTML on every save.
register_setting()was hookingsanitize_text_fieldtosanitize_option_{name}, which fires inside everyupdate_option()call. Changed towp_kses_postfor welcome message and all email body fields.
- TinyMCE rich text editor for the Welcome Message field in Settings. Supports bold, italic, lists, and links. Content stored as HTML and rendered via
wpautop()for backwards compatibility. default_welcome_message()helper provides pre-formatted HTML default on new installs.
- Estimate Declined ticket status. Ticket shows red "Estimate Declined" badge in admin when customer declines, without relying on email notifications alone.
- Decline estimate button added to ticket detail modal on frontend alongside the Accept button.
- Email notifications on estimate decline (admin + customer) and on estimate acceptance (customer).
- Admin estimate credits preview was multiplying by hardcoded
10instead of the configured Credits Per Hour value. - Ticket status was set to
in_progressimmediately on estimate creation, preventing customers from ever seeing the Accept/Decline buttons. Fixed to set status toestimated.
- Version bump to force browser and LiteSpeed cache invalidation for updated scripts. Previous version bump was applied before the JS fix, so the old cached file was still being served.
- Welcome message now shown on support page after login. Default content persisted to database on first load.
- Login form on
/support/replaced with a redirect to WordPress's standardwp-login.php, fixing a double-login issue where auth cookies failed to persist to/wp-admin/. - Credits per hour default changed from
10to1with automatic migration for existing installs. - Plugin header
* Version:comment andCSS_VERSIONconstant now kept in sync. Previously the header was stuck at 1.0.3 while the constant was bumped, causing WordPress to display a stale version number.
- WordPress Plugin Check compliance:
esc_html_e(),gmdate(),wp_unslash(),register_setting()with sanitize callbacks, translators comments, ordered placeholders, andphpcs:ignoreannotations on direct database queries.
phpcs:ignorecomments appended to HTML template lines outside PHP blocks, causing them to render as visible text on the admin Tickets page.- Backslash-dollar (
\$) corruption inclass-css-credits.phpcaused by Python regex replacement. File rewritten from scratch.
- Estimate decline flow with email notifications to admin and customer.
- Welcome message with TinyMCE editor in Settings.
- Admin dashboard shortcode reference panel.
- Standalone shortcodes:
[user_credits_display],[support_ticket_form],[user_tickets]in addition to[css_customer_dashboard]. - Configurable ticket statuses (add, rename, remove) from Settings.
- Submit ticket button stuck in "Submittingโฆ" state. Removed double-AJAX in favour of a single direct call.
- Tickets not appearing immediately after submission.
- Admin attachment uploads failing silently.
- LiteSpeed Cache, WP Rocket, W3TC, and WP Super Cache compatibility.
- VIP account support โ users marked as VIP bypass all credit requirements.
- File attachment support on tickets and replies with configurable size limit and allowed file types.
- Terms of Service acceptance flow on estimate approval.
- Status change email notifications to both admin and customer.
- Three login forms appearing on
/support/page. render_shared_modals()method missing, causing ticket list to silently fail.
The first public release of Credit Support System Pro.
- Credit-based support ticketing system for WordPress.
- Customer-facing support page with credits widget, ticket submission form, and ticket list with view/reply modal.
- Full admin panel: ticket management, credit management, email template editor, and settings page.
- Stripe payment integration (test and live modes).
- PayPal payment integration (sandbox and live modes).
- Configurable credit price, currency, and credits-per-hour rate.
- Email notifications: new ticket, ticket received, estimate ready, estimate accepted, admin and customer replies.
- Shortcode:
[css_customer_dashboard]
Sign In to Access Support
Please log in to view your credits, submit tickets, and track your support requests.
Don't have an account? Register here
