Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 拒绝非住宅关键字的PayPal地址验证_Php_Woocommerce_Paypal - Fatal编程技术网

Php 拒绝非住宅关键字的PayPal地址验证

Php 拒绝非住宅关键字的PayPal地址验证,php,woocommerce,paypal,Php,Woocommerce,Paypal,我已经实现了一个代码片段来检查woocommerce签出中address1和address2字段中的非住宅关键字。这将返回消息并标记错误,从而禁止支付网关继续 然而,贝宝却泰然自若地向前推进。我看到Paypal的文档中有一些代码可供操作。是否有一种简单的方法让它引用现有地址验证代码段的错误输出?下面使用的代码仅供参考 add_action('woocommerce_after_checkout_validation', 'poc_disallow_nonres_shipping' ); f

我已经实现了一个代码片段来检查woocommerce签出中address1和address2字段中的非住宅关键字。这将返回消息并标记错误,从而禁止支付网关继续

然而,贝宝却泰然自若地向前推进。我看到Paypal的文档中有一些代码可供操作。是否有一种简单的方法让它引用现有地址验证代码段的错误输出?下面使用的代码仅供参考

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' );
   }
}
}
我是一个完全的新手,不知道从这里可以走到哪里。非常感谢任何帮助