Linux 软件免费装
Banner图

EffortLess Easy Online Payment

开发者 domclic
更新时间 2026年10月12日 21:31
捐献地址: 去捐款
PHP版本: 8.0 及以上
WordPress版本: 7.1
版权: GPLv2 or later

标签

ecommerce checkout paypal payments apple pay

下载

1.1.7 1.1.8 1.1.9

详情介绍:

EffortLess Easy Online Payment lets you sell physical goods, digital goods, or services directly from WordPress, without WooCommerce. Add a product, place its shortcode on any page or post, and it renders a self contained checkout form. Checkout supports four gateways: PayPal, Stripe, LINE Pay and ECPay. A site can enable more than one at once, and the customer picks which one to pay with. See the Frequently Asked Questions section below for full setup details on every gateway and setting. For physical products, an allowlist of delivery countries, each with its own fee, determines shipping cost and can collect a delivery address at checkout. ELEOP is Multisite aware: products, orders and settings stay isolated per site, and a Super Admin can optionally share payment gateway credentials from Network Admin.

安装:

  1. Upload the plugin ZIP in WordPress: Plugins > Add New > Upload Plugin.
  2. Activate it normally, or Network Activate it from Network Admin.
  3. On a normal site, open EffortLess Easy Online Payment > Settings.
  4. For a shared multisite merchant, a Super Admin can first open Network Admin > Settings > EffortLess Easy Online Payment.
  5. Under Enabled Gateways, check one or more of PayPal, Stripe, LINE Pay and ECPay — the customer will see a button for each one you enable and configure. Active Gateway is now only used as the default when Enabled Gateways is saved empty, and to drive the Sandbox/Live mode notice on this screen.
  6. Keep each enabled gateway's Mode set to Sandbox / Test while testing.
  7. For PayPal: enter the Sandbox Client ID and Sandbox Secret under PayPal API. For Stripe: enter the Test Publishable Key and Test Secret Key under Stripe API. For LINE Pay: enter the Channel ID and Channel Secret under LINE Pay API. For ECPay: enter the Merchant ID, Hash Key and Hash IV under ECPay API (ECPay issues separate test credentials for its Stage sandbox). Only enter credentials for the gateways you enabled.
  8. Open EffortLess Easy Online Payment > Products > Add Product.
  9. Set title, type, currency, price and maximum quantity. For a physical product, delivery countries and fees are configured once for the whole site under Settings > Shipping, not per product.
  10. Publish.
  11. Copy the shortcode shown in the Products list, for example: [eleop_checkout id="123"]
  12. Paste it into a page.

常见问题:

How does Multisite work?

ELEOP can be activated on an individual site or Network Activated. Each site always keeps its own: Products, Orders, Shop / brand name, Notification email, Success message, and optional local PayPal credentials. A Super Admin can optionally configure shared payment defaults at Network Admin > Settings > EffortLess Easy Online Payment. The Network Admin can set: Sandbox / Live mode, Sandbox Client ID and Secret, Live Client ID and Secret, Apple Pay enabled/disabled, and Apple domain-association content. Each subsite can then choose "Inherit PayPal / Apple Pay settings from Network Admin". When inheritance is enabled, only the payment-provider configuration is inherited. Products and orders never become network-global. For subdomain multisite installations, each exact storefront domain/subdomain still needs to be registered with PayPal for Apple Pay eligibility. ELEOP serves the effective association content from each site's own /.well-known/apple-developer-merchantid-domain-association.

What does each setting do? (Settings > Multisite, Enabled Gateways, Active Gateway, Checkout, Product editor, Apple Pay, Shipping, Network Admin)

