Запретить доставку в абонентские почтовые ящики

Добавьте этот код в файл functions.php вашей дочерней темы или используйте плагин, который позволяет добавлять пользовательские функции, например Code Snippets.

Не добавляйте код напрямую в functions.php родительской темы — при обновлении темы все изменения будут удалены.


/**
 * Запрет доставки на абонентские ящики (PO Box)
 */
add_action('woocommerce_after_checkout_validation', 'deny_pobox_postcode');

function deny_pobox_postcode( $posted ) {
  global $woocommerce;

  $address  = ( isset( $posted['shipping_address_1'] ) ) ? $posted['shipping_address_1'] : $posted['billing_address_1'];
  $postcode = ( isset( $posted['shipping_postcode'] ) ) ? $posted['shipping_postcode'] : $posted['billing_postcode'];

  $replace  = array(" ", ".", ",");
  $address  = strtolower( str_replace( $replace, '', $address ) );
  $postcode = strtolower( str_replace( $replace, '', $postcode ) );

  if ( strstr( $address, 'pobox' ) || strstr( $postcode, 'pobox' ) ) {
    wc_add_notice( sprintf( __( "Sorry, we cannot ship to PO BOX addresses.") ) ,'error' );
  }
}

Поделиться с друзьями
Документация WooCommerce