=== AhaPay Buy Now Pay Later ===
Contributors:      ahapay.my, ahapay
Tested up to:      6.9
Stable tag:        1.0.3
License:           GPLv2 or later
License URI:       https://www.gnu.org/licenses/gpl-2.0.html
Tags:              BNPL, Buy Now Pay Later, Payment Gateway, WooCommerce, AhaPay


# AhaPay Buy Now Pay Later

AhaPay is a Buy Now Pay Later (BNPL) payment solution that enables customers to split their purchases into installments with 0% interest for 4-payment plans.

## Description

AhaPay integrates with WooCommerce to provide flexible payment options for your customers. The plugin allows shoppers to split their payments into 4 or 7 installments automatically, with no hidden fees and 0% interest on 4-payment plans.

## Requirements

- WordPress 5.4 or higher
- WooCommerce 4.8 or higher
- PHP 7.4 or higher
- OpenSSL PHP extension
- SSL certificate installed on your domain (for secure transactions)

## Installation

1. Download the plugin
2. Go to WordPress admin > Plugins > Add New
3. Click Upload Plugin and choose the downloaded file
4. Click Install Now and then Activate
5. Go to WooCommerce > Settings > Payments
6. Find "AhaPay Buy Now Pay Later" and click Manage
7. Configure your API credentials and settings

## Configuration

### Basic Settings

1. Enable/Disable - Turn the payment method on or off
2. Title - The payment method title shown to customers
3. Description - The payment method description shown to customers
4. Environment - Choose between Sandbox (testing) and Production
5. API Key - Enter your AhaPay API key
6. Minimum Amount - Set the minimum order amount for AhaPay availability

### Display Settings

- Product Label - Enable/disable BNPL information on product pages
- Product Label Text - Customize the BNPL message
- Product Label Color - Set the background color for labels
- Product Label Text Color - Set the text color for labels

## Features

- Seamless integration with WooCommerce checkout
- Automatic order status updates
- Real-time payment verification
- Custom product page badges and banners
- Responsive payment modal
- Support for both desktop and mobile devices
- Order status checking in admin panel
- Sandbox environment for testing
- Detailed payment status tracking
- Support for refunds

## Payment Flow

1. Customer selects AhaPay at checkout
2. Order is created and customer is redirected to AhaPay
3. Customer completes payment setup with AhaPay
4. Order status is automatically updated
5. Customer is redirected back to your store

## Order Statuses

- PAYMENT_SUCCESSFUL - Payment completed
- CANCELLED - Payment cancelled by customer
- UNAVAILABLE - Payment failed
- PAYMENT_IN_PROGRESS - Payment pending
- REFUNDED - Payment refunded

## Support

For support or questions, please contact AhaPay support team or visit your AhaPay merchant dashboard.

## External services

This plugin connects to the AhaPay API to process Buy Now Pay Later payments and handle order status updates.

It sends the following data when processing payments or checking status:
- Order ID and transaction details
- API key for authentication
- Refund requests with order information

Data is sent securely via HTTPS to AhaPay's servers only when necessary for payment processing or status verification.