Multisite (shown only when the site is part of a Multisite network)

  • Inherit PayPal / Apple Pay settings from Network Admin — when checked and a Super Admin has enabled shared network defaults, this site's PayPal Mode, Client ID/Secret, Apple Pay toggle and domain-association content are taken from Network Admin instead of the fields below. Products, orders, brand name, notification email and checkout text always stay local to this site regardless of this setting. Enabled Gateways
  • Enabled Gateways — checkboxes for PayPal, Stripe, LINE Pay and ECPay. Checkout shows a button for every enabled gateway that also has its credentials configured and supports the product's currency (LINE Pay: USD, TWD or THB only; ECPay: TWD only; PayPal and Stripe: any supported currency). Buttons are shown in a fixed order: PayPal, Stripe, LINE Pay, ECPay. Active Gateway
  • Payment Gateway — PayPal, Stripe, LINE Pay or ECPay. No longer the only gateway offered at checkout, and no longer what decides checkout's fallback gateway or which gateway shows the wallet-buttons option — those now follow a fixed priority order. Active Gateway still has two narrower roles: it is the default Enabled Gateways is set to if that field is ever saved empty, and it drives the Sandbox/Live mode notice shown at the top of this settings screen. Checkout
  • Brand / shop name — shown in the PayPal checkout flow and in Apple Pay's payment sheet.
  • Wallet buttons — enables Apple Pay through PayPal when the merchant account, browser, device and verified domain are eligible; Apple Pay and Google Pay through Stripe (via the Express Checkout Element) when this site's domain has been registered in the Stripe Dashboard's Payment method domains page; or Apple Pay through ECPay (no separate domain registration needed). PayPal, Stripe and ECPay can each show a wallet button; LINE Pay has no wallet integration. When more than one wallet-capable gateway is enabled and eligible for the product's currency, only one gateway's wallet button is shown at checkout, chosen by a fixed priority order: PayPal, then Stripe, then ECPay.
  • New order email — where the "payment received" notification is sent.
  • Success message — shown to the customer after a completed payment. Product editor
  • SKU / Reference — an optional product code or reference identifier; defaults to "ELEOP-{product-id}". Text field, no length limit.
  • Product type — Physical goods, Digital goods, or Service; defaults to Physical goods. Determines whether shipping validation and fees apply at checkout.
  • Currency — TWD, USD, EUR, GBP, JPY, AUD, CAD, HKD, or SGD; defaults to USD. Only one currency per page is supported.
  • Unit price — the customer facing price per unit, required; decimal format (e.g., 39.00).
  • Maximum quantity — how many units the customer may order in a single checkout, constrained 1 to 100; defaults to 10.
  • Checkout heading — the label shown above the quantity selector on the checkout form; defaults to "Buy now". Text field. Apple Pay domain verification
  • Association file — paste the exact contents of the domain-association file from the PayPal Developer Dashboard. ELEOP serves it automatically at /.well-known/apple-developer-merchantid-domain-association, resolved relative to your site's home address; on a subdirectory install, the file is available under that subdirectory path. Shipping
  • Shipping — enables shipping and delivery-country validation for physical products. Off = physical products behave like digital/service products (no shipping fields, no fee).
  • Delivery address — collects a full name/phone/postcode/city/district/address at checkout. Off = only the delivery country is collected (no address fields).
  • Delivery countries and fees — one country per line: CODE:FEE (e.g. TW:60.00), using ISO 3166-1 two-letter country codes. Add :0 to a line to keep a country listed but temporarily disabled (e.g. FR:15.00:0). Defaults to TW:60.00 only. Network Admin (Super Admin only, Multisite): Network Admin > Settings > EffortLess Easy Online Payment
  • Allow subsites to inherit these network settings — master toggle; if off, the "Inherit" checkbox on subsites has no effect even when checked.
  • Mode, Sandbox/Live Client ID and Secret — the shared PayPal credentials subsites can inherit.
  • Apple Pay, Apple domain-association content — the shared Apple Pay configuration subsites can inherit.

How do I configure each gateway's API credentials?

PayPal API

  • Mode — Sandbox / Test or Live. Sandbox simulates payments; Live charges real money.
  • Sandbox Client ID / Sandbox Secret — from the PayPal Developer Dashboard, Sandbox app.
  • Live Client ID / Live Secret — from the PayPal Developer Dashboard, Live app. Only required if PayPal is enabled and Mode is Live. Stripe API
  • Mode — Test or Live.
  • Test Publishable Key / Test Secret Key — from the Stripe Dashboard, Test mode.
  • Live Publishable Key / Live Secret Key — from the Stripe Dashboard, Live mode. Only required if Stripe is enabled and Mode is Live.
  • Test Webhook Signing Secret / Live Webhook Signing Secret — optional, one per Mode. Each comes from its own webhook endpoint you create in the Stripe Dashboard (Test mode and Live mode each have a separate endpoint and secret) pointed at the URL shown on this settings screen, listening for payment_intent.succeeded and payment_intent.payment_failed. Closes the gap where a payment succeeds but the buyer's browser never returns to confirm it. Only the field matching the currently selected Mode is used — Stripe requires the live endpoint to use HTTPS. LINE Pay API
  • Mode — Sandbox / Test or Live.
  • Channel ID / Channel Secret — from the LINE Pay Merchant Center, matching the selected Mode. Only required if LINE Pay is enabled.
  • LINE Pay only supports checkout in USD, TWD or THB. A checkout attempt in any other product currency is rejected before contacting LINE Pay. ECPay API
  • Mode — Sandbox / Test or Live.
  • Merchant ID, Hash Key, Hash IV — from the ECPay Merchant Backend, matching the selected Mode. Only required if ECPay is enabled.
  • ECPay only supports checkout in TWD, as whole number amounts. A checkout attempt in any other product currency, or with a fractional total, is rejected before contacting ECPay.

How do I test Apple Pay in the PayPal sandbox?

PayPal requires Apple Pay to be enabled for the sandbox app and requires each checkout domain to be registered.

  1. In PayPal Developer Dashboard, use Sandbox mode.
  2. Enable Apple Pay for the app/account.
  3. Download PayPal's sandbox Apple domain-association file.
  4. Paste that file into the ELEOP site settings, or into Network Settings if sites inherit it.
  5. Verify that https://YOUR-DOMAIN/.well-known/apple-developer-merchantid-domain-association returns the file.
  6. Register the exact domain/subdomain in PayPal.
  7. Use an Apple sandbox tester and test card on an Apple Pay capable device/browser.
Sandbox transactions are simulated and do not touch live PayPal accounts.

What should I check before switching to Live mode?

Do not switch ELEOP to Live until you have: created Live PayPal API credentials, completed any PayPal onboarding required for Apple Pay, verified every production storefront domain that will offer Apple Pay through PayPal, registered every production storefront domain in the Stripe Dashboard if wallet buttons are enabled and Stripe is enabled, and performed your own end to end checks.

What security measures does this plugin implement?

  • PayPal Client Secret stays on the server and is never sent to the browser.
  • In Multisite, shared secrets are stored with update_site_option() and are not rendered in subsite settings screens.
  • Product price, currency, shipping, and quantity limits are read from WordPress on the server.
  • The browser sends only product identity and requested quantity.
  • Captured amount/currency are checked against the locally stored expected amount.
  • Checkout endpoints are rate limited per IP.
  • Product requests use a server generated HMAC token.
  • Products and orders use WordPress per-site tables, so they remain isolated naturally in Multisite.

