[WordPress] 外掛分享: {eac}Doojigger Simple AWS Extension for WordPress

首頁 › 外掛目錄 › {eac}Doojigger Simple AWS Extension for WordPress
WordPress 外掛 {eac}Doojigger Simple AWS Extension for WordPress 的封面圖片
全新外掛
安裝啟用
—
尚無評分
34 天前
最後更新
—
問題解決
WordPress 5.8+ PHP 7.4+ v1.1.3 上架:2024-01-02

內容簡介

Doojigger Simple AWS Extension for WordPress 是一款簡化與 Amazon Web Services (AWS) 整合的外掛,透過 AWS SDK for PHP 提供簡便的存取方式,讓開發者能夠輕鬆地在 WordPress 環境中使用 AWS 的各項服務。

【主要功能】
• 提供 AWS SDK for PHP 的簡化存取介面
• 設定 AWS 區域與 IAM 帳號憑證
• 支援多種 AWS 服務的客戶端參數設定

外掛標籤

開發者團隊

⬇ 下載最新版 (v1.1.3) 或搜尋安裝

① 下載 ZIP → 後台「外掛 › 安裝外掛 › 上傳外掛」
② 後台搜尋「{eac}Doojigger Simple AWS Extension for WordPress」→ 直接安裝(推薦)
📦 歷史版本下載

原文外掛簡介

Simple AWS
This extension, when enabled, provides easy access to Amazon Web Services (AWS) from other plugins, extensions and custom functions through the AWS SDK for PHP.
From the settings page, enter your AWS Region and your IAM account credentials, then access AWS programmatically using the provided methods and filters along with the AWS SDK classes and methods.
Please review:
+ Policies and permissions in IAM
+ Managing access keys for IAM users
Available Methods
getAwsRegion() returns your selected region

getAwsAccessKey() returns your access key

getAwsAccessSecret() returns your access secret

getAwsCredentials() returns a 'credentials' array with your key and secret

getAwsClientParams() returns an AWS client instantiation array

getAwsEndpoints() returns a (large) array of all AWS endpoint parameters

getAwsRegions() returns an array of all regions (name=>description)

setAwsVersion() override default ('latest') version

setAwsRegion() override set region

setAwsEndPoint() override default endpoint

Available Filters
SimpleAWS_version returns the AWS version string

SimpleAWS_region returns your selected region

SimpleAWS_access_key returns your access key

SimpleAWS_access_secret returns your access secret

SimpleAWS_credentials returns a 'credentials' array with your key and secret

SimpleAWS_client_params returns an AWS client instantiation array

SimpleAWS_endpoints returns a (large) array of all AWS endpoint parameters

SimpleAWS_regions returns an array of all regions (name=>description)

Examples
`php

$cloudFront = new Aws\CloudFront\CloudFrontClient([
‘version’ => ‘latest’,
‘region’ => apply_filters(‘SimpleAWS_region’,”),
‘credentials’ => [
‘key’ => apply_filters(‘SimpleAWS_access_key’,”),
‘secret’ => apply_filters(‘SimpleAWS_access_secret’,”)
]
]);
if ($aws = $this->getExtension(‘Simple_AWS’)) {
$cloudFront = new Aws\CloudFront\CloudFrontClient([
‘version’ => ‘latest’,
‘region’ => $aws->getAwsRegion(),
‘credentials’ => $aws->getAwsCredentials(),
]);
}
if ($aws = eacDoojigger()->getExtension(‘Simple_AWS’)) {
$cloudFront = new Aws\CloudFront\CloudFrontClient([
‘version’ => $aws->getAwsVersion(),
‘region’ => $aws->getAwsRegion(),
‘credentials’ => $aws->getAwsCredentials(),
]);
}
if ($aws = $this->getExtension(‘Simple_AWS’)) {
$cloudFront = new Aws\CloudFront\CloudFrontClient(
$aws->getAwsClientParams()
);
}
if ($aws = eacDoojigger()->getExtension(‘Simple_AWS’)) {
$cloudFront = new Aws\CloudFront\CloudFrontClient(
$aws->getAwsClientParams()
);
}
if ($aws = $this->plugin->getExtension(‘Simple_AWS’)) {
if ($awsParams = $aws->getAwsClientParams()) {
try {
$s3client = new \Aws\S3\S3Client($awsParams);
$result = $s3client->createBucket([
‘Bucket’ => $bucketName,
]);
$result = $s3client->putObject([
‘Bucket’ => $bucketName,
‘Key’ => $fileName,
‘Metadata’ => $metadata,
‘Body’ => json_encode($payload,JSON_PRETTY_PRINT),
]);
}
catch (\AwsException $exception) {
$this->logError($exception,”AWS S3Client Error”);
}
}
}
`

Simple AWS S3 Events
The Simple AWS S3 Events extension is intended to facilitate events through AWS EventBridge, passing data from and to WordPress/WooCommerce … but you may find other uses.

A webhook delivery URL is created to be used by WooCommerce to send data (order, product, or coupon) as a file to an AWS S3 bucket.

An EventBridge Target URL is created to accepts data from AWS EventBridge derived from the file saved to the S3 bucket.

