1.6 KiB
1.6 KiB
使用webhook自动同步woocommerce的订单
erp-API 服务非 https 也可用配置
webhook 调用的时候默认是需要 https,但开发时本地一般不配置 ssl(或者只是自签名),所以需要在 wordpress 中添加非 https 也可用配置。
执行:在你应用的主题对应的 functions.php 中添加以下代码(可以放在最后)即可访问非https地址
备注:路径:比如你应用的主题是 twentytwentyfive,则对应的文件路径是 <siteFolder>/app/public/wp-content/themes/twentytwentyfive/functions.php
add_filter( 'http_request_args', function( $args ) {
$args['reject_unsafe_urls'] = false;
return $args;
} );
// 跨平台获取请求头
$headers = [];
foreach ($_SERVER as $key => $value) {
if (strpos($key, 'HTTP_') === 0) {
$header_name = str_replace('_', '-', ucwords(substr($key, 5), '-'));
$headers[$header_name] = $value;
}
}
// 修正后的条件判断
if ( (isset($_GET['consumer_key']) && isset($_GET['consumer_secret'])) || isset($headers['Authorization']) ) {
$_SERVER['HTTPS'] = 'on';
if (!is_ssl()) { // WordPress内置函数检查
wp_redirect(str_replace('http://', 'https://', $_SERVER['REQUEST_URI']));
exit;
}
}
在wordpress管理端网页添加webhook
地址: http://wp-test.local/wp-admin/admin.php?page=wc-settings&tab=advanced§ion=webhooks
举例说明:
