Php 拒绝非住宅关键字的PayPal地址验证
我已经实现了一个代码片段来检查woocommerce签出中address1和address2字段中的非住宅关键字。这将返回消息并标记错误,从而禁止支付网关继续 然而,贝宝却泰然自若地向前推进。我看到Paypal的文档中有一些代码可供操作。是否有一种简单的方法让它引用现有地址验证代码段的错误输出?下面使用的代码仅供参考Php 拒绝非住宅关键字的PayPal地址验证,php,woocommerce,paypal,Php,Woocommerce,Paypal,我已经实现了一个代码片段来检查woocommerce签出中address1和address2字段中的非住宅关键字。这将返回消息并标记错误,从而禁止支付网关继续 然而,贝宝却泰然自若地向前推进。我看到Paypal的文档中有一些代码可供操作。是否有一种简单的方法让它引用现有地址验证代码段的错误输出?下面使用的代码仅供参考 add_action('woocommerce_after_checkout_validation', 'poc_disallow_nonres_shipping' ); f
add_action('woocommerce_after_checkout_validation', 'poc_disallow_nonres_shipping' );
function poc_disallow_nonres_shipping( $posted ) {
$address = ( isset( $posted['shipping_address_1'] ) ) ? $posted['shipping_address_1'] : $posted['billing_address_1'];
$address2 = ( isset( $posted['shipping_address_2'] ) ) ? $posted['shipping_address_2'] : $posted['billing_address_2'];
$replace = array( " ", ".", "," );
$address = strtolower( str_replace( $replace, '', $address ) );
$address2 = strtolower( str_replace( $replace, '', $address2 ) );
$keywords = array("pobox", "dpd", "parcel", "unit", "wizard", "suite", "tnt", "hermes");
foreach ($keywords as $keyword) {
if ( strstr( $address, $keyword ) || strstr( $address2, keyword ) ) {
wc_add_notice( 'Sorry, we only ship to residential addresses.', 'error' );
}
}
}
我是一个完全的新手,不知道从这里可以走到哪里。非常感谢任何帮助