What are the known limitations?

  • More than one gateway can be enabled at once — PayPal, Stripe, LINE Pay and ECPay can all be offered together on the same checkout, and the customer picks which one to pay with. A gateway only shows a button when it is enabled, has its credentials configured, and supports the product's currency (for example, ECPay only ever shows for TWD products, and LINE Pay only for USD, TWD or THB products).
  • When wallet buttons are enabled and more than one wallet-capable gateway (PayPal, Stripe, ECPay) is enabled and eligible, only one gateway's wallet button is shown, in priority order PayPal, then Stripe, then ECPay. LINE Pay never shows a wallet button.
  • Stripe, LINE Pay and ECPay checkout's charged total includes the shipping fee for physical products, but none of these gateways yet collects or receives a delivery address (that address is still validated and stored locally by ELEOP) — a future update will add this. PayPal checkout does pass the validated address through to PayPal.
  • A LINE Pay order only completes when the customer's browser returns to your site after authorizing on LINE Pay. If the customer closes the tab before returning, the order stays pending indefinitely on your site (LINE Pay itself eventually expires the unfinished authorization) — there is currently no automatic reconciliation for this case.
  • ECPay's payment confirmation reaches your site via its own server-to-server notification (which ECPay itself retries for about a day if your site is unreachable), not via the customer's browser returning — so a completed ECPay payment is always recorded even if the customer closes the tab immediately after paying. The page the customer's browser lands on after paying only ever displays the order's status at that moment; if it still shows "processing", refreshing the page later will show the final result once ECPay's notification has arrived.
  • ECPay checkout currently offers credit/debit card and, when wallet buttons are enabled and the browser is eligible, Apple Pay (ATM, convenience-store and barcode payment are not offered).
  • Shipping defaults to Taiwan only (TW:60.00) until an administrator edits the delivery countries and fees list in Settings > Shipping.
  • Multisite network-level inheritance covers only PayPal credentials, and Apple Pay/wallet-button settings when PayPal is the site's active gateway — Stripe credentials, wallet-button settings on any non-PayPal site, and shipping rules are always configured per site, never inherited from Network Admin. The Stripe webhook (when configured) is also per-site: each site with Stripe enabled needs its own webhook endpoint registered in the Stripe Dashboard.
  • The Stripe webhook is optional — Stripe checkout works through its existing client-side confirmation flow without it. Configuring it adds a second, server-to-server confirmation path that only matters for the case where a payment succeeds but the buyer's browser never returns to confirm it.
  • The Test and Live Webhook Signing Secret fields are independent and must each be filled in from that mode's own Stripe Dashboard endpoint. Only the secret matching the currently selected Mode is used.
  • Digital and service products never show shipping fields or a shipping fee, regardless of the Shipping settings.
  • A page should not contain ELEOP checkouts using different currencies at the same time, because the PayPal JavaScript SDK is initialized for a currency at page load. Use one currency per checkout page.
  • Apple Pay and Google Pay through Stripe require registering this site's domain in the Stripe Dashboard's Payment method domains page (Test mode and Live mode are registered separately) before the wallet buttons will appear. Until the domain is registered, Stripe checkout continues to work normally via the card fields.
  • Apple Pay through ECPay needs no separate domain registration — ECPay's checkout is entirely hosted on ECPay's own domain. The Apple Pay button through ECPay only appears in Safari on an Apple Pay capable device. Apple Pay may need to be separately enabled on your ECPay merchant account before it will work.

I configured a gateway but checkout doesn't work

Check the following, in order:

  1. The gateway you're testing is checked under Settings > Enabled Gateways, has its Mode set correctly, and has the matching credentials filled in.
  2. The gateway supports the product's currency — LINE Pay only shows for USD, TWD or THB products, and ECPay only for TWD products.
  3. The product is Published, not a draft.
  4. For a physical product: Settings > Shipping has Shipping enabled, and the destination country being tested has an enabled rule in the Delivery countries and fees list (the default only allows TW).
  5. Only one currency per page: a page must not mix ELEOP checkouts for different currencies, since the checkout script is initialized once per page.

I set up the Stripe webhook but orders still aren't completing

Check the following:

  1. The webhook secret field matching the currently selected Mode is filled in.
  2. The endpoint URL shown on the Settings screen is publicly reachable from the internet.
  3. For a Live-mode endpoint, the URL must use HTTPS.
  4. Only payment_intent.succeeded and payment_intent.payment_failed events are acted on, and only for an order whose gateway is Stripe.
  5. With WP_DEBUG enabled, a failed or ignored webhook call writes a diagnostic line to the PHP error log naming the reason.

更新日志:

1.1.9 1.1.8 1.1.7 1.1.6 1.1.5 1.1.4 1.1.3 1.1.2 1.1.1 1.1.0 1.0.0 0.2.25 0.2.24 0.2.23 0.2.22 0.2.21 0.2.20 0.2.19 0.2.18 0.2.17 0.2.16 0.2.15 0.2.14 0.2.13 0.2.12 0.2.11 0.2.10 0.2.9 0.2.8 0.2.7 0.2.6 0.2.5 0.2.4 0.2.3 0.2.2 0.2.1 0.2.0 0.1.0