These 2 features may be used by the same WordPress installation (though I’m not sure why) or by different, even several, installations to route WooCommerce data to other destinations.
For example:

Site1 \ / EventBridge Target -> Site5
Site2 -> - WC Webhook Delivery -> [ Site4 ] -> - S3 Bucket -> EventBridge Target -> Site6
Site3 / \ EventBridge Target -> Site7

One or many WooCommerce sites can use the WebHook Delivery URL of another site to send orders through that site and then on to an S3 bucket as individual files.
EventBridge can be configured to deliver S3 files to one (or many) WordPress sites using the EventBridge Target URL.
This extension creates the APIs and formats the data to be sent to or received from AWS. To process data beyond what this extension does, you may use any of these actions:
`php
/**
* action _eventbridge_
* @param object $file – S3 file object ($file->get(‘Body’) to get contents)
* @param array $meta – EventBridge API metadata
* @param string $type – object type (order|product|coupon)
* @param string $name – object file name
*/
add_action( “eacDoojigger_eventbridge_object”, ‘my_eventbridge_action’, 10, 4 );
add_action( “eacDoojigger_eventbridge_order”, ‘my_eventbridge_action’, 10, 4 );
add_action( “eacDoojigger_eventbridge_product”, ‘my_eventbridge_action’, 10, 4 );
add_action( “eacDoojigger_eventbridge_coupon”, ‘my_eventbridge_action’, 10, 4 );
function my_EventBridge_action($file, $payload, $type, $fileName) {
$data = $file->get(‘Body’);
}
`
WooCommerce Setup
WooCommerce Webhooks can be added for Orders, Products, or Coupons. When creating a new webhook (WooCommerce -> Settings -> Advanced -> Webhooks) use the Webhook Delivery URL and Webhook Secret provided by this extension.
S3 Setup
This extension, by default, creates a new S3 bucket named wc-webhook-. To override this or use an existing bucket…
php
add_action( "eacDoojigger_eventbridge_bucketname", function($bucketName) {
return 'my-s3-bucket';
} );
S3 bucket filenames are wc__##.json, e.g. wc_order_300.json. To override the file name used…
php
add_action( "eacDoojigger_eventbridge_filename", function($fileName, $objectType, $objectId) {
return 'my_s3_' . $objectType . '_' . $objectId . '.json';
},10,3 );
When changing the bucket name and/or file name, the Event pattern shown below will also have to be changed.
EventBridge Setup
There are several steps and configurations needed to get EventBridge working properly. Below are the key components needed for proper configuration, other options may be set to your preferences/needs.
In AWS EventBridge:

EventBridge -> Connections -> Create Connection

API type: Public
Authorization type: Basic
Username: a WordPress user
Password: the application password for the user

alternatively

Authorization type: API Key
API key name: X-RestAPI-Token
Value: the Webhook Secret provided by this extension

EventBridge -> API Destinations -> Create API destination

API destination endpoint: The EventBridge Target URL provided by this extension.
HTTP method: POST or PUT
Connection type: Use an existing connection (select the connection created in step 1)

EventBridge -> Rules -> Create rule (you may create 1 rule for all objects or a single rule for each object type)

Event bus: default
Rule type: Rule with an event pattern
Events, Event source: Other
Event pattern, Creation method: Custom pattern (JSON editor)
Event pattern: (defines the beginning part, or prefix, of the bucket name and file names)
json
{
"detail": {
"bucket": {
"name": [{
"prefix": "wc-webhook-"
}]
},
"object": {
"key": [{
"prefix": "wc_order_"
}]
}
}
}
Target 1, Target types: EventBridge API destination
API destination: Use an existing API destination (select the API destination created in step 2)

You can add other targets, such as CloudWatch for logging, other WordPress sites using this extension, or other services that can ingest this data. This extension provides logging (debug level) to expose detailed data structures.
See also: How do I create and troubleshoot an Amazon EventBridge rule that triggers on S3 objects or operations? on AWS re:Post.
Using AWS [CloudFront](https://aws.amazon.com/cloudfront/) or [Simple Email Service](https://aws.amazon.com/ses/)

{eac}SimpleCDN
An {eac}Doojigger extension to enable the use of Content Delivery Network assets on your WordPress site, significantly decreasing your page load times and improving the user experience.

{eac}SimpleSMTP
An {eac}Doojigger extension to configure WordPress wp_mail and phpmailer to use your SMTP (outgoing) mail server when sending email.

Additional Information
{eac}SimpleAWS is an extension plugin to and requires installation and registration of {eac}Doojigger.
See Also:

{eac}SimpleCDN
An {eac}Doojigger extension to enable the use of Content Delivery Network assets on your WordPress site, significantly decreasing your page load times and improving the user experience.

{eac}SimpleSMTP
An {eac}Doojigger extension to configure WordPress wp_mail and phpmailer to use your SMTP (outgoing) mail server when sending email.

Copyright
Copyright © 2026, EarthAsylum Consulting, distributed under the terms of the GNU GPL.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should receive a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.

文章
Filter
Mastodon