yahnis-elsts/ajax-wrapper
Composer 安装命令:
composer require yahnis-elsts/ajax-wrapper
包简介
AJAX action wrapper for WordPress
README 文档
README
This helper library makes it easier to handle AJAX requests in WordPress plugins. Mainly for personal use.
Example
Define action:
$exampleAction = ajaw_v1_CreateAction('ws_do_something') ->handler(array($this, 'myAjaxCallback')) ->requiredCap('manage_options') ->method('post') ->requiredParam('foo') ->optionalParam('bar', 'default value') ->register();
Call from JavaScript:
AjawV1.getAction('ws_do_something').post( { 'foo': '...' }, function(response) { console.log(response); } );
Features
- Automate common, boring stuff.
- Automatically pass the
admin-ajax.phpURL and nonce to JS. - Define required parameters.
$builder->requiredParam('foo', 'int')
- Define optional parameters with default values.
$builder->optionalParam('meaningOfLife', 42, 'int')
- Automatically remove "magic quotes" that WordPress adds to
$_GET,$_POSTand$_REQUEST. - Encode return values as JSON.
- Automatically pass the
- Security should be the default.
- Generate and verify nonces. Nonce verification is on by default, but can be disabled.
$builder->withoutNonce()
- Check capabilities.
$builder->requiredCap('manage_options');
- Verify that all required parameters are set.
- Validate parameter values.
$builder->optionalParam('things', 1, 'int', function($value) { if ($value > 10) { return new WP_Error( 'excessive_things', 'Too many things!', 400 //HTTP status code. ); } })
- Set the required HTTP method.
$builder->method('post')
- Generate and verify nonces. Nonce verification is on by default, but can be disabled.
- Resilience.
- Lenient response parsing to work around bugs in other plugins. For example, deal with extraneous whitespace and PHP notices in AJAX responses.
- Multiple versions of the library can coexist on the same site.
Why not use the REST API instead?
Backwards compatibility. In theory, this library should be compatible with WP 4.1+.
统计信息
- 总下载量: 2.77k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 21
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2024-01-11