The PIWA plugin by Zeek is a simple and effective way to incorporate Amazon Pay into your website.
The plugin includes:
– Seamless Integration with the WordPress block editor.
– Enhanced Security by leveraging Amazon’s proven payment processing infrastructure.
– One-Click Checkout for customers who want a fast and simple payment experience.
Please ensure that your WordPress installation meets the required PHP version (5.6 or higher) and WordPress version (5.6 or higher). Visit our GitHub repository for further details, documentation, and support.
Creating Invoices
To create invoices, add either the Adjustable Price or Fixed Price block to a page or post:
Once the block is added, you can either email a link to that page to a customer or include a link in an invoice sent from your accounting software of choice, such as QuickBooks, Xero, Zoho, FreshBooks, or Harvest.
The customer will need to have or create an Amazon account to make the payment. Once the payment is made, it will be processed by Amazon and the funds will be transferred to your linked bank account.
For more information on how to set up and manage your Amazon Pay account, please refer to the Amazon Pay Help Center.
Receiving Payments
To receive payments, connect the plugin to your Amazon Pay account using one of the methods the under WP Admin > Pay Invoices With Amazon > Settings:
Once payments are processed, individual payments will be authorized by Amazon within 24 hours. After that period, click the linked “Reference ID” for the payment to go to Seller Central. Clicking “Collect Payment” in Seller Central will transfer the authorized funds.
Further information can be found at Finding your Amazon Pay keys and IDs and in the GitHub repository.
Using as a Shortcode
While the blocks provide a visual preview if using the WordPress block editor, a shortcode is also available for use in the block editor, classic editor, or various layout plugins. The below examples can be copy-and-pasted for testing or custom configuration:
Payment form where customer sets the amount:
[piwa]
Payment button where the amount is $100.50:
[piwa 100.50]
Payment button where the amount is $100.50 and the title is Business Consulting:
[piwa 100.50 "Business Consulting"]
Payment button where the customer sets the amount and inputting an invoice reference number is required:
[piwa input-invoice]
Long-form to display a payment button set to $100.50 for Business Consulting:
[piwa amount="100.50" title="Business Consulting"]
Developer Notes
piwa() can be called with an array of arguments in plugins, mu-plugins, templates, or a theme’s functions.php.
The below example adds payment buttons of various types at the end of Post content if various Categories are assigned.
The existance of Plugin Name: makes it possible to place it in wp-content/plugins/ or a folder within wp-content/plugins to activate or deactivate within WP Admin > Plugins . If placing within a theme’s functions.php or another file that already opens with <?php , the first line <?php should be removed to avoid errors.
<?php
/**
* Plugin Name: Pay Based on Category
* Description: Display a message with payment buttons on Posts depending on assigned Category. If all the categories are assigned, all the buttons and messages will be added.
* Version: 1.0
*
* @see https://developer.wordpress.org/reference/hooks/the_content/
* @see https://developer.wordpress.org/reference/functions/is_singular/
* @see https://developer.wordpress.org/reference/functions/has_category/
* @see https://www.php.net/manual/en/function.function-exists.php
*/
add_filter(
'the_content',
function( $content ) {
// If the PIWA plugin is not active or this is not a singular template of the "post" post type, do not modify the content.
if (
! function_exists( 'piwa' )
|| ! is_singular( [ 'post' ] )
) {
return $content;
}
// If the post is in category Uncategorized, append a pay button where the user specifies the amount.
if ( has_category( 'Uncategorized' ) ) {
$content .= '<p>Thanks for reading!<br/>If you feel inclined to contribute, please use the form below.</p>' . piwa();
}
// If the post is in category Pay it Forward, append a pay button for $7.00 labeled "Pay it Forward".
if ( has_category( 'Pay it Forward' ) ) {
$content .= '<p>Thanks for reading!<br/>If you enjoyed this post, please pay it forward with a small donation:</p>' . piwa([
'amount' => 7.00,
'title' => 'Pay it Forward',
]);
}
// If the post is in category Invoice, append a pay button where the customer inputs an Invoice Number and amount.
if ( has_category( 'Invoice' ) ) {
$content .= '<p>Thank you for your business!<br/>To make a payment, please input an amount and the associated invoice number:</p>' . piwa([
'show_customer_invoice_input' => true,
]);
}
return $content;
},
10 // Default priority is 10. The latest possible priority is PHP_INT_MAX. Attaching to a priority lower than 10 may cause other filters, such as wpautop, to add paragraph tags incorrectly.
);
Plugin Settings
Settings can be reset with:
wp option delete piwa
Settings can also be hard-coded with the follow script, preferably placed in wp-content/mu-plugins/:
<?php
/**
* Where to find keys & IDs:
* @see https://pay.amazon.com/help/202022560
*/
foreach(
[
'sandbox_mode' => 1,
'merchant_id' => '',
'client_id_store_id' => '',
'public_key_id' => '',
] as $key => $value
) {
putenv( sprintf( 'piwa_%s=%s', $key, $value ) );
}
Third-Party Services
Pay Invoices with Amazon integrates with Amazon Payments to process invoice payments made through the plugin.
Third-Party Service Links and Policies
By using the plugin, you acknowledge and consent to the use of Amazon Payments for payment processing. We ensure that all data transmissions are secure and in compliance with legal standards.