This service is provided by AhaPay: [Terms of Service](https://merchant-help.ahapay.my/hc/en-my), [Privacy Policy](https://ahapay.my/privacy-policy).

## Development

This plugin uses webpack to build JavaScript and CSS assets.

### Build Process

1. Install dependencies: `npm install`
2. Build assets: `npm run build` (or `npm run dev` for development)

Source files are located in the `blocks/` directory. Built files are in `assets/blocks/`.

The source code is publicly available in this repository for review and modification.



### 1.0.0
- Initial release
- Basic payment integration
- Order status management
- Product page integration
- Admin interface
- Sandbox/Production environments

## License

This plugin is licensed under the terms of use provided by AhaPay.

## Customize Payment Fields CSS

You can add custom CSS that will be applied specifically to AhaPay's payment fields on the checkout page from the plugin settings in the WordPress admin.

How to update the CSS

1. In WordPress admin go to: WooCommerce → Settings → Payments.
2. Find "AhaPay Buy Now Pay Later" in the list and click Manage (or click the Settings link).
3. Scroll down to the setting named "Additional CSS for Payment Fields".
4. Paste your CSS into the textarea and click Save changes.

How the plugin applies your CSS

- The plugin stores the textarea content and adds it as inline CSS attached to the plugin stylesheet handle `ahapaybuynowpaylater-block-style`.
- The payment fields output by the gateway are wrapped in a container with the class `.ahapay-payment-fields`, so we recommend scoping your rules under that selector to avoid affecting other parts of your site.
- The plugin will strip surrounding `<style>` tags if you paste them by accident, and it sanitizes the textarea input on save. If you need to override existing rules, use specificity or `!important` as needed.

Quick verification example

Paste the following CSS into the "Additional CSS for Payment Fields" textarea and save. Then open your checkout page (or the block checkout) and you should see a green dashed border, a small badge that reads "ADDITIONAL CSS APPLIED", and visible styling changes for the title, subtitle and progress bar. This is a visual test to confirm the inline CSS is applied.

```css
/* Visual test for Additional CSS for Payment Fields */
.ahapay-payment-fields {
  border: 3px dashed #27ae60 !important;
  background: rgba(39, 174, 96, 0.04) !important;
  padding: 12px !important;
  position: relative !important;
  border-radius: 6px !important;
}

/* Badge so you can clearly see the CSS is applied */
.ahapay-payment-fields::before {
  content: "ADDITIONAL CSS APPLIED";
  position: absolute;
  top: -12px;
  right: 8px;
  background: #27ae60;
  color: #ffffff;
  font-weight: 700;
  font-size: 11px;
  padding: 3px 8px;
  border-radius: 3px;
  box-shadow: 0 1px 2px rgba(0,0,0,0.15);
  z-index: 9999;
}

.ahapay-payment-fields .ahapay-title {
  color: #e91e63 !important;
  font-size: 18px !important;
  font-weight: 700 !important;
}

.ahapay-payment-fields .ahapay-subtitle {
  color: #555 !important;
  font-style: italic !important;
}

.ahapay-payment-fields .ahapay-progress-bar {
  background: #eee !important;
  height: 12px !important;
  border-radius: 12px !important;
  margin: 10px 0 !important;
}

.ahapay-payment-fields .ahapay-progress {
  width: 75% !important;
  height: 100% !important;
  background: linear-gradient(90deg,#e91e63,#ff8a80) !important;
  border-radius: 12px !important;
}

.ahapay-payment-fields .ahapay-timeline div {
  display: inline-block !important;
  background: #fff8e1 !important;
  padding: 6px 8px !important;
  margin-right: 6px !important;
  border-radius: 4px !important;
  font-weight: 600 !important;
}
```

Small examples

- Change the title color only:

```css
.ahapay-payment-fields .ahapay-title { color: #0066cc !important; }
```

- Hide the timeline if it conflicts with your theme:

```css
.ahapay-payment-fields .ahapay-timeline { display: none !important; }
```

Troubleshooting

- If you don't see the changes after saving the CSS, try these steps:
  - Ensure the AhaPay payment method is enabled (WooCommerce → Settings → Payments → AhaPay).
  - Clear any caching on your site (plugin cache, server cache, CDN) and your browser cache.
  - Confirm you're viewing a checkout page that loads the plugin styles (block checkout or classic checkout). If you use a custom checkout template, ensure the `ahapay-payment-fields` wrapper is present in the markup.
  - Use `!important` or increase specificity if your theme's CSS is overriding the rules.

Security and best practices

- The textarea is intended for admin use only. Avoid pasting untrusted CSS/JS — the plugin strips `<style>` tags but does not execute arbitrary JS.
- Keep rules scoped (start with `.ahapay-payment-fields`) to avoid unintentionally affecting other areas of your site.
