@@ -20,91 +20,91 @@ discard block |
||
| 20 | 20 | class WPInv_REST_Discounts_Controller extends WP_REST_Posts_Controller { |
| 21 | 21 | |
| 22 | 22 | /** |
| 23 | - * Post type. |
|
| 24 | - * |
|
| 25 | - * @var string |
|
| 26 | - */ |
|
| 27 | - protected $post_type = 'wpi_discount'; |
|
| 23 | + * Post type. |
|
| 24 | + * |
|
| 25 | + * @var string |
|
| 26 | + */ |
|
| 27 | + protected $post_type = 'wpi_discount'; |
|
| 28 | 28 | |
| 29 | - /** |
|
| 30 | - * Cached results of get_item_schema. |
|
| 31 | - * |
|
| 32 | - * @since 1.0.13 |
|
| 33 | - * @var array |
|
| 34 | - */ |
|
| 35 | - protected $schema; |
|
| 29 | + /** |
|
| 30 | + * Cached results of get_item_schema. |
|
| 31 | + * |
|
| 32 | + * @since 1.0.13 |
|
| 33 | + * @var array |
|
| 34 | + */ |
|
| 35 | + protected $schema; |
|
| 36 | 36 | |
| 37 | 37 | /** |
| 38 | - * Constructor. |
|
| 39 | - * |
|
| 40 | - * @since 1.0.13 |
|
| 41 | - * |
|
| 42 | - * @param string $namespace Api Namespace |
|
| 43 | - */ |
|
| 44 | - public function __construct( $namespace ) { |
|
| 38 | + * Constructor. |
|
| 39 | + * |
|
| 40 | + * @since 1.0.13 |
|
| 41 | + * |
|
| 42 | + * @param string $namespace Api Namespace |
|
| 43 | + */ |
|
| 44 | + public function __construct( $namespace ) { |
|
| 45 | 45 | |
| 46 | 46 | // Set api namespace... |
| 47 | - $this->namespace = $namespace; |
|
| 47 | + $this->namespace = $namespace; |
|
| 48 | 48 | |
| 49 | 49 | // ... and the rest base |
| 50 | 50 | $this->rest_base = 'discounts'; |
| 51 | 51 | |
| 52 | 52 | } |
| 53 | 53 | |
| 54 | - /** |
|
| 55 | - * Registers the routes for the objects of the controller. |
|
| 56 | - * |
|
| 57 | - * @since 1.0.13 |
|
| 58 | - * |
|
| 59 | - * @see register_rest_route() |
|
| 60 | - */ |
|
| 61 | - public function register_routes() { |
|
| 62 | - |
|
| 63 | - parent::register_routes(); |
|
| 64 | - |
|
| 65 | - register_rest_route( |
|
| 66 | - $this->namespace, |
|
| 67 | - '/' . $this->rest_base . '/discount-types', |
|
| 68 | - array( |
|
| 69 | - array( |
|
| 70 | - 'methods' => WP_REST_Server::READABLE, |
|
| 71 | - 'callback' => array( $this, 'get_discount_types' ), |
|
| 72 | - ), |
|
| 73 | - ) |
|
| 74 | - ); |
|
| 75 | - |
|
| 76 | - } |
|
| 54 | + /** |
|
| 55 | + * Registers the routes for the objects of the controller. |
|
| 56 | + * |
|
| 57 | + * @since 1.0.13 |
|
| 58 | + * |
|
| 59 | + * @see register_rest_route() |
|
| 60 | + */ |
|
| 61 | + public function register_routes() { |
|
| 62 | + |
|
| 63 | + parent::register_routes(); |
|
| 64 | + |
|
| 65 | + register_rest_route( |
|
| 66 | + $this->namespace, |
|
| 67 | + '/' . $this->rest_base . '/discount-types', |
|
| 68 | + array( |
|
| 69 | + array( |
|
| 70 | + 'methods' => WP_REST_Server::READABLE, |
|
| 71 | + 'callback' => array( $this, 'get_discount_types' ), |
|
| 72 | + ), |
|
| 73 | + ) |
|
| 74 | + ); |
|
| 75 | + |
|
| 76 | + } |
|
| 77 | 77 | |
| 78 | 78 | /** |
| 79 | - * Checks if a given request has access to read discounts. |
|
| 79 | + * Checks if a given request has access to read discounts. |
|
| 80 | 80 | * |
| 81 | - * |
|
| 82 | - * @since 1.0.13 |
|
| 83 | - * |
|
| 84 | - * @param WP_REST_Request $request Full details about the request. |
|
| 85 | - * @return true|WP_Error True if the request has read access, WP_Error object otherwise. |
|
| 86 | - */ |
|
| 87 | - public function get_items_permissions_check( $request ) { |
|
| 81 | + * |
|
| 82 | + * @since 1.0.13 |
|
| 83 | + * |
|
| 84 | + * @param WP_REST_Request $request Full details about the request. |
|
| 85 | + * @return true|WP_Error True if the request has read access, WP_Error object otherwise. |
|
| 86 | + */ |
|
| 87 | + public function get_items_permissions_check( $request ) { |
|
| 88 | 88 | |
| 89 | - if ( wpinv_current_user_can_manage_invoicing() ) { |
|
| 90 | - return true; |
|
| 91 | - } |
|
| 89 | + if ( wpinv_current_user_can_manage_invoicing() ) { |
|
| 90 | + return true; |
|
| 91 | + } |
|
| 92 | 92 | |
| 93 | - return new WP_Error( 'rest_forbidden_context', __( 'Sorry, you are not allowed to view invoice discounts.', 'invoicing' ), array( 'status' => rest_authorization_required_code() ) ); |
|
| 93 | + return new WP_Error( 'rest_forbidden_context', __( 'Sorry, you are not allowed to view invoice discounts.', 'invoicing' ), array( 'status' => rest_authorization_required_code() ) ); |
|
| 94 | 94 | |
| 95 | 95 | } |
| 96 | 96 | |
| 97 | 97 | /** |
| 98 | - * Retrieves a collection of discounts. |
|
| 99 | - * |
|
| 100 | - * @since 1.0.13 |
|
| 101 | - * |
|
| 102 | - * @param WP_REST_Request $request Full details about the request. |
|
| 103 | - * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure. |
|
| 104 | - */ |
|
| 105 | - public function get_items( $request ) { |
|
| 98 | + * Retrieves a collection of discounts. |
|
| 99 | + * |
|
| 100 | + * @since 1.0.13 |
|
| 101 | + * |
|
| 102 | + * @param WP_REST_Request $request Full details about the request. |
|
| 103 | + * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure. |
|
| 104 | + */ |
|
| 105 | + public function get_items( $request ) { |
|
| 106 | 106 | |
| 107 | - // Retrieve the list of registered item query parameters. |
|
| 107 | + // Retrieve the list of registered item query parameters. |
|
| 108 | 108 | $registered = $this->get_collection_params(); |
| 109 | 109 | |
| 110 | 110 | $args = array(); |
@@ -115,52 +115,52 @@ discard block |
||
| 115 | 115 | $args[ $key ] = $request[ $key]; |
| 116 | 116 | } |
| 117 | 117 | |
| 118 | - } |
|
| 119 | - |
|
| 120 | - /** |
|
| 121 | - * Filters the wpinv_get_all_discounts arguments for discounts rest requests. |
|
| 122 | - * |
|
| 123 | - * |
|
| 124 | - * @since 1.0.13 |
|
| 125 | - * |
|
| 126 | - * |
|
| 127 | - * @param array $args Key value array of query var to query value. |
|
| 128 | - * @param WP_REST_Request $request The request used. |
|
| 129 | - */ |
|
| 118 | + } |
|
| 119 | + |
|
| 120 | + /** |
|
| 121 | + * Filters the wpinv_get_all_discounts arguments for discounts rest requests. |
|
| 122 | + * |
|
| 123 | + * |
|
| 124 | + * @since 1.0.13 |
|
| 125 | + * |
|
| 126 | + * |
|
| 127 | + * @param array $args Key value array of query var to query value. |
|
| 128 | + * @param WP_REST_Request $request The request used. |
|
| 129 | + */ |
|
| 130 | 130 | $args = apply_filters( "wpinv_rest_get_discounts_arguments", $args, $request, $this ); |
| 131 | 131 | |
| 132 | - // Special args |
|
| 133 | - $args[ 'return' ] = 'objects'; |
|
| 134 | - $args[ 'paginate' ] = true; |
|
| 132 | + // Special args |
|
| 133 | + $args[ 'return' ] = 'objects'; |
|
| 134 | + $args[ 'paginate' ] = true; |
|
| 135 | 135 | |
| 136 | 136 | // Run the query. |
| 137 | - $query = wpinv_get_all_discounts( $args ); |
|
| 137 | + $query = wpinv_get_all_discounts( $args ); |
|
| 138 | 138 | |
| 139 | - // Prepare the retrieved discounts |
|
| 140 | - $discounts = array(); |
|
| 141 | - foreach( $query->discounts as $discount ) { |
|
| 142 | - |
|
| 143 | - $data = $this->prepare_item_for_response( $discount, $request ); |
|
| 144 | - $discounts[] = $this->prepare_response_for_collection( $data ); |
|
| 145 | - |
|
| 146 | - } |
|
| 147 | - |
|
| 148 | - // Prepare the response. |
|
| 149 | - $response = rest_ensure_response( $discounts ); |
|
| 150 | - $response->header( 'X-WP-Total', (int) $query->total ); |
|
| 151 | - $response->header( 'X-WP-TotalPages', (int) $query->max_num_pages ); |
|
| 152 | - |
|
| 153 | - /** |
|
| 154 | - * Filters the responses for discount requests. |
|
| 155 | - * |
|
| 156 | - * |
|
| 157 | - * @since 1.0.13 |
|
| 158 | - * |
|
| 159 | - * |
|
| 160 | - * @param arrWP_REST_Response $response Response object. |
|
| 161 | - * @param WP_REST_Request $request The request used. |
|
| 139 | + // Prepare the retrieved discounts |
|
| 140 | + $discounts = array(); |
|
| 141 | + foreach( $query->discounts as $discount ) { |
|
| 142 | + |
|
| 143 | + $data = $this->prepare_item_for_response( $discount, $request ); |
|
| 144 | + $discounts[] = $this->prepare_response_for_collection( $data ); |
|
| 145 | + |
|
| 146 | + } |
|
| 147 | + |
|
| 148 | + // Prepare the response. |
|
| 149 | + $response = rest_ensure_response( $discounts ); |
|
| 150 | + $response->header( 'X-WP-Total', (int) $query->total ); |
|
| 151 | + $response->header( 'X-WP-TotalPages', (int) $query->max_num_pages ); |
|
| 152 | + |
|
| 153 | + /** |
|
| 154 | + * Filters the responses for discount requests. |
|
| 155 | + * |
|
| 156 | + * |
|
| 157 | + * @since 1.0.13 |
|
| 158 | + * |
|
| 159 | + * |
|
| 160 | + * @param arrWP_REST_Response $response Response object. |
|
| 161 | + * @param WP_REST_Request $request The request used. |
|
| 162 | 162 | * @param array $args Array of args used to retrieve the discounts |
| 163 | - */ |
|
| 163 | + */ |
|
| 164 | 164 | $response = apply_filters( "wpinv_rest_discounts_response", $response, $request, $args ); |
| 165 | 165 | |
| 166 | 166 | return rest_ensure_response( $response ); |
@@ -168,25 +168,25 @@ discard block |
||
| 168 | 168 | } |
| 169 | 169 | |
| 170 | 170 | /** |
| 171 | - * Get the post, if the ID is valid. |
|
| 172 | - * |
|
| 173 | - * @since 1.0.13 |
|
| 174 | - * |
|
| 175 | - * @param int $discount_id Supplied ID. |
|
| 176 | - * @return WP_Post|WP_Error Post object if ID is valid, WP_Error otherwise. |
|
| 177 | - */ |
|
| 178 | - protected function get_post( $discount_id ) { |
|
| 171 | + * Get the post, if the ID is valid. |
|
| 172 | + * |
|
| 173 | + * @since 1.0.13 |
|
| 174 | + * |
|
| 175 | + * @param int $discount_id Supplied ID. |
|
| 176 | + * @return WP_Post|WP_Error Post object if ID is valid, WP_Error otherwise. |
|
| 177 | + */ |
|
| 178 | + protected function get_post( $discount_id ) { |
|
| 179 | 179 | |
| 180 | - $error = new WP_Error( 'rest_item_invalid_id', __( 'Invalid discount ID.', 'invoicing' ), array( 'status' => 404 ) ); |
|
| 180 | + $error = new WP_Error( 'rest_item_invalid_id', __( 'Invalid discount ID.', 'invoicing' ), array( 'status' => 404 ) ); |
|
| 181 | 181 | |
| 182 | 182 | // Ids start from 1 |
| 183 | 183 | if ( (int) $discount_id <= 0 ) { |
| 184 | - return $error; |
|
| 185 | - } |
|
| 184 | + return $error; |
|
| 185 | + } |
|
| 186 | 186 | |
| 187 | - $discount = wpinv_get_discount( (int) $discount_id ); |
|
| 188 | - if ( empty( $discount ) ) { |
|
| 189 | - return $error; |
|
| 187 | + $discount = wpinv_get_discount( (int) $discount_id ); |
|
| 188 | + if ( empty( $discount ) ) { |
|
| 189 | + return $error; |
|
| 190 | 190 | } |
| 191 | 191 | |
| 192 | 192 | return $discount; |
@@ -194,25 +194,25 @@ discard block |
||
| 194 | 194 | } |
| 195 | 195 | |
| 196 | 196 | /** |
| 197 | - * Checks if a given request has access to read a discount. |
|
| 198 | - * |
|
| 199 | - * @since 1.0.13 |
|
| 200 | - * |
|
| 201 | - * @param WP_REST_Request $request Full details about the request. |
|
| 202 | - * @return bool|WP_Error True if the request has read access for the invoice item, WP_Error object otherwise. |
|
| 203 | - */ |
|
| 204 | - public function get_item_permissions_check( $request ) { |
|
| 197 | + * Checks if a given request has access to read a discount. |
|
| 198 | + * |
|
| 199 | + * @since 1.0.13 |
|
| 200 | + * |
|
| 201 | + * @param WP_REST_Request $request Full details about the request. |
|
| 202 | + * @return bool|WP_Error True if the request has read access for the invoice item, WP_Error object otherwise. |
|
| 203 | + */ |
|
| 204 | + public function get_item_permissions_check( $request ) { |
|
| 205 | 205 | |
| 206 | 206 | // Retrieve the discount object. |
| 207 | 207 | $discount = $this->get_post( $request['id'] ); |
| 208 | 208 | |
| 209 | 209 | // Ensure it is valid. |
| 210 | - if ( is_wp_error( $discount ) ) { |
|
| 211 | - return $discount; |
|
| 212 | - } |
|
| 210 | + if ( is_wp_error( $discount ) ) { |
|
| 211 | + return $discount; |
|
| 212 | + } |
|
| 213 | 213 | |
| 214 | - if ( ! wpinv_current_user_can_manage_invoicing() ) { |
|
| 215 | - return new WP_Error( |
|
| 214 | + if ( ! wpinv_current_user_can_manage_invoicing() ) { |
|
| 215 | + return new WP_Error( |
|
| 216 | 216 | 'rest_cannot_view', |
| 217 | 217 | __( 'Sorry, you are not allowed to view this discount.', 'invoicing' ), |
| 218 | 218 | array( |
@@ -221,40 +221,40 @@ discard block |
||
| 221 | 221 | ); |
| 222 | 222 | } |
| 223 | 223 | |
| 224 | - return true; |
|
| 224 | + return true; |
|
| 225 | 225 | } |
| 226 | 226 | |
| 227 | 227 | /** |
| 228 | - * Retrieves a single invoice item. |
|
| 229 | - * |
|
| 230 | - * @since 1.0.13 |
|
| 231 | - * |
|
| 232 | - * @param WP_REST_Request $request Full details about the request. |
|
| 233 | - * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure. |
|
| 234 | - */ |
|
| 235 | - public function get_item( $request ) { |
|
| 228 | + * Retrieves a single invoice item. |
|
| 229 | + * |
|
| 230 | + * @since 1.0.13 |
|
| 231 | + * |
|
| 232 | + * @param WP_REST_Request $request Full details about the request. |
|
| 233 | + * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure. |
|
| 234 | + */ |
|
| 235 | + public function get_item( $request ) { |
|
| 236 | 236 | |
| 237 | 237 | // Fetch the discount. |
| 238 | 238 | $discount = $this->get_post( $request['id'] ); |
| 239 | 239 | |
| 240 | 240 | // Abort early if it does not exist |
| 241 | - if ( is_wp_error( $discount ) ) { |
|
| 242 | - return $discount; |
|
| 243 | - } |
|
| 244 | - |
|
| 245 | - // Prepare the response |
|
| 246 | - $response = $this->prepare_item_for_response( $discount, $request ); |
|
| 247 | - |
|
| 248 | - /** |
|
| 249 | - * Filters the responses for single discount requests. |
|
| 250 | - * |
|
| 251 | - * |
|
| 252 | - * @since 1.0.13 |
|
| 253 | - * @var WP_HTTP_Response |
|
| 254 | - * |
|
| 255 | - * @param WP_HTTP_Response $response Response. |
|
| 256 | - * @param WP_REST_Request $request The request used. |
|
| 257 | - */ |
|
| 241 | + if ( is_wp_error( $discount ) ) { |
|
| 242 | + return $discount; |
|
| 243 | + } |
|
| 244 | + |
|
| 245 | + // Prepare the response |
|
| 246 | + $response = $this->prepare_item_for_response( $discount, $request ); |
|
| 247 | + |
|
| 248 | + /** |
|
| 249 | + * Filters the responses for single discount requests. |
|
| 250 | + * |
|
| 251 | + * |
|
| 252 | + * @since 1.0.13 |
|
| 253 | + * @var WP_HTTP_Response |
|
| 254 | + * |
|
| 255 | + * @param WP_HTTP_Response $response Response. |
|
| 256 | + * @param WP_REST_Request $request The request used. |
|
| 257 | + */ |
|
| 258 | 258 | $response = apply_filters( "wpinv_rest_get_discount_response", $response, $request ); |
| 259 | 259 | |
| 260 | 260 | return rest_ensure_response( $response ); |
@@ -262,26 +262,26 @@ discard block |
||
| 262 | 262 | } |
| 263 | 263 | |
| 264 | 264 | /** |
| 265 | - * Checks if a given request has access to create an invoice item. |
|
| 266 | - * |
|
| 267 | - * @since 1.0.13 |
|
| 268 | - * |
|
| 269 | - * @param WP_REST_Request $request Full details about the request. |
|
| 270 | - * @return true|WP_Error True if the request has access to create items, WP_Error object otherwise. |
|
| 271 | - */ |
|
| 272 | - public function create_item_permissions_check( $request ) { |
|
| 265 | + * Checks if a given request has access to create an invoice item. |
|
| 266 | + * |
|
| 267 | + * @since 1.0.13 |
|
| 268 | + * |
|
| 269 | + * @param WP_REST_Request $request Full details about the request. |
|
| 270 | + * @return true|WP_Error True if the request has access to create items, WP_Error object otherwise. |
|
| 271 | + */ |
|
| 272 | + public function create_item_permissions_check( $request ) { |
|
| 273 | 273 | |
| 274 | - if ( ! empty( $request['id'] ) ) { |
|
| 275 | - return new WP_Error( 'rest_item_exists', __( 'Cannot create existing item.', 'invoicing' ), array( 'status' => 400 ) ); |
|
| 276 | - } |
|
| 274 | + if ( ! empty( $request['id'] ) ) { |
|
| 275 | + return new WP_Error( 'rest_item_exists', __( 'Cannot create existing item.', 'invoicing' ), array( 'status' => 400 ) ); |
|
| 276 | + } |
|
| 277 | 277 | |
| 278 | - if ( wpinv_current_user_can_manage_invoicing() ) { |
|
| 279 | - return true; |
|
| 280 | - } |
|
| 278 | + if ( wpinv_current_user_can_manage_invoicing() ) { |
|
| 279 | + return true; |
|
| 280 | + } |
|
| 281 | 281 | |
| 282 | - $post_type = get_post_type_object( $this->post_type ); |
|
| 283 | - if ( ! current_user_can( $post_type->cap->create_posts ) ) { |
|
| 284 | - return new WP_Error( |
|
| 282 | + $post_type = get_post_type_object( $this->post_type ); |
|
| 283 | + if ( ! current_user_can( $post_type->cap->create_posts ) ) { |
|
| 284 | + return new WP_Error( |
|
| 285 | 285 | 'rest_cannot_create', |
| 286 | 286 | __( 'Sorry, you are not allowed to create discounts as this user.', 'invoicing' ), |
| 287 | 287 | array( |
@@ -290,261 +290,261 @@ discard block |
||
| 290 | 290 | ); |
| 291 | 291 | } |
| 292 | 292 | |
| 293 | - return true; |
|
| 293 | + return true; |
|
| 294 | 294 | } |
| 295 | 295 | |
| 296 | 296 | /** |
| 297 | - * Creates a single discount. |
|
| 298 | - * |
|
| 299 | - * @since 1.0.13 |
|
| 300 | - * |
|
| 301 | - * @param WP_REST_Request $request Full details about the request. |
|
| 302 | - * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure. |
|
| 303 | - */ |
|
| 304 | - public function create_item( $request ) { |
|
| 305 | - |
|
| 306 | - if ( ! empty( $request['id'] ) ) { |
|
| 307 | - return new WP_Error( 'rest_item_exists', __( 'Cannot create existing discount.', 'invoicing' ), array( 'status' => 400 ) ); |
|
| 308 | - } |
|
| 297 | + * Creates a single discount. |
|
| 298 | + * |
|
| 299 | + * @since 1.0.13 |
|
| 300 | + * |
|
| 301 | + * @param WP_REST_Request $request Full details about the request. |
|
| 302 | + * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure. |
|
| 303 | + */ |
|
| 304 | + public function create_item( $request ) { |
|
| 305 | + |
|
| 306 | + if ( ! empty( $request['id'] ) ) { |
|
| 307 | + return new WP_Error( 'rest_item_exists', __( 'Cannot create existing discount.', 'invoicing' ), array( 'status' => 400 ) ); |
|
| 308 | + } |
|
| 309 | 309 | |
| 310 | - $request->set_param( 'context', 'edit' ); |
|
| 310 | + $request->set_param( 'context', 'edit' ); |
|
| 311 | 311 | |
| 312 | - // Prepare the updated data. |
|
| 313 | - $discount_data = $this->prepare_item_for_database( $request ); |
|
| 312 | + // Prepare the updated data. |
|
| 313 | + $discount_data = $this->prepare_item_for_database( $request ); |
|
| 314 | 314 | |
| 315 | - if ( is_wp_error( $discount_data ) ) { |
|
| 316 | - return $discount_data; |
|
| 317 | - } |
|
| 315 | + if ( is_wp_error( $discount_data ) ) { |
|
| 316 | + return $discount_data; |
|
| 317 | + } |
|
| 318 | 318 | |
| 319 | - $discount_data['post_type'] = $this->post_type; |
|
| 319 | + $discount_data['post_type'] = $this->post_type; |
|
| 320 | 320 | |
| 321 | - // Try creating the discount. |
|
| 321 | + // Try creating the discount. |
|
| 322 | 322 | $discount = wp_insert_post( $discount_data, true ); |
| 323 | 323 | |
| 324 | - if ( is_wp_error( $discount ) ) { |
|
| 324 | + if ( is_wp_error( $discount ) ) { |
|
| 325 | 325 | return $discount; |
| 326 | - } |
|
| 327 | - |
|
| 328 | - // Prepare the response |
|
| 329 | - $response = $this->prepare_item_for_response( $discount, $request ); |
|
| 330 | - |
|
| 331 | - /** |
|
| 332 | - * Fires after a single discount is created or updated via the REST API. |
|
| 333 | - * |
|
| 334 | - * @since 1.0.13 |
|
| 335 | - * |
|
| 336 | - * @param WP_Post $discount Inserted or updated discount object. |
|
| 337 | - * @param WP_REST_Request $request Request object. |
|
| 338 | - * @param bool $creating True when creating a post, false when updating. |
|
| 339 | - */ |
|
| 340 | - do_action( "wpinv_rest_insert_discount", $discount, $request, true ); |
|
| 341 | - |
|
| 342 | - /** |
|
| 343 | - * Filters the responses for creating single item requests. |
|
| 344 | - * |
|
| 345 | - * |
|
| 346 | - * @since 1.0.13 |
|
| 347 | - * |
|
| 348 | - * |
|
| 349 | - * @param array $response Invoice properties. |
|
| 350 | - * @param WP_REST_Request $request The request used. |
|
| 351 | - */ |
|
| 326 | + } |
|
| 327 | + |
|
| 328 | + // Prepare the response |
|
| 329 | + $response = $this->prepare_item_for_response( $discount, $request ); |
|
| 330 | + |
|
| 331 | + /** |
|
| 332 | + * Fires after a single discount is created or updated via the REST API. |
|
| 333 | + * |
|
| 334 | + * @since 1.0.13 |
|
| 335 | + * |
|
| 336 | + * @param WP_Post $discount Inserted or updated discount object. |
|
| 337 | + * @param WP_REST_Request $request Request object. |
|
| 338 | + * @param bool $creating True when creating a post, false when updating. |
|
| 339 | + */ |
|
| 340 | + do_action( "wpinv_rest_insert_discount", $discount, $request, true ); |
|
| 341 | + |
|
| 342 | + /** |
|
| 343 | + * Filters the responses for creating single item requests. |
|
| 344 | + * |
|
| 345 | + * |
|
| 346 | + * @since 1.0.13 |
|
| 347 | + * |
|
| 348 | + * |
|
| 349 | + * @param array $response Invoice properties. |
|
| 350 | + * @param WP_REST_Request $request The request used. |
|
| 351 | + */ |
|
| 352 | 352 | $response = apply_filters( "wpinv_rest_create_discount_response", $response, $request ); |
| 353 | 353 | |
| 354 | 354 | return rest_ensure_response( $response ); |
| 355 | - } |
|
| 356 | - |
|
| 357 | - /** |
|
| 358 | - * Checks if a given request has access to update a discount. |
|
| 359 | - * |
|
| 360 | - * @since 1.0.13 |
|
| 361 | - * |
|
| 362 | - * @param WP_REST_Request $request Full details about the request. |
|
| 363 | - * @return true|WP_Error True if the request has access to update the item, WP_Error object otherwise. |
|
| 364 | - */ |
|
| 365 | - public function update_item_permissions_check( $request ) { |
|
| 366 | - |
|
| 367 | - // Retrieve the item. |
|
| 368 | - $item = $this->get_post( $request['id'] ); |
|
| 369 | - if ( is_wp_error( $item ) ) { |
|
| 370 | - return $item; |
|
| 371 | - } |
|
| 372 | - |
|
| 373 | - if ( wpinv_current_user_can_manage_invoicing() ) { |
|
| 374 | - return true; |
|
| 375 | - } |
|
| 376 | - |
|
| 377 | - return new WP_Error( |
|
| 378 | - 'rest_cannot_edit', |
|
| 379 | - __( 'Sorry, you are not allowed to update this discount.', 'invoicing' ), |
|
| 380 | - array( |
|
| 381 | - 'status' => rest_authorization_required_code(), |
|
| 382 | - ) |
|
| 383 | - ); |
|
| 384 | - |
|
| 385 | - } |
|
| 386 | - |
|
| 387 | - /** |
|
| 388 | - * Updates a single discount. |
|
| 389 | - * |
|
| 390 | - * @since 1.0.13 |
|
| 391 | - * |
|
| 392 | - * @param WP_REST_Request $request Full details about the request. |
|
| 393 | - * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure. |
|
| 394 | - */ |
|
| 395 | - public function update_item( $request ) { |
|
| 355 | + } |
|
| 356 | + |
|
| 357 | + /** |
|
| 358 | + * Checks if a given request has access to update a discount. |
|
| 359 | + * |
|
| 360 | + * @since 1.0.13 |
|
| 361 | + * |
|
| 362 | + * @param WP_REST_Request $request Full details about the request. |
|
| 363 | + * @return true|WP_Error True if the request has access to update the item, WP_Error object otherwise. |
|
| 364 | + */ |
|
| 365 | + public function update_item_permissions_check( $request ) { |
|
| 366 | + |
|
| 367 | + // Retrieve the item. |
|
| 368 | + $item = $this->get_post( $request['id'] ); |
|
| 369 | + if ( is_wp_error( $item ) ) { |
|
| 370 | + return $item; |
|
| 371 | + } |
|
| 372 | + |
|
| 373 | + if ( wpinv_current_user_can_manage_invoicing() ) { |
|
| 374 | + return true; |
|
| 375 | + } |
|
| 376 | + |
|
| 377 | + return new WP_Error( |
|
| 378 | + 'rest_cannot_edit', |
|
| 379 | + __( 'Sorry, you are not allowed to update this discount.', 'invoicing' ), |
|
| 380 | + array( |
|
| 381 | + 'status' => rest_authorization_required_code(), |
|
| 382 | + ) |
|
| 383 | + ); |
|
| 384 | + |
|
| 385 | + } |
|
| 386 | + |
|
| 387 | + /** |
|
| 388 | + * Updates a single discount. |
|
| 389 | + * |
|
| 390 | + * @since 1.0.13 |
|
| 391 | + * |
|
| 392 | + * @param WP_REST_Request $request Full details about the request. |
|
| 393 | + * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure. |
|
| 394 | + */ |
|
| 395 | + public function update_item( $request ) { |
|
| 396 | 396 | |
| 397 | - // Ensure the item exists. |
|
| 397 | + // Ensure the item exists. |
|
| 398 | 398 | $valid_check = $this->get_post( $request['id'] ); |
| 399 | 399 | |
| 400 | 400 | // Abort early if it does not exist |
| 401 | - if ( is_wp_error( $valid_check ) ) { |
|
| 402 | - return $valid_check; |
|
| 403 | - } |
|
| 401 | + if ( is_wp_error( $valid_check ) ) { |
|
| 402 | + return $valid_check; |
|
| 403 | + } |
|
| 404 | 404 | |
| 405 | - $request->set_param( 'context', 'edit' ); |
|
| 405 | + $request->set_param( 'context', 'edit' ); |
|
| 406 | 406 | |
| 407 | - // Prepare the updated data. |
|
| 408 | - $data_to_update = $this->prepare_item_for_database( $request ); |
|
| 407 | + // Prepare the updated data. |
|
| 408 | + $data_to_update = $this->prepare_item_for_database( $request ); |
|
| 409 | 409 | |
| 410 | - if ( is_wp_error( $data_to_update ) ) { |
|
| 411 | - return $data_to_update; |
|
| 412 | - } |
|
| 410 | + if ( is_wp_error( $data_to_update ) ) { |
|
| 411 | + return $data_to_update; |
|
| 412 | + } |
|
| 413 | 413 | |
| 414 | - if( empty( $data_to_update['meta_input'] ) ) { |
|
| 415 | - unset( $data_to_update['meta_input'] ); |
|
| 416 | - } |
|
| 414 | + if( empty( $data_to_update['meta_input'] ) ) { |
|
| 415 | + unset( $data_to_update['meta_input'] ); |
|
| 416 | + } |
|
| 417 | 417 | |
| 418 | - // Abort if no item data is provided |
|
| 418 | + // Abort if no item data is provided |
|
| 419 | 419 | if( empty( $data_to_update ) ) { |
| 420 | 420 | return new WP_Error( 'missing_data', __( 'An update request cannot be empty.', 'invoicing' ) ); |
| 421 | - } |
|
| 421 | + } |
|
| 422 | 422 | |
| 423 | - // post_status |
|
| 424 | - if( ! empty( $data_to_update['post_status'] ) ) { |
|
| 425 | - wpinv_update_discount_status( $request['id'], $data_to_update['post_status'] ); |
|
| 426 | - unset( $data_to_update['post_status'] ); |
|
| 427 | - } |
|
| 423 | + // post_status |
|
| 424 | + if( ! empty( $data_to_update['post_status'] ) ) { |
|
| 425 | + wpinv_update_discount_status( $request['id'], $data_to_update['post_status'] ); |
|
| 426 | + unset( $data_to_update['post_status'] ); |
|
| 427 | + } |
|
| 428 | 428 | |
| 429 | - // Update the item |
|
| 430 | - if( ! empty( $data_to_update ) ) { |
|
| 429 | + // Update the item |
|
| 430 | + if( ! empty( $data_to_update ) ) { |
|
| 431 | 431 | |
| 432 | - // Include the item ID |
|
| 433 | - $data_to_update['ID'] = $request['id']; |
|
| 432 | + // Include the item ID |
|
| 433 | + $data_to_update['ID'] = $request['id']; |
|
| 434 | 434 | |
| 435 | - $updated = wp_update_post( $data_to_update, true ); |
|
| 435 | + $updated = wp_update_post( $data_to_update, true ); |
|
| 436 | 436 | |
| 437 | - // Incase the update operation failed... |
|
| 438 | - if ( is_wp_error( $updated ) ) { |
|
| 439 | - return $updated; |
|
| 440 | - } |
|
| 437 | + // Incase the update operation failed... |
|
| 438 | + if ( is_wp_error( $updated ) ) { |
|
| 439 | + return $updated; |
|
| 440 | + } |
|
| 441 | 441 | |
| 442 | - } |
|
| 442 | + } |
|
| 443 | 443 | |
| 444 | - $updated_discount = get_post( $request['id'] ); |
|
| 444 | + $updated_discount = get_post( $request['id'] ); |
|
| 445 | 445 | |
| 446 | - // Prepare the response |
|
| 447 | - $response = $this->prepare_item_for_response( $updated_discount, $request ); |
|
| 446 | + // Prepare the response |
|
| 447 | + $response = $this->prepare_item_for_response( $updated_discount, $request ); |
|
| 448 | 448 | |
| 449 | - /** This action is documented in includes/class-wpinv-rest-item-controller.php */ |
|
| 450 | - do_action( "wpinv_rest_insert_discount", $updated_discount, $request, false ); |
|
| 449 | + /** This action is documented in includes/class-wpinv-rest-item-controller.php */ |
|
| 450 | + do_action( "wpinv_rest_insert_discount", $updated_discount, $request, false ); |
|
| 451 | 451 | |
| 452 | - /** |
|
| 453 | - * Filters the responses for updating single discount requests. |
|
| 454 | - * |
|
| 455 | - * |
|
| 456 | - * @since 1.0.13 |
|
| 457 | - * |
|
| 458 | - * |
|
| 459 | - * @param array $data_to_update Discount properties. |
|
| 460 | - * @param WP_REST_Request $request The request used. |
|
| 461 | - */ |
|
| 452 | + /** |
|
| 453 | + * Filters the responses for updating single discount requests. |
|
| 454 | + * |
|
| 455 | + * |
|
| 456 | + * @since 1.0.13 |
|
| 457 | + * |
|
| 458 | + * |
|
| 459 | + * @param array $data_to_update Discount properties. |
|
| 460 | + * @param WP_REST_Request $request The request used. |
|
| 461 | + */ |
|
| 462 | 462 | $response = apply_filters( "wpinv_rest_update_discount_response", $response, $data_to_update, $request ); |
| 463 | 463 | |
| 464 | 464 | return rest_ensure_response( $response ); |
| 465 | - } |
|
| 466 | - |
|
| 467 | - /** |
|
| 468 | - * Checks if a given request has access to delete a discount. |
|
| 469 | - * |
|
| 470 | - * @since 1.0.13 |
|
| 471 | - * |
|
| 472 | - * @param WP_REST_Request $request Full details about the request. |
|
| 473 | - * @return true|WP_Error True if the request has access to delete the discount, WP_Error object otherwise. |
|
| 474 | - */ |
|
| 475 | - public function delete_item_permissions_check( $request ) { |
|
| 476 | - |
|
| 477 | - // Retrieve the discount. |
|
| 478 | - $discount = $this->get_post( $request['id'] ); |
|
| 479 | - if ( is_wp_error( $discount ) ) { |
|
| 480 | - return $discount; |
|
| 481 | - } |
|
| 482 | - |
|
| 483 | - // Ensure the current user can delete the discount |
|
| 484 | - if (! wpinv_current_user_can_manage_invoicing() ) { |
|
| 485 | - return new WP_Error( |
|
| 465 | + } |
|
| 466 | + |
|
| 467 | + /** |
|
| 468 | + * Checks if a given request has access to delete a discount. |
|
| 469 | + * |
|
| 470 | + * @since 1.0.13 |
|
| 471 | + * |
|
| 472 | + * @param WP_REST_Request $request Full details about the request. |
|
| 473 | + * @return true|WP_Error True if the request has access to delete the discount, WP_Error object otherwise. |
|
| 474 | + */ |
|
| 475 | + public function delete_item_permissions_check( $request ) { |
|
| 476 | + |
|
| 477 | + // Retrieve the discount. |
|
| 478 | + $discount = $this->get_post( $request['id'] ); |
|
| 479 | + if ( is_wp_error( $discount ) ) { |
|
| 480 | + return $discount; |
|
| 481 | + } |
|
| 482 | + |
|
| 483 | + // Ensure the current user can delete the discount |
|
| 484 | + if (! wpinv_current_user_can_manage_invoicing() ) { |
|
| 485 | + return new WP_Error( |
|
| 486 | 486 | 'rest_cannot_delete', |
| 487 | 487 | __( 'Sorry, you are not allowed to delete this discount.', 'invoicing' ), |
| 488 | 488 | array( |
| 489 | 489 | 'status' => rest_authorization_required_code(), |
| 490 | 490 | ) |
| 491 | 491 | ); |
| 492 | - } |
|
| 493 | - |
|
| 494 | - return true; |
|
| 495 | - } |
|
| 496 | - |
|
| 497 | - /** |
|
| 498 | - * Deletes a single discount. |
|
| 499 | - * |
|
| 500 | - * @since 1.0.13 |
|
| 501 | - * |
|
| 502 | - * @param WP_REST_Request $request Full details about the request. |
|
| 503 | - * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure. |
|
| 504 | - */ |
|
| 505 | - public function delete_item( $request ) { |
|
| 492 | + } |
|
| 493 | + |
|
| 494 | + return true; |
|
| 495 | + } |
|
| 496 | + |
|
| 497 | + /** |
|
| 498 | + * Deletes a single discount. |
|
| 499 | + * |
|
| 500 | + * @since 1.0.13 |
|
| 501 | + * |
|
| 502 | + * @param WP_REST_Request $request Full details about the request. |
|
| 503 | + * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure. |
|
| 504 | + */ |
|
| 505 | + public function delete_item( $request ) { |
|
| 506 | 506 | |
| 507 | - // Retrieve the discount. |
|
| 508 | - $discount = $this->get_post( $request['id'] ); |
|
| 509 | - if ( is_wp_error( $discount ) ) { |
|
| 510 | - return $discount; |
|
| 511 | - } |
|
| 507 | + // Retrieve the discount. |
|
| 508 | + $discount = $this->get_post( $request['id'] ); |
|
| 509 | + if ( is_wp_error( $discount ) ) { |
|
| 510 | + return $discount; |
|
| 511 | + } |
|
| 512 | 512 | |
| 513 | - $request->set_param( 'context', 'edit' ); |
|
| 513 | + $request->set_param( 'context', 'edit' ); |
|
| 514 | 514 | |
| 515 | - // Prepare the discount id |
|
| 516 | - $id = $discount->ID; |
|
| 515 | + // Prepare the discount id |
|
| 516 | + $id = $discount->ID; |
|
| 517 | 517 | |
| 518 | - // Prepare the response |
|
| 519 | - $response = $this->prepare_item_for_response( $discount, $request ); |
|
| 518 | + // Prepare the response |
|
| 519 | + $response = $this->prepare_item_for_response( $discount, $request ); |
|
| 520 | 520 | |
| 521 | - // Delete the discount... |
|
| 522 | - wpinv_remove_discount( $id ); |
|
| 521 | + // Delete the discount... |
|
| 522 | + wpinv_remove_discount( $id ); |
|
| 523 | 523 | |
| 524 | - /** |
|
| 525 | - * Fires immediately after a single discount is deleted via the REST API. |
|
| 526 | - * |
|
| 527 | - * |
|
| 528 | - * @since 1.0.13 |
|
| 529 | - * |
|
| 530 | - * @param WP_POST $discount The deleted discount. |
|
| 531 | - * @param WP_REST_Request $request The request sent to the API. |
|
| 532 | - */ |
|
| 533 | - do_action( "wpinv_rest_delete_discount", $discount, $request ); |
|
| 524 | + /** |
|
| 525 | + * Fires immediately after a single discount is deleted via the REST API. |
|
| 526 | + * |
|
| 527 | + * |
|
| 528 | + * @since 1.0.13 |
|
| 529 | + * |
|
| 530 | + * @param WP_POST $discount The deleted discount. |
|
| 531 | + * @param WP_REST_Request $request The request sent to the API. |
|
| 532 | + */ |
|
| 533 | + do_action( "wpinv_rest_delete_discount", $discount, $request ); |
|
| 534 | 534 | |
| 535 | - return $response; |
|
| 535 | + return $response; |
|
| 536 | 536 | |
| 537 | - } |
|
| 537 | + } |
|
| 538 | 538 | |
| 539 | 539 | |
| 540 | 540 | /** |
| 541 | - * Retrieves the query params for the discount collection. |
|
| 542 | - * |
|
| 543 | - * @since 1.0.13 |
|
| 544 | - * |
|
| 545 | - * @return array Collection parameters. |
|
| 546 | - */ |
|
| 547 | - public function get_collection_params() { |
|
| 541 | + * Retrieves the query params for the discount collection. |
|
| 542 | + * |
|
| 543 | + * @since 1.0.13 |
|
| 544 | + * |
|
| 545 | + * @return array Collection parameters. |
|
| 546 | + */ |
|
| 547 | + public function get_collection_params() { |
|
| 548 | 548 | |
| 549 | 549 | $query_params = array( |
| 550 | 550 | |
@@ -558,27 +558,27 @@ discard block |
||
| 558 | 558 | |
| 559 | 559 | // Discount types |
| 560 | 560 | 'type' => array( |
| 561 | - 'description' => __( 'Type of discounts to fetch.', 'invoicing' ), |
|
| 562 | - 'type' => 'array', |
|
| 563 | - 'default' => array_keys( wpinv_get_discount_types() ), |
|
| 564 | - 'items' => array( |
|
| 561 | + 'description' => __( 'Type of discounts to fetch.', 'invoicing' ), |
|
| 562 | + 'type' => 'array', |
|
| 563 | + 'default' => array_keys( wpinv_get_discount_types() ), |
|
| 564 | + 'items' => array( |
|
| 565 | 565 | 'enum' => array_keys( wpinv_get_discount_types() ), |
| 566 | 566 | 'type' => 'string', |
| 567 | 567 | ), |
| 568 | - ), |
|
| 568 | + ), |
|
| 569 | 569 | |
| 570 | - // Number of results per page |
|
| 570 | + // Number of results per page |
|
| 571 | 571 | 'limit' => array( |
| 572 | - 'description' => __( 'Number of discounts to fetch.', 'invoicing' ), |
|
| 573 | - 'type' => 'integer', |
|
| 574 | - 'default' => (int) get_option( 'posts_per_page' ), |
|
| 572 | + 'description' => __( 'Number of discounts to fetch.', 'invoicing' ), |
|
| 573 | + 'type' => 'integer', |
|
| 574 | + 'default' => (int) get_option( 'posts_per_page' ), |
|
| 575 | 575 | ), |
| 576 | 576 | |
| 577 | 577 | // Pagination |
| 578 | 578 | 'page' => array( |
| 579 | - 'description' => __( 'Current page to fetch.', 'invoicing' ), |
|
| 580 | - 'type' => 'integer', |
|
| 581 | - 'default' => 1, |
|
| 579 | + 'description' => __( 'Current page to fetch.', 'invoicing' ), |
|
| 580 | + 'type' => 'integer', |
|
| 581 | + 'default' => 1, |
|
| 582 | 582 | ), |
| 583 | 583 | |
| 584 | 584 | // Exclude certain items |
@@ -601,9 +601,9 @@ discard block |
||
| 601 | 601 | 'date', |
| 602 | 602 | 'ID', |
| 603 | 603 | 'modified', |
| 604 | - 'title', |
|
| 605 | - 'relevance', |
|
| 606 | - 'rand' |
|
| 604 | + 'title', |
|
| 605 | + 'relevance', |
|
| 606 | + 'rand' |
|
| 607 | 607 | ), |
| 608 | 608 | ), |
| 609 | 609 | |
@@ -613,598 +613,598 @@ discard block |
||
| 613 | 613 | 'type' => 'string', |
| 614 | 614 | 'default' => 'DESC', |
| 615 | 615 | 'enum' => array( 'ASC', 'DESC' ), |
| 616 | - ), |
|
| 616 | + ), |
|
| 617 | 617 | |
| 618 | - // Search term |
|
| 618 | + // Search term |
|
| 619 | 619 | 'search' => array( |
| 620 | - 'description' => __( 'Return discounts that match the search term.', 'invoicing' ), |
|
| 621 | - 'type' => 'string', |
|
| 620 | + 'description' => __( 'Return discounts that match the search term.', 'invoicing' ), |
|
| 621 | + 'type' => 'string', |
|
| 622 | 622 | ), |
| 623 | 623 | ); |
| 624 | 624 | |
| 625 | - /** |
|
| 626 | - * Filter collection parameters for the discounts controller. |
|
| 627 | - * |
|
| 628 | - * |
|
| 629 | - * @since 1.0.13 |
|
| 630 | - * |
|
| 631 | - * @param array $query_params JSON Schema-formatted collection parameters. |
|
| 632 | - */ |
|
| 633 | - return apply_filters( "wpinv_rest_discounts_collection_params", $query_params ); |
|
| 625 | + /** |
|
| 626 | + * Filter collection parameters for the discounts controller. |
|
| 627 | + * |
|
| 628 | + * |
|
| 629 | + * @since 1.0.13 |
|
| 630 | + * |
|
| 631 | + * @param array $query_params JSON Schema-formatted collection parameters. |
|
| 632 | + */ |
|
| 633 | + return apply_filters( "wpinv_rest_discounts_collection_params", $query_params ); |
|
| 634 | 634 | } |
| 635 | 635 | |
| 636 | 636 | /** |
| 637 | - * Checks if a given post type can be viewed or managed. |
|
| 638 | - * |
|
| 639 | - * @since 1.0.13 |
|
| 640 | - * |
|
| 641 | - * @param object|string $post_type Post type name or object. |
|
| 642 | - * @return bool Whether the post type is allowed in REST. |
|
| 643 | - */ |
|
| 644 | - protected function check_is_post_type_allowed( $post_type ) { |
|
| 645 | - return true; |
|
| 646 | - } |
|
| 647 | - |
|
| 648 | - /** |
|
| 649 | - * Prepares a single item for create or update. |
|
| 650 | - * |
|
| 651 | - * @since 1.0.13 |
|
| 652 | - * |
|
| 653 | - * @param WP_REST_Request $request Request object. |
|
| 654 | - * @return array|WP_Error Discount Properties or WP_Error. |
|
| 655 | - */ |
|
| 656 | - protected function prepare_item_for_database( $request ) { |
|
| 657 | - $prepared_item = new stdClass(); |
|
| 658 | - $prepared_item->meta_input = array(); |
|
| 659 | - |
|
| 660 | - // Post ID. |
|
| 661 | - if ( isset( $request['id'] ) ) { |
|
| 662 | - $existing_item = $this->get_post( $request['id'] ); |
|
| 663 | - if ( is_wp_error( $existing_item ) ) { |
|
| 664 | - return $existing_item; |
|
| 665 | - } |
|
| 666 | - |
|
| 667 | - $prepared_item->ID = $existing_item->ID; |
|
| 668 | - } |
|
| 669 | - |
|
| 670 | - $schema = $this->get_item_schema(); |
|
| 671 | - |
|
| 672 | - // item title. |
|
| 673 | - if ( ! empty( $schema['properties']['title'] ) && isset( $request['title'] ) ) { |
|
| 674 | - $prepared_item->post_title = sanitize_text_field( $request['title'] ); |
|
| 675 | - } |
|
| 676 | - |
|
| 677 | - // item status. |
|
| 678 | - if ( ! empty( $schema['properties']['status'] ) && isset( $request['status'] ) && in_array( $request['status'], array_keys( get_post_stati( array( 'internal' => false ) ) ) ) ) { |
|
| 679 | - $prepared_item->post_status = sanitize_text_field( $request['status'] ); |
|
| 680 | - } |
|
| 681 | - |
|
| 682 | - // Code. |
|
| 683 | - if ( ! empty( $schema['properties']['code'] ) && isset( $request['code'] ) ) { |
|
| 684 | - $prepared_item->meta_input['_wpi_discount_code'] = trim( $request['code'] ); |
|
| 685 | - } |
|
| 686 | - |
|
| 687 | - // Type. |
|
| 688 | - if ( ! empty( $schema['properties']['type'] ) && isset( $request['type'] ) && in_array( $request['type'], array_keys( wpinv_get_discount_types() ) ) ) { |
|
| 689 | - $prepared_item->meta_input['_wpi_discount_type'] = trim( $request['type'] ); |
|
| 690 | - } |
|
| 691 | - |
|
| 692 | - // Amount. |
|
| 693 | - if ( ! empty( $schema['properties']['amount'] ) && isset( $request['amount'] ) ) { |
|
| 694 | - $prepared_item->meta_input['_wpi_discount_amount'] = floatval( $request['amount'] ); |
|
| 695 | - } |
|
| 696 | - |
|
| 697 | - // Items. |
|
| 698 | - if ( ! empty( $schema['properties']['items'] ) && isset( $request['items'] ) ) { |
|
| 699 | - $prepared_item->meta_input['_wpi_discount_items'] = wpinv_parse_list( $request['items'] ); |
|
| 700 | - } |
|
| 701 | - |
|
| 702 | - // Excluded Items. |
|
| 703 | - if ( ! empty( $schema['properties']['exclude_items'] ) && isset( $request['exclude_items'] ) ) { |
|
| 704 | - $prepared_item->meta_input['_wpi_discount_excluded_items'] = wpinv_parse_list( $request['exclude_items'] ); |
|
| 705 | - } |
|
| 706 | - |
|
| 707 | - // Start date. |
|
| 708 | - if ( ! empty( $schema['properties']['start_date'] ) && isset( $request['start_date'] ) ) { |
|
| 709 | - $prepared_item->meta_input['_wpi_discount_start'] = trim( $request['start_date'] ); |
|
| 710 | - } |
|
| 711 | - |
|
| 712 | - // End date. |
|
| 713 | - if ( ! empty( $schema['properties']['end_date'] ) && isset( $request['end_date'] ) ) { |
|
| 714 | - $prepared_item->meta_input['_wpi_discount_expiration'] = trim( $request['end_date'] ); |
|
| 715 | - } |
|
| 716 | - |
|
| 717 | - // Minimum amount. |
|
| 718 | - if ( ! empty( $schema['properties']['minimum_amount'] ) && isset( $request['minimum_amount'] ) ) { |
|
| 719 | - $prepared_item->meta_input['_wpi_discount_min_total'] = floatval( $request['minimum_amount'] ); |
|
| 720 | - } |
|
| 721 | - |
|
| 722 | - // Maximum amount. |
|
| 723 | - if ( ! empty( $schema['properties']['maximum_amount'] ) && isset( $request['maximum_amount'] ) ) { |
|
| 724 | - $prepared_item->meta_input['_wpi_discount_max_total'] = floatval( $request['maximum_amount'] ); |
|
| 725 | - } |
|
| 726 | - |
|
| 727 | - // Recurring. |
|
| 728 | - if ( ! empty( $schema['properties']['recurring'] ) && isset( $request['recurring'] ) ) { |
|
| 729 | - $prepared_item->meta_input['_wpi_discount_is_recurring'] = empty( (int) $request['recurring'] ) ? 0 : 1; |
|
| 730 | - } |
|
| 731 | - |
|
| 732 | - // Maximum uses. |
|
| 733 | - if ( ! empty( $schema['properties']['max_uses'] ) && isset( $request['max_uses'] ) ) { |
|
| 734 | - $prepared_item->meta_input['_wpi_discount_max_uses'] = intval( $request['max_uses'] ); |
|
| 735 | - } |
|
| 736 | - |
|
| 737 | - // Single use. |
|
| 738 | - if ( ! empty( $schema['properties']['single_use'] ) && isset( $request['single_use'] ) ) { |
|
| 739 | - $prepared_item->meta_input['_wpi_discount_is_single_use'] = empty( (int) $request['single_use'] ) ? 0 : 1; |
|
| 740 | - } |
|
| 741 | - |
|
| 742 | - $discount_data = (array) wp_unslash( $prepared_item ); |
|
| 743 | - |
|
| 744 | - /** |
|
| 745 | - * Filters an item before it is inserted via the REST API. |
|
| 746 | - * |
|
| 747 | - * @since 1.0.13 |
|
| 748 | - * |
|
| 749 | - * @param array $discount_data An array of discount data |
|
| 750 | - * @param WP_REST_Request $request Request object. |
|
| 751 | - */ |
|
| 752 | - return apply_filters( "wpinv_rest_pre_insert_discount", $discount_data, $request ); |
|
| 753 | - |
|
| 754 | - } |
|
| 755 | - |
|
| 756 | - /** |
|
| 757 | - * Prepares a single discount output for response. |
|
| 758 | - * |
|
| 759 | - * @since 1.0.13 |
|
| 760 | - * |
|
| 761 | - * @param WP_Post $discount WP_Post object. |
|
| 762 | - * @param WP_REST_Request $request Request object. |
|
| 763 | - * @return WP_REST_Response Response object. |
|
| 764 | - */ |
|
| 765 | - public function prepare_item_for_response( $discount, $request ) { |
|
| 766 | - |
|
| 767 | - $GLOBALS['post'] = get_post( $discount->ID ); |
|
| 768 | - |
|
| 769 | - setup_postdata( $discount->ID ); |
|
| 770 | - |
|
| 771 | - // Fetch the fields to include in this response. |
|
| 772 | - $fields = $this->get_fields_for_response( $request ); |
|
| 773 | - |
|
| 774 | - // Base fields for every discount. |
|
| 775 | - $data = array(); |
|
| 776 | - |
|
| 777 | - // Set up ID. |
|
| 778 | - if ( rest_is_field_included( 'id', $fields ) ) { |
|
| 779 | - $data['id'] = $discount->ID; |
|
| 780 | - } |
|
| 781 | - |
|
| 782 | - // Title. |
|
| 783 | - if ( rest_is_field_included( 'title', $fields ) ) { |
|
| 784 | - $data['title'] = get_the_title( $discount->ID ); |
|
| 785 | - } |
|
| 786 | - |
|
| 787 | - // Code. |
|
| 788 | - if ( rest_is_field_included( 'code', $fields ) ) { |
|
| 789 | - $data['code'] = wpinv_get_discount_code( $discount->ID ); |
|
| 790 | - } |
|
| 791 | - |
|
| 792 | - // Type. |
|
| 793 | - if ( rest_is_field_included( 'type', $fields ) ) { |
|
| 794 | - $data['type'] = wpinv_get_discount_type( $discount->ID ); |
|
| 795 | - } |
|
| 796 | - |
|
| 797 | - // Amount. |
|
| 798 | - if ( rest_is_field_included( 'amount', $fields ) ) { |
|
| 799 | - $data['amount'] = wpinv_get_discount_amount( $discount->ID ); |
|
| 800 | - } |
|
| 801 | - |
|
| 802 | - // Status. |
|
| 803 | - if ( rest_is_field_included( 'status', $fields ) ) { |
|
| 804 | - $data['status'] = get_post_status( $discount->ID ); |
|
| 805 | - } |
|
| 806 | - |
|
| 807 | - // Items. |
|
| 808 | - if ( rest_is_field_included( 'items', $fields ) ) { |
|
| 809 | - $data['items'] = wpinv_get_discount_item_reqs( $discount->ID ); |
|
| 810 | - } |
|
| 811 | - |
|
| 812 | - // Excluded Items. |
|
| 813 | - if ( rest_is_field_included( 'exclude_items', $fields ) ) { |
|
| 814 | - $data['exclude_items'] = wpinv_get_discount_excluded_items( $discount->ID ); |
|
| 815 | - } |
|
| 816 | - |
|
| 817 | - // Start date. |
|
| 818 | - if ( rest_is_field_included( 'start_date', $fields ) ) { |
|
| 819 | - $data['start_date'] = wpinv_get_discount_start_date( $discount->ID ); |
|
| 820 | - } |
|
| 821 | - |
|
| 822 | - // End date. |
|
| 823 | - if ( rest_is_field_included( 'end_date', $fields ) ) { |
|
| 824 | - $data['end_date'] = wpinv_get_discount_expiration( $discount->ID ); |
|
| 825 | - } |
|
| 826 | - |
|
| 827 | - // Minimum amount. |
|
| 828 | - if ( rest_is_field_included( 'minimum_amount', $fields ) ) { |
|
| 829 | - $data['minimum_amount'] = wpinv_get_discount_min_total( $discount->ID ); |
|
| 830 | - } |
|
| 831 | - |
|
| 832 | - // Maximum amount. |
|
| 833 | - if ( rest_is_field_included( 'maximum_amount', $fields ) ) { |
|
| 834 | - $data['maximum_amount'] = wpinv_get_discount_max_total( $discount->ID ); |
|
| 835 | - } |
|
| 836 | - |
|
| 837 | - // Recurring. |
|
| 838 | - if ( rest_is_field_included( 'recurring', $fields ) ) { |
|
| 839 | - $data['recurring'] = wpinv_discount_is_recurring( $discount->ID ); |
|
| 840 | - } |
|
| 841 | - |
|
| 842 | - // Maximum uses. |
|
| 843 | - if ( rest_is_field_included( 'max_uses', $fields ) ) { |
|
| 844 | - $data['max_uses'] = wpinv_get_discount_max_uses( $discount->ID ); |
|
| 845 | - } |
|
| 846 | - |
|
| 847 | - // Single use. |
|
| 848 | - if ( rest_is_field_included( 'single_use', $fields ) ) { |
|
| 849 | - $data['single_use'] = wpinv_discount_is_single_use( $discount->ID ); |
|
| 850 | - } |
|
| 851 | - |
|
| 852 | - $context = ! empty( $request['context'] ) ? $request['context'] : 'view'; |
|
| 853 | - $data = $this->add_additional_fields_to_object( $data, $request ); |
|
| 854 | - $data = $this->filter_response_by_context( $data, $context ); |
|
| 855 | - |
|
| 856 | - // Wrap the data in a response object. |
|
| 857 | - $response = rest_ensure_response( $data ); |
|
| 858 | - |
|
| 859 | - $links = $this->prepare_links( $discount ); |
|
| 860 | - $response->add_links( $links ); |
|
| 861 | - |
|
| 862 | - if ( ! empty( $links['self']['href'] ) ) { |
|
| 863 | - $actions = $this->get_available_actions( $discount, $request ); |
|
| 864 | - |
|
| 865 | - $self = $links['self']['href']; |
|
| 866 | - |
|
| 867 | - foreach ( $actions as $rel ) { |
|
| 868 | - $response->add_link( $rel, $self ); |
|
| 869 | - } |
|
| 870 | - } |
|
| 871 | - |
|
| 872 | - /** |
|
| 873 | - * Filters the discount data for a response. |
|
| 874 | - * |
|
| 875 | - * @since 1.0.13 |
|
| 876 | - * |
|
| 877 | - * @param WP_REST_Response $response The response object. |
|
| 878 | - * @param WP_Post $discount The discount post object. |
|
| 879 | - * @param WP_REST_Request $request Request object. |
|
| 880 | - */ |
|
| 881 | - return apply_filters( "wpinv_rest_prepare_discount", $response, $discount, $request ); |
|
| 882 | - } |
|
| 883 | - |
|
| 884 | - /** |
|
| 885 | - * Gets an array of fields to be included on the response. |
|
| 886 | - * |
|
| 887 | - * Included fields are based on item schema and `_fields=` request argument. |
|
| 888 | - * |
|
| 889 | - * @since 1.0.13 |
|
| 890 | - * |
|
| 891 | - * @param WP_REST_Request $request Full details about the request. |
|
| 892 | - * @return array Fields to be included in the response. |
|
| 893 | - */ |
|
| 894 | - public function get_fields_for_response( $request ) { |
|
| 895 | - $schema = $this->get_item_schema(); |
|
| 896 | - $properties = isset( $schema['properties'] ) ? $schema['properties'] : array(); |
|
| 897 | - |
|
| 898 | - $additional_fields = $this->get_additional_fields(); |
|
| 899 | - foreach ( $additional_fields as $field_name => $field_options ) { |
|
| 900 | - // For back-compat, include any field with an empty schema |
|
| 901 | - // because it won't be present in $this->get_item_schema(). |
|
| 902 | - if ( is_null( $field_options['schema'] ) ) { |
|
| 903 | - $properties[ $field_name ] = $field_options; |
|
| 904 | - } |
|
| 905 | - } |
|
| 906 | - |
|
| 907 | - // Exclude fields that specify a different context than the request context. |
|
| 908 | - $context = $request['context']; |
|
| 909 | - if ( $context ) { |
|
| 910 | - foreach ( $properties as $name => $options ) { |
|
| 911 | - if ( ! empty( $options['context'] ) && ! in_array( $context, $options['context'], true ) ) { |
|
| 912 | - unset( $properties[ $name ] ); |
|
| 913 | - } |
|
| 914 | - } |
|
| 915 | - } |
|
| 916 | - |
|
| 917 | - $fields = array_keys( $properties ); |
|
| 918 | - |
|
| 919 | - if ( ! isset( $request['_fields'] ) ) { |
|
| 920 | - return $fields; |
|
| 921 | - } |
|
| 922 | - $requested_fields = wpinv_parse_list( $request['_fields'] ); |
|
| 923 | - if ( 0 === count( $requested_fields ) ) { |
|
| 924 | - return $fields; |
|
| 925 | - } |
|
| 926 | - // Trim off outside whitespace from the comma delimited list. |
|
| 927 | - $requested_fields = array_map( 'trim', $requested_fields ); |
|
| 928 | - // Always persist 'id', because it can be needed for add_additional_fields_to_object(). |
|
| 929 | - if ( in_array( 'id', $fields, true ) ) { |
|
| 930 | - $requested_fields[] = 'id'; |
|
| 931 | - } |
|
| 932 | - // Return the list of all requested fields which appear in the schema. |
|
| 933 | - return array_reduce( |
|
| 934 | - $requested_fields, |
|
| 935 | - function( $response_fields, $field ) use ( $fields ) { |
|
| 936 | - if ( in_array( $field, $fields, true ) ) { |
|
| 937 | - $response_fields[] = $field; |
|
| 938 | - return $response_fields; |
|
| 939 | - } |
|
| 940 | - // Check for nested fields if $field is not a direct match. |
|
| 941 | - $nested_fields = explode( '.', $field ); |
|
| 942 | - // A nested field is included so long as its top-level property is |
|
| 943 | - // present in the schema. |
|
| 944 | - if ( in_array( $nested_fields[0], $fields, true ) ) { |
|
| 945 | - $response_fields[] = $field; |
|
| 946 | - } |
|
| 947 | - return $response_fields; |
|
| 948 | - }, |
|
| 949 | - array() |
|
| 950 | - ); |
|
| 951 | - } |
|
| 952 | - |
|
| 953 | - /** |
|
| 954 | - * Retrieves the discount's schema, conforming to JSON Schema. |
|
| 955 | - * |
|
| 956 | - * @since 1.0.13 |
|
| 957 | - * |
|
| 958 | - * @return array Discount schema data. |
|
| 959 | - */ |
|
| 960 | - public function get_item_schema() { |
|
| 961 | - |
|
| 962 | - // Maybe retrieve the schema from cache. |
|
| 963 | - if ( empty( $this->schema ) ) { |
|
| 964 | - return $this->add_additional_fields_schema( $this->schema ); |
|
| 965 | - } |
|
| 966 | - |
|
| 967 | - $schema = array( |
|
| 968 | - '$schema' => 'http://json-schema.org/draft-04/schema#', |
|
| 969 | - 'title' => $this->post_type, |
|
| 970 | - 'type' => 'object', |
|
| 971 | - |
|
| 972 | - // Base properties for every Item. |
|
| 973 | - 'properties' => array( |
|
| 974 | - |
|
| 975 | - 'id' => array( |
|
| 976 | - 'description' => __( 'Unique identifier for the discount.', 'invoicing' ), |
|
| 977 | - 'type' => 'integer', |
|
| 978 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
| 979 | - 'readonly' => true, |
|
| 980 | - ), |
|
| 981 | - |
|
| 982 | - 'title' => array( |
|
| 983 | - 'description' => __( 'The title for the discount.', 'invoicing' ), |
|
| 984 | - 'type' => 'string', |
|
| 985 | - 'context' => array( 'view', 'edit' ), |
|
| 986 | - ), |
|
| 987 | - |
|
| 988 | - 'code' => array( |
|
| 989 | - 'description' => __( 'The discount code.', 'invoicing' ), |
|
| 990 | - 'type' => 'string', |
|
| 991 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
| 992 | - 'required' => true, |
|
| 993 | - ), |
|
| 994 | - |
|
| 995 | - 'type' => array( |
|
| 996 | - 'description' => __( 'The type of discount.', 'invoicing' ), |
|
| 997 | - 'type' => 'string', |
|
| 998 | - 'enum' => array_keys( wpinv_get_discount_types() ), |
|
| 999 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
| 1000 | - 'default' => 'percentage', |
|
| 1001 | - ), |
|
| 1002 | - |
|
| 1003 | - 'amount' => array( |
|
| 1004 | - 'description' => __( 'The discount value.', 'invoicing' ), |
|
| 1005 | - 'type' => 'number', |
|
| 1006 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
| 1007 | - 'required' => true, |
|
| 1008 | - ), |
|
| 1009 | - |
|
| 1010 | - 'status' => array( |
|
| 1011 | - 'description' => __( 'A named status for the discount.', 'invoicing' ), |
|
| 1012 | - 'type' => 'string', |
|
| 1013 | - 'enum' => array_keys( get_post_stati( array( 'internal' => false ) ) ), |
|
| 1014 | - 'context' => array( 'view', 'edit' ), |
|
| 1015 | - ), |
|
| 1016 | - |
|
| 1017 | - 'items' => array( |
|
| 1018 | - 'description' => __( 'Items which need to be in the cart to use this discount or, for "Item Discounts", which items are discounted. If left blank, this discount will be used on any item.', 'invoicing' ), |
|
| 1019 | - 'type' => 'array', |
|
| 1020 | - 'context' => array( 'view', 'edit' ), |
|
| 1021 | - ), |
|
| 1022 | - |
|
| 1023 | - 'exclude_items' => array( |
|
| 1024 | - 'description' => __( 'Items which are NOT allowed to use this discount.', 'invoicing' ), |
|
| 1025 | - 'type' => 'array', |
|
| 1026 | - 'context' => array( 'view', 'edit' ), |
|
| 1027 | - ), |
|
| 1028 | - |
|
| 1029 | - 'start_date' => array( |
|
| 1030 | - 'description' => __( 'The start date for the discount in the format of yyyy-mm-dd hh:mm:ss . If provided, the discount can only be used after or on this date.', 'invoicing' ), |
|
| 1031 | - 'type' => 'string', |
|
| 1032 | - 'context' => array( 'view', 'edit' ), |
|
| 1033 | - ), |
|
| 1034 | - |
|
| 1035 | - 'end_date' => array( |
|
| 1036 | - 'description' => __( 'The expiration date for the discount.', 'invoicing' ), |
|
| 1037 | - 'type' => 'string', |
|
| 1038 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
| 1039 | - ), |
|
| 637 | + * Checks if a given post type can be viewed or managed. |
|
| 638 | + * |
|
| 639 | + * @since 1.0.13 |
|
| 640 | + * |
|
| 641 | + * @param object|string $post_type Post type name or object. |
|
| 642 | + * @return bool Whether the post type is allowed in REST. |
|
| 643 | + */ |
|
| 644 | + protected function check_is_post_type_allowed( $post_type ) { |
|
| 645 | + return true; |
|
| 646 | + } |
|
| 647 | + |
|
| 648 | + /** |
|
| 649 | + * Prepares a single item for create or update. |
|
| 650 | + * |
|
| 651 | + * @since 1.0.13 |
|
| 652 | + * |
|
| 653 | + * @param WP_REST_Request $request Request object. |
|
| 654 | + * @return array|WP_Error Discount Properties or WP_Error. |
|
| 655 | + */ |
|
| 656 | + protected function prepare_item_for_database( $request ) { |
|
| 657 | + $prepared_item = new stdClass(); |
|
| 658 | + $prepared_item->meta_input = array(); |
|
| 659 | + |
|
| 660 | + // Post ID. |
|
| 661 | + if ( isset( $request['id'] ) ) { |
|
| 662 | + $existing_item = $this->get_post( $request['id'] ); |
|
| 663 | + if ( is_wp_error( $existing_item ) ) { |
|
| 664 | + return $existing_item; |
|
| 665 | + } |
|
| 666 | + |
|
| 667 | + $prepared_item->ID = $existing_item->ID; |
|
| 668 | + } |
|
| 669 | + |
|
| 670 | + $schema = $this->get_item_schema(); |
|
| 671 | + |
|
| 672 | + // item title. |
|
| 673 | + if ( ! empty( $schema['properties']['title'] ) && isset( $request['title'] ) ) { |
|
| 674 | + $prepared_item->post_title = sanitize_text_field( $request['title'] ); |
|
| 675 | + } |
|
| 676 | + |
|
| 677 | + // item status. |
|
| 678 | + if ( ! empty( $schema['properties']['status'] ) && isset( $request['status'] ) && in_array( $request['status'], array_keys( get_post_stati( array( 'internal' => false ) ) ) ) ) { |
|
| 679 | + $prepared_item->post_status = sanitize_text_field( $request['status'] ); |
|
| 680 | + } |
|
| 681 | + |
|
| 682 | + // Code. |
|
| 683 | + if ( ! empty( $schema['properties']['code'] ) && isset( $request['code'] ) ) { |
|
| 684 | + $prepared_item->meta_input['_wpi_discount_code'] = trim( $request['code'] ); |
|
| 685 | + } |
|
| 686 | + |
|
| 687 | + // Type. |
|
| 688 | + if ( ! empty( $schema['properties']['type'] ) && isset( $request['type'] ) && in_array( $request['type'], array_keys( wpinv_get_discount_types() ) ) ) { |
|
| 689 | + $prepared_item->meta_input['_wpi_discount_type'] = trim( $request['type'] ); |
|
| 690 | + } |
|
| 691 | + |
|
| 692 | + // Amount. |
|
| 693 | + if ( ! empty( $schema['properties']['amount'] ) && isset( $request['amount'] ) ) { |
|
| 694 | + $prepared_item->meta_input['_wpi_discount_amount'] = floatval( $request['amount'] ); |
|
| 695 | + } |
|
| 696 | + |
|
| 697 | + // Items. |
|
| 698 | + if ( ! empty( $schema['properties']['items'] ) && isset( $request['items'] ) ) { |
|
| 699 | + $prepared_item->meta_input['_wpi_discount_items'] = wpinv_parse_list( $request['items'] ); |
|
| 700 | + } |
|
| 701 | + |
|
| 702 | + // Excluded Items. |
|
| 703 | + if ( ! empty( $schema['properties']['exclude_items'] ) && isset( $request['exclude_items'] ) ) { |
|
| 704 | + $prepared_item->meta_input['_wpi_discount_excluded_items'] = wpinv_parse_list( $request['exclude_items'] ); |
|
| 705 | + } |
|
| 706 | + |
|
| 707 | + // Start date. |
|
| 708 | + if ( ! empty( $schema['properties']['start_date'] ) && isset( $request['start_date'] ) ) { |
|
| 709 | + $prepared_item->meta_input['_wpi_discount_start'] = trim( $request['start_date'] ); |
|
| 710 | + } |
|
| 711 | + |
|
| 712 | + // End date. |
|
| 713 | + if ( ! empty( $schema['properties']['end_date'] ) && isset( $request['end_date'] ) ) { |
|
| 714 | + $prepared_item->meta_input['_wpi_discount_expiration'] = trim( $request['end_date'] ); |
|
| 715 | + } |
|
| 716 | + |
|
| 717 | + // Minimum amount. |
|
| 718 | + if ( ! empty( $schema['properties']['minimum_amount'] ) && isset( $request['minimum_amount'] ) ) { |
|
| 719 | + $prepared_item->meta_input['_wpi_discount_min_total'] = floatval( $request['minimum_amount'] ); |
|
| 720 | + } |
|
| 721 | + |
|
| 722 | + // Maximum amount. |
|
| 723 | + if ( ! empty( $schema['properties']['maximum_amount'] ) && isset( $request['maximum_amount'] ) ) { |
|
| 724 | + $prepared_item->meta_input['_wpi_discount_max_total'] = floatval( $request['maximum_amount'] ); |
|
| 725 | + } |
|
| 726 | + |
|
| 727 | + // Recurring. |
|
| 728 | + if ( ! empty( $schema['properties']['recurring'] ) && isset( $request['recurring'] ) ) { |
|
| 729 | + $prepared_item->meta_input['_wpi_discount_is_recurring'] = empty( (int) $request['recurring'] ) ? 0 : 1; |
|
| 730 | + } |
|
| 731 | + |
|
| 732 | + // Maximum uses. |
|
| 733 | + if ( ! empty( $schema['properties']['max_uses'] ) && isset( $request['max_uses'] ) ) { |
|
| 734 | + $prepared_item->meta_input['_wpi_discount_max_uses'] = intval( $request['max_uses'] ); |
|
| 735 | + } |
|
| 736 | + |
|
| 737 | + // Single use. |
|
| 738 | + if ( ! empty( $schema['properties']['single_use'] ) && isset( $request['single_use'] ) ) { |
|
| 739 | + $prepared_item->meta_input['_wpi_discount_is_single_use'] = empty( (int) $request['single_use'] ) ? 0 : 1; |
|
| 740 | + } |
|
| 741 | + |
|
| 742 | + $discount_data = (array) wp_unslash( $prepared_item ); |
|
| 743 | + |
|
| 744 | + /** |
|
| 745 | + * Filters an item before it is inserted via the REST API. |
|
| 746 | + * |
|
| 747 | + * @since 1.0.13 |
|
| 748 | + * |
|
| 749 | + * @param array $discount_data An array of discount data |
|
| 750 | + * @param WP_REST_Request $request Request object. |
|
| 751 | + */ |
|
| 752 | + return apply_filters( "wpinv_rest_pre_insert_discount", $discount_data, $request ); |
|
| 753 | + |
|
| 754 | + } |
|
| 755 | + |
|
| 756 | + /** |
|
| 757 | + * Prepares a single discount output for response. |
|
| 758 | + * |
|
| 759 | + * @since 1.0.13 |
|
| 760 | + * |
|
| 761 | + * @param WP_Post $discount WP_Post object. |
|
| 762 | + * @param WP_REST_Request $request Request object. |
|
| 763 | + * @return WP_REST_Response Response object. |
|
| 764 | + */ |
|
| 765 | + public function prepare_item_for_response( $discount, $request ) { |
|
| 766 | + |
|
| 767 | + $GLOBALS['post'] = get_post( $discount->ID ); |
|
| 768 | + |
|
| 769 | + setup_postdata( $discount->ID ); |
|
| 770 | + |
|
| 771 | + // Fetch the fields to include in this response. |
|
| 772 | + $fields = $this->get_fields_for_response( $request ); |
|
| 773 | + |
|
| 774 | + // Base fields for every discount. |
|
| 775 | + $data = array(); |
|
| 776 | + |
|
| 777 | + // Set up ID. |
|
| 778 | + if ( rest_is_field_included( 'id', $fields ) ) { |
|
| 779 | + $data['id'] = $discount->ID; |
|
| 780 | + } |
|
| 781 | + |
|
| 782 | + // Title. |
|
| 783 | + if ( rest_is_field_included( 'title', $fields ) ) { |
|
| 784 | + $data['title'] = get_the_title( $discount->ID ); |
|
| 785 | + } |
|
| 786 | + |
|
| 787 | + // Code. |
|
| 788 | + if ( rest_is_field_included( 'code', $fields ) ) { |
|
| 789 | + $data['code'] = wpinv_get_discount_code( $discount->ID ); |
|
| 790 | + } |
|
| 791 | + |
|
| 792 | + // Type. |
|
| 793 | + if ( rest_is_field_included( 'type', $fields ) ) { |
|
| 794 | + $data['type'] = wpinv_get_discount_type( $discount->ID ); |
|
| 795 | + } |
|
| 796 | + |
|
| 797 | + // Amount. |
|
| 798 | + if ( rest_is_field_included( 'amount', $fields ) ) { |
|
| 799 | + $data['amount'] = wpinv_get_discount_amount( $discount->ID ); |
|
| 800 | + } |
|
| 801 | + |
|
| 802 | + // Status. |
|
| 803 | + if ( rest_is_field_included( 'status', $fields ) ) { |
|
| 804 | + $data['status'] = get_post_status( $discount->ID ); |
|
| 805 | + } |
|
| 806 | + |
|
| 807 | + // Items. |
|
| 808 | + if ( rest_is_field_included( 'items', $fields ) ) { |
|
| 809 | + $data['items'] = wpinv_get_discount_item_reqs( $discount->ID ); |
|
| 810 | + } |
|
| 811 | + |
|
| 812 | + // Excluded Items. |
|
| 813 | + if ( rest_is_field_included( 'exclude_items', $fields ) ) { |
|
| 814 | + $data['exclude_items'] = wpinv_get_discount_excluded_items( $discount->ID ); |
|
| 815 | + } |
|
| 816 | + |
|
| 817 | + // Start date. |
|
| 818 | + if ( rest_is_field_included( 'start_date', $fields ) ) { |
|
| 819 | + $data['start_date'] = wpinv_get_discount_start_date( $discount->ID ); |
|
| 820 | + } |
|
| 821 | + |
|
| 822 | + // End date. |
|
| 823 | + if ( rest_is_field_included( 'end_date', $fields ) ) { |
|
| 824 | + $data['end_date'] = wpinv_get_discount_expiration( $discount->ID ); |
|
| 825 | + } |
|
| 826 | + |
|
| 827 | + // Minimum amount. |
|
| 828 | + if ( rest_is_field_included( 'minimum_amount', $fields ) ) { |
|
| 829 | + $data['minimum_amount'] = wpinv_get_discount_min_total( $discount->ID ); |
|
| 830 | + } |
|
| 831 | + |
|
| 832 | + // Maximum amount. |
|
| 833 | + if ( rest_is_field_included( 'maximum_amount', $fields ) ) { |
|
| 834 | + $data['maximum_amount'] = wpinv_get_discount_max_total( $discount->ID ); |
|
| 835 | + } |
|
| 836 | + |
|
| 837 | + // Recurring. |
|
| 838 | + if ( rest_is_field_included( 'recurring', $fields ) ) { |
|
| 839 | + $data['recurring'] = wpinv_discount_is_recurring( $discount->ID ); |
|
| 840 | + } |
|
| 841 | + |
|
| 842 | + // Maximum uses. |
|
| 843 | + if ( rest_is_field_included( 'max_uses', $fields ) ) { |
|
| 844 | + $data['max_uses'] = wpinv_get_discount_max_uses( $discount->ID ); |
|
| 845 | + } |
|
| 846 | + |
|
| 847 | + // Single use. |
|
| 848 | + if ( rest_is_field_included( 'single_use', $fields ) ) { |
|
| 849 | + $data['single_use'] = wpinv_discount_is_single_use( $discount->ID ); |
|
| 850 | + } |
|
| 851 | + |
|
| 852 | + $context = ! empty( $request['context'] ) ? $request['context'] : 'view'; |
|
| 853 | + $data = $this->add_additional_fields_to_object( $data, $request ); |
|
| 854 | + $data = $this->filter_response_by_context( $data, $context ); |
|
| 855 | + |
|
| 856 | + // Wrap the data in a response object. |
|
| 857 | + $response = rest_ensure_response( $data ); |
|
| 858 | + |
|
| 859 | + $links = $this->prepare_links( $discount ); |
|
| 860 | + $response->add_links( $links ); |
|
| 861 | + |
|
| 862 | + if ( ! empty( $links['self']['href'] ) ) { |
|
| 863 | + $actions = $this->get_available_actions( $discount, $request ); |
|
| 864 | + |
|
| 865 | + $self = $links['self']['href']; |
|
| 866 | + |
|
| 867 | + foreach ( $actions as $rel ) { |
|
| 868 | + $response->add_link( $rel, $self ); |
|
| 869 | + } |
|
| 870 | + } |
|
| 871 | + |
|
| 872 | + /** |
|
| 873 | + * Filters the discount data for a response. |
|
| 874 | + * |
|
| 875 | + * @since 1.0.13 |
|
| 876 | + * |
|
| 877 | + * @param WP_REST_Response $response The response object. |
|
| 878 | + * @param WP_Post $discount The discount post object. |
|
| 879 | + * @param WP_REST_Request $request Request object. |
|
| 880 | + */ |
|
| 881 | + return apply_filters( "wpinv_rest_prepare_discount", $response, $discount, $request ); |
|
| 882 | + } |
|
| 883 | + |
|
| 884 | + /** |
|
| 885 | + * Gets an array of fields to be included on the response. |
|
| 886 | + * |
|
| 887 | + * Included fields are based on item schema and `_fields=` request argument. |
|
| 888 | + * |
|
| 889 | + * @since 1.0.13 |
|
| 890 | + * |
|
| 891 | + * @param WP_REST_Request $request Full details about the request. |
|
| 892 | + * @return array Fields to be included in the response. |
|
| 893 | + */ |
|
| 894 | + public function get_fields_for_response( $request ) { |
|
| 895 | + $schema = $this->get_item_schema(); |
|
| 896 | + $properties = isset( $schema['properties'] ) ? $schema['properties'] : array(); |
|
| 897 | + |
|
| 898 | + $additional_fields = $this->get_additional_fields(); |
|
| 899 | + foreach ( $additional_fields as $field_name => $field_options ) { |
|
| 900 | + // For back-compat, include any field with an empty schema |
|
| 901 | + // because it won't be present in $this->get_item_schema(). |
|
| 902 | + if ( is_null( $field_options['schema'] ) ) { |
|
| 903 | + $properties[ $field_name ] = $field_options; |
|
| 904 | + } |
|
| 905 | + } |
|
| 906 | + |
|
| 907 | + // Exclude fields that specify a different context than the request context. |
|
| 908 | + $context = $request['context']; |
|
| 909 | + if ( $context ) { |
|
| 910 | + foreach ( $properties as $name => $options ) { |
|
| 911 | + if ( ! empty( $options['context'] ) && ! in_array( $context, $options['context'], true ) ) { |
|
| 912 | + unset( $properties[ $name ] ); |
|
| 913 | + } |
|
| 914 | + } |
|
| 915 | + } |
|
| 916 | + |
|
| 917 | + $fields = array_keys( $properties ); |
|
| 918 | + |
|
| 919 | + if ( ! isset( $request['_fields'] ) ) { |
|
| 920 | + return $fields; |
|
| 921 | + } |
|
| 922 | + $requested_fields = wpinv_parse_list( $request['_fields'] ); |
|
| 923 | + if ( 0 === count( $requested_fields ) ) { |
|
| 924 | + return $fields; |
|
| 925 | + } |
|
| 926 | + // Trim off outside whitespace from the comma delimited list. |
|
| 927 | + $requested_fields = array_map( 'trim', $requested_fields ); |
|
| 928 | + // Always persist 'id', because it can be needed for add_additional_fields_to_object(). |
|
| 929 | + if ( in_array( 'id', $fields, true ) ) { |
|
| 930 | + $requested_fields[] = 'id'; |
|
| 931 | + } |
|
| 932 | + // Return the list of all requested fields which appear in the schema. |
|
| 933 | + return array_reduce( |
|
| 934 | + $requested_fields, |
|
| 935 | + function( $response_fields, $field ) use ( $fields ) { |
|
| 936 | + if ( in_array( $field, $fields, true ) ) { |
|
| 937 | + $response_fields[] = $field; |
|
| 938 | + return $response_fields; |
|
| 939 | + } |
|
| 940 | + // Check for nested fields if $field is not a direct match. |
|
| 941 | + $nested_fields = explode( '.', $field ); |
|
| 942 | + // A nested field is included so long as its top-level property is |
|
| 943 | + // present in the schema. |
|
| 944 | + if ( in_array( $nested_fields[0], $fields, true ) ) { |
|
| 945 | + $response_fields[] = $field; |
|
| 946 | + } |
|
| 947 | + return $response_fields; |
|
| 948 | + }, |
|
| 949 | + array() |
|
| 950 | + ); |
|
| 951 | + } |
|
| 952 | + |
|
| 953 | + /** |
|
| 954 | + * Retrieves the discount's schema, conforming to JSON Schema. |
|
| 955 | + * |
|
| 956 | + * @since 1.0.13 |
|
| 957 | + * |
|
| 958 | + * @return array Discount schema data. |
|
| 959 | + */ |
|
| 960 | + public function get_item_schema() { |
|
| 961 | + |
|
| 962 | + // Maybe retrieve the schema from cache. |
|
| 963 | + if ( empty( $this->schema ) ) { |
|
| 964 | + return $this->add_additional_fields_schema( $this->schema ); |
|
| 965 | + } |
|
| 966 | + |
|
| 967 | + $schema = array( |
|
| 968 | + '$schema' => 'http://json-schema.org/draft-04/schema#', |
|
| 969 | + 'title' => $this->post_type, |
|
| 970 | + 'type' => 'object', |
|
| 971 | + |
|
| 972 | + // Base properties for every Item. |
|
| 973 | + 'properties' => array( |
|
| 974 | + |
|
| 975 | + 'id' => array( |
|
| 976 | + 'description' => __( 'Unique identifier for the discount.', 'invoicing' ), |
|
| 977 | + 'type' => 'integer', |
|
| 978 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
| 979 | + 'readonly' => true, |
|
| 980 | + ), |
|
| 981 | + |
|
| 982 | + 'title' => array( |
|
| 983 | + 'description' => __( 'The title for the discount.', 'invoicing' ), |
|
| 984 | + 'type' => 'string', |
|
| 985 | + 'context' => array( 'view', 'edit' ), |
|
| 986 | + ), |
|
| 987 | + |
|
| 988 | + 'code' => array( |
|
| 989 | + 'description' => __( 'The discount code.', 'invoicing' ), |
|
| 990 | + 'type' => 'string', |
|
| 991 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
| 992 | + 'required' => true, |
|
| 993 | + ), |
|
| 994 | + |
|
| 995 | + 'type' => array( |
|
| 996 | + 'description' => __( 'The type of discount.', 'invoicing' ), |
|
| 997 | + 'type' => 'string', |
|
| 998 | + 'enum' => array_keys( wpinv_get_discount_types() ), |
|
| 999 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
| 1000 | + 'default' => 'percentage', |
|
| 1001 | + ), |
|
| 1002 | + |
|
| 1003 | + 'amount' => array( |
|
| 1004 | + 'description' => __( 'The discount value.', 'invoicing' ), |
|
| 1005 | + 'type' => 'number', |
|
| 1006 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
| 1007 | + 'required' => true, |
|
| 1008 | + ), |
|
| 1009 | + |
|
| 1010 | + 'status' => array( |
|
| 1011 | + 'description' => __( 'A named status for the discount.', 'invoicing' ), |
|
| 1012 | + 'type' => 'string', |
|
| 1013 | + 'enum' => array_keys( get_post_stati( array( 'internal' => false ) ) ), |
|
| 1014 | + 'context' => array( 'view', 'edit' ), |
|
| 1015 | + ), |
|
| 1016 | + |
|
| 1017 | + 'items' => array( |
|
| 1018 | + 'description' => __( 'Items which need to be in the cart to use this discount or, for "Item Discounts", which items are discounted. If left blank, this discount will be used on any item.', 'invoicing' ), |
|
| 1019 | + 'type' => 'array', |
|
| 1020 | + 'context' => array( 'view', 'edit' ), |
|
| 1021 | + ), |
|
| 1022 | + |
|
| 1023 | + 'exclude_items' => array( |
|
| 1024 | + 'description' => __( 'Items which are NOT allowed to use this discount.', 'invoicing' ), |
|
| 1025 | + 'type' => 'array', |
|
| 1026 | + 'context' => array( 'view', 'edit' ), |
|
| 1027 | + ), |
|
| 1028 | + |
|
| 1029 | + 'start_date' => array( |
|
| 1030 | + 'description' => __( 'The start date for the discount in the format of yyyy-mm-dd hh:mm:ss . If provided, the discount can only be used after or on this date.', 'invoicing' ), |
|
| 1031 | + 'type' => 'string', |
|
| 1032 | + 'context' => array( 'view', 'edit' ), |
|
| 1033 | + ), |
|
| 1034 | + |
|
| 1035 | + 'end_date' => array( |
|
| 1036 | + 'description' => __( 'The expiration date for the discount.', 'invoicing' ), |
|
| 1037 | + 'type' => 'string', |
|
| 1038 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
| 1039 | + ), |
|
| 1040 | 1040 | |
| 1041 | - 'minimum_amount' => array( |
|
| 1042 | - 'description' => __( 'Minimum amount needed to use this invoice.', 'invoicing' ), |
|
| 1043 | - 'type' => 'number', |
|
| 1044 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
| 1045 | - ), |
|
| 1046 | - |
|
| 1047 | - 'maximum_amount' => array( |
|
| 1048 | - 'description' => __( 'Maximum amount needed to use this invoice.', 'invoicing' ), |
|
| 1049 | - 'type' => 'number', |
|
| 1050 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
| 1051 | - ), |
|
| 1052 | - |
|
| 1053 | - 'recurring' => array( |
|
| 1054 | - 'description' => __( 'Whether the discount is applied to all recurring payments or only the first recurring payment.', 'invoicing' ), |
|
| 1055 | - 'type' => 'integer', |
|
| 1056 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
| 1057 | - ), |
|
| 1058 | - |
|
| 1059 | - 'max_uses' => array( |
|
| 1060 | - 'description' => __( 'The maximum number of times this discount code can be used.', 'invoicing' ), |
|
| 1061 | - 'type' => 'number', |
|
| 1062 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
| 1063 | - ), |
|
| 1064 | - |
|
| 1065 | - 'single_use' => array( |
|
| 1066 | - 'description' => __( 'Whether or not this discount can only be used once per user.', 'invoicing' ), |
|
| 1067 | - 'type' => 'integer', |
|
| 1068 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
| 1069 | - ) |
|
| 1070 | - |
|
| 1071 | - ), |
|
| 1072 | - ); |
|
| 1073 | - |
|
| 1074 | - // Add helpful links to the discount schem. |
|
| 1075 | - $schema['links'] = $this->get_schema_links(); |
|
| 1076 | - |
|
| 1077 | - /** |
|
| 1078 | - * Filters the discount schema for the REST API. |
|
| 1079 | - * |
|
| 1080 | - * Enables adding extra properties to discounts. |
|
| 1081 | - * |
|
| 1082 | - * @since 1.0.13 |
|
| 1083 | - * |
|
| 1084 | - * @param array $schema The discount schema. |
|
| 1085 | - */ |
|
| 1041 | + 'minimum_amount' => array( |
|
| 1042 | + 'description' => __( 'Minimum amount needed to use this invoice.', 'invoicing' ), |
|
| 1043 | + 'type' => 'number', |
|
| 1044 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
| 1045 | + ), |
|
| 1046 | + |
|
| 1047 | + 'maximum_amount' => array( |
|
| 1048 | + 'description' => __( 'Maximum amount needed to use this invoice.', 'invoicing' ), |
|
| 1049 | + 'type' => 'number', |
|
| 1050 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
| 1051 | + ), |
|
| 1052 | + |
|
| 1053 | + 'recurring' => array( |
|
| 1054 | + 'description' => __( 'Whether the discount is applied to all recurring payments or only the first recurring payment.', 'invoicing' ), |
|
| 1055 | + 'type' => 'integer', |
|
| 1056 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
| 1057 | + ), |
|
| 1058 | + |
|
| 1059 | + 'max_uses' => array( |
|
| 1060 | + 'description' => __( 'The maximum number of times this discount code can be used.', 'invoicing' ), |
|
| 1061 | + 'type' => 'number', |
|
| 1062 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
| 1063 | + ), |
|
| 1064 | + |
|
| 1065 | + 'single_use' => array( |
|
| 1066 | + 'description' => __( 'Whether or not this discount can only be used once per user.', 'invoicing' ), |
|
| 1067 | + 'type' => 'integer', |
|
| 1068 | + 'context' => array( 'view', 'edit', 'embed' ), |
|
| 1069 | + ) |
|
| 1070 | + |
|
| 1071 | + ), |
|
| 1072 | + ); |
|
| 1073 | + |
|
| 1074 | + // Add helpful links to the discount schem. |
|
| 1075 | + $schema['links'] = $this->get_schema_links(); |
|
| 1076 | + |
|
| 1077 | + /** |
|
| 1078 | + * Filters the discount schema for the REST API. |
|
| 1079 | + * |
|
| 1080 | + * Enables adding extra properties to discounts. |
|
| 1081 | + * |
|
| 1082 | + * @since 1.0.13 |
|
| 1083 | + * |
|
| 1084 | + * @param array $schema The discount schema. |
|
| 1085 | + */ |
|
| 1086 | 1086 | $schema = apply_filters( "wpinv_rest_discount_schema", $schema ); |
| 1087 | 1087 | |
| 1088 | - // Cache the discount schema. |
|
| 1089 | - $this->schema = $schema; |
|
| 1088 | + // Cache the discount schema. |
|
| 1089 | + $this->schema = $schema; |
|
| 1090 | 1090 | |
| 1091 | - return $this->add_additional_fields_schema( $this->schema ); |
|
| 1092 | - } |
|
| 1093 | - |
|
| 1094 | - /** |
|
| 1095 | - * Retrieve Link Description Objects that should be added to the Schema for the discounts collection. |
|
| 1096 | - * |
|
| 1097 | - * @since 1.0.13 |
|
| 1098 | - * |
|
| 1099 | - * @return array |
|
| 1100 | - */ |
|
| 1101 | - protected function get_schema_links() { |
|
| 1102 | - |
|
| 1103 | - $href = rest_url( "{$this->namespace}/{$this->rest_base}/{id}" ); |
|
| 1104 | - |
|
| 1105 | - $links = array(); |
|
| 1106 | - |
|
| 1107 | - $links[] = array( |
|
| 1108 | - 'rel' => 'https://api.w.org/action-publish', |
|
| 1109 | - 'title' => __( 'The current user can publish this discount.', 'invoicing' ), |
|
| 1110 | - 'href' => $href, |
|
| 1111 | - 'targetSchema' => array( |
|
| 1112 | - 'type' => 'object', |
|
| 1113 | - 'properties' => array( |
|
| 1114 | - 'status' => array( |
|
| 1115 | - 'type' => 'string', |
|
| 1116 | - 'enum' => array( 'publish', 'future' ), |
|
| 1117 | - ), |
|
| 1118 | - ), |
|
| 1119 | - ), |
|
| 1120 | - ); |
|
| 1121 | - |
|
| 1122 | - return $links; |
|
| 1123 | - } |
|
| 1124 | - |
|
| 1125 | - /** |
|
| 1126 | - * Prepares links for the request. |
|
| 1127 | - * |
|
| 1128 | - * @since 1.0.13 |
|
| 1129 | - * |
|
| 1130 | - * @param WP_Post $discount Post Object. |
|
| 1131 | - * @return array Links for the given discount. |
|
| 1132 | - */ |
|
| 1133 | - protected function prepare_links( $discount ) { |
|
| 1134 | - |
|
| 1135 | - // Prepare the base REST API endpoint for discounts. |
|
| 1136 | - $base = sprintf( '%s/%s', $this->namespace, $this->rest_base ); |
|
| 1137 | - |
|
| 1138 | - // Entity meta. |
|
| 1139 | - $links = array( |
|
| 1140 | - 'self' => array( |
|
| 1141 | - 'href' => rest_url( trailingslashit( $base ) . $discount->ID ), |
|
| 1142 | - ), |
|
| 1143 | - 'collection' => array( |
|
| 1144 | - 'href' => rest_url( $base ), |
|
| 1145 | - ), |
|
| 1146 | - ); |
|
| 1147 | - |
|
| 1148 | - /** |
|
| 1149 | - * Filters the returned discount links for the REST API. |
|
| 1150 | - * |
|
| 1151 | - * Enables adding extra links to discount API responses. |
|
| 1152 | - * |
|
| 1153 | - * @since 1.0.13 |
|
| 1154 | - * |
|
| 1155 | - * @param array $links Rest links. |
|
| 1156 | - */ |
|
| 1157 | - return apply_filters( "wpinv_rest_discount_links", $links ); |
|
| 1158 | - |
|
| 1159 | - } |
|
| 1160 | - |
|
| 1161 | - /** |
|
| 1162 | - * Get the link relations available for the post and current user. |
|
| 1163 | - * |
|
| 1164 | - * @since 1.0.13 |
|
| 1165 | - * |
|
| 1166 | - * @param WP_Post $discount WP_Post object. |
|
| 1167 | - * @param WP_REST_Request $request Request object. |
|
| 1168 | - * @return array List of link relations. |
|
| 1169 | - */ |
|
| 1170 | - protected function get_available_actions( $discount, $request ) { |
|
| 1171 | - |
|
| 1172 | - if ( 'edit' !== $request['context'] ) { |
|
| 1173 | - return array(); |
|
| 1174 | - } |
|
| 1175 | - |
|
| 1176 | - $rels = array(); |
|
| 1177 | - |
|
| 1178 | - // Retrieve the post type object. |
|
| 1179 | - $post_type = get_post_type_object( $discount->post_type ); |
|
| 1180 | - |
|
| 1181 | - // Mark discount as published. |
|
| 1182 | - if ( current_user_can( $post_type->cap->publish_posts ) ) { |
|
| 1183 | - $rels[] = 'https://api.w.org/action-publish'; |
|
| 1184 | - } |
|
| 1185 | - |
|
| 1186 | - /** |
|
| 1187 | - * Filters the available discount link relations for the REST API. |
|
| 1188 | - * |
|
| 1189 | - * Enables adding extra link relation for the current user and request to discount responses. |
|
| 1190 | - * |
|
| 1191 | - * @since 1.0.13 |
|
| 1192 | - * |
|
| 1193 | - * @param array $rels Available link relations. |
|
| 1194 | - */ |
|
| 1195 | - return apply_filters( "wpinv_rest_discount_link_relations", $rels ); |
|
| 1196 | - } |
|
| 1197 | - |
|
| 1198 | - /** |
|
| 1199 | - * Handles rest requests for discount types. |
|
| 1200 | - * |
|
| 1201 | - * @since 1.0.13 |
|
| 1202 | - * |
|
| 1203 | - * |
|
| 1204 | - * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure. |
|
| 1205 | - */ |
|
| 1206 | - public function get_discount_types() { |
|
| 1207 | - return rest_ensure_response( wpinv_get_discount_types() ); |
|
| 1208 | - } |
|
| 1091 | + return $this->add_additional_fields_schema( $this->schema ); |
|
| 1092 | + } |
|
| 1093 | + |
|
| 1094 | + /** |
|
| 1095 | + * Retrieve Link Description Objects that should be added to the Schema for the discounts collection. |
|
| 1096 | + * |
|
| 1097 | + * @since 1.0.13 |
|
| 1098 | + * |
|
| 1099 | + * @return array |
|
| 1100 | + */ |
|
| 1101 | + protected function get_schema_links() { |
|
| 1102 | + |
|
| 1103 | + $href = rest_url( "{$this->namespace}/{$this->rest_base}/{id}" ); |
|
| 1104 | + |
|
| 1105 | + $links = array(); |
|
| 1106 | + |
|
| 1107 | + $links[] = array( |
|
| 1108 | + 'rel' => 'https://api.w.org/action-publish', |
|
| 1109 | + 'title' => __( 'The current user can publish this discount.', 'invoicing' ), |
|
| 1110 | + 'href' => $href, |
|
| 1111 | + 'targetSchema' => array( |
|
| 1112 | + 'type' => 'object', |
|
| 1113 | + 'properties' => array( |
|
| 1114 | + 'status' => array( |
|
| 1115 | + 'type' => 'string', |
|
| 1116 | + 'enum' => array( 'publish', 'future' ), |
|
| 1117 | + ), |
|
| 1118 | + ), |
|
| 1119 | + ), |
|
| 1120 | + ); |
|
| 1121 | + |
|
| 1122 | + return $links; |
|
| 1123 | + } |
|
| 1124 | + |
|
| 1125 | + /** |
|
| 1126 | + * Prepares links for the request. |
|
| 1127 | + * |
|
| 1128 | + * @since 1.0.13 |
|
| 1129 | + * |
|
| 1130 | + * @param WP_Post $discount Post Object. |
|
| 1131 | + * @return array Links for the given discount. |
|
| 1132 | + */ |
|
| 1133 | + protected function prepare_links( $discount ) { |
|
| 1134 | + |
|
| 1135 | + // Prepare the base REST API endpoint for discounts. |
|
| 1136 | + $base = sprintf( '%s/%s', $this->namespace, $this->rest_base ); |
|
| 1137 | + |
|
| 1138 | + // Entity meta. |
|
| 1139 | + $links = array( |
|
| 1140 | + 'self' => array( |
|
| 1141 | + 'href' => rest_url( trailingslashit( $base ) . $discount->ID ), |
|
| 1142 | + ), |
|
| 1143 | + 'collection' => array( |
|
| 1144 | + 'href' => rest_url( $base ), |
|
| 1145 | + ), |
|
| 1146 | + ); |
|
| 1147 | + |
|
| 1148 | + /** |
|
| 1149 | + * Filters the returned discount links for the REST API. |
|
| 1150 | + * |
|
| 1151 | + * Enables adding extra links to discount API responses. |
|
| 1152 | + * |
|
| 1153 | + * @since 1.0.13 |
|
| 1154 | + * |
|
| 1155 | + * @param array $links Rest links. |
|
| 1156 | + */ |
|
| 1157 | + return apply_filters( "wpinv_rest_discount_links", $links ); |
|
| 1158 | + |
|
| 1159 | + } |
|
| 1160 | + |
|
| 1161 | + /** |
|
| 1162 | + * Get the link relations available for the post and current user. |
|
| 1163 | + * |
|
| 1164 | + * @since 1.0.13 |
|
| 1165 | + * |
|
| 1166 | + * @param WP_Post $discount WP_Post object. |
|
| 1167 | + * @param WP_REST_Request $request Request object. |
|
| 1168 | + * @return array List of link relations. |
|
| 1169 | + */ |
|
| 1170 | + protected function get_available_actions( $discount, $request ) { |
|
| 1171 | + |
|
| 1172 | + if ( 'edit' !== $request['context'] ) { |
|
| 1173 | + return array(); |
|
| 1174 | + } |
|
| 1175 | + |
|
| 1176 | + $rels = array(); |
|
| 1177 | + |
|
| 1178 | + // Retrieve the post type object. |
|
| 1179 | + $post_type = get_post_type_object( $discount->post_type ); |
|
| 1180 | + |
|
| 1181 | + // Mark discount as published. |
|
| 1182 | + if ( current_user_can( $post_type->cap->publish_posts ) ) { |
|
| 1183 | + $rels[] = 'https://api.w.org/action-publish'; |
|
| 1184 | + } |
|
| 1185 | + |
|
| 1186 | + /** |
|
| 1187 | + * Filters the available discount link relations for the REST API. |
|
| 1188 | + * |
|
| 1189 | + * Enables adding extra link relation for the current user and request to discount responses. |
|
| 1190 | + * |
|
| 1191 | + * @since 1.0.13 |
|
| 1192 | + * |
|
| 1193 | + * @param array $rels Available link relations. |
|
| 1194 | + */ |
|
| 1195 | + return apply_filters( "wpinv_rest_discount_link_relations", $rels ); |
|
| 1196 | + } |
|
| 1197 | + |
|
| 1198 | + /** |
|
| 1199 | + * Handles rest requests for discount types. |
|
| 1200 | + * |
|
| 1201 | + * @since 1.0.13 |
|
| 1202 | + * |
|
| 1203 | + * |
|
| 1204 | + * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure. |
|
| 1205 | + */ |
|
| 1206 | + public function get_discount_types() { |
|
| 1207 | + return rest_ensure_response( wpinv_get_discount_types() ); |
|
| 1208 | + } |
|
| 1209 | 1209 | |
| 1210 | 1210 | } |
| 1211 | 1211 | \ No newline at end of file |
@@ -8,7 +8,7 @@ discard block |
||
| 8 | 8 | * @since 1.0.13 |
| 9 | 9 | */ |
| 10 | 10 | |
| 11 | -if ( !defined( 'WPINC' ) ) { |
|
| 11 | +if (!defined('WPINC')) { |
|
| 12 | 12 | exit; |
| 13 | 13 | } |
| 14 | 14 | |
@@ -41,7 +41,7 @@ discard block |
||
| 41 | 41 | * |
| 42 | 42 | * @param string $namespace Api Namespace |
| 43 | 43 | */ |
| 44 | - public function __construct( $namespace ) { |
|
| 44 | + public function __construct($namespace) { |
|
| 45 | 45 | |
| 46 | 46 | // Set api namespace... |
| 47 | 47 | $this->namespace = $namespace; |
@@ -68,7 +68,7 @@ discard block |
||
| 68 | 68 | array( |
| 69 | 69 | array( |
| 70 | 70 | 'methods' => WP_REST_Server::READABLE, |
| 71 | - 'callback' => array( $this, 'get_discount_types' ), |
|
| 71 | + 'callback' => array($this, 'get_discount_types'), |
|
| 72 | 72 | ), |
| 73 | 73 | ) |
| 74 | 74 | ); |
@@ -84,13 +84,13 @@ discard block |
||
| 84 | 84 | * @param WP_REST_Request $request Full details about the request. |
| 85 | 85 | * @return true|WP_Error True if the request has read access, WP_Error object otherwise. |
| 86 | 86 | */ |
| 87 | - public function get_items_permissions_check( $request ) { |
|
| 87 | + public function get_items_permissions_check($request) { |
|
| 88 | 88 | |
| 89 | - if ( wpinv_current_user_can_manage_invoicing() ) { |
|
| 89 | + if (wpinv_current_user_can_manage_invoicing()) { |
|
| 90 | 90 | return true; |
| 91 | 91 | } |
| 92 | 92 | |
| 93 | - return new WP_Error( 'rest_forbidden_context', __( 'Sorry, you are not allowed to view invoice discounts.', 'invoicing' ), array( 'status' => rest_authorization_required_code() ) ); |
|
| 93 | + return new WP_Error('rest_forbidden_context', __('Sorry, you are not allowed to view invoice discounts.', 'invoicing'), array('status' => rest_authorization_required_code())); |
|
| 94 | 94 | |
| 95 | 95 | } |
| 96 | 96 | |
@@ -102,17 +102,17 @@ discard block |
||
| 102 | 102 | * @param WP_REST_Request $request Full details about the request. |
| 103 | 103 | * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure. |
| 104 | 104 | */ |
| 105 | - public function get_items( $request ) { |
|
| 105 | + public function get_items($request) { |
|
| 106 | 106 | |
| 107 | 107 | // Retrieve the list of registered item query parameters. |
| 108 | 108 | $registered = $this->get_collection_params(); |
| 109 | 109 | |
| 110 | 110 | $args = array(); |
| 111 | 111 | |
| 112 | - foreach( array_keys( $registered ) as $key ) { |
|
| 112 | + foreach (array_keys($registered) as $key) { |
|
| 113 | 113 | |
| 114 | - if( isset( $request[ $key] ) ) { |
|
| 115 | - $args[ $key ] = $request[ $key]; |
|
| 114 | + if (isset($request[$key])) { |
|
| 115 | + $args[$key] = $request[$key]; |
|
| 116 | 116 | } |
| 117 | 117 | |
| 118 | 118 | } |
@@ -127,28 +127,28 @@ discard block |
||
| 127 | 127 | * @param array $args Key value array of query var to query value. |
| 128 | 128 | * @param WP_REST_Request $request The request used. |
| 129 | 129 | */ |
| 130 | - $args = apply_filters( "wpinv_rest_get_discounts_arguments", $args, $request, $this ); |
|
| 130 | + $args = apply_filters("wpinv_rest_get_discounts_arguments", $args, $request, $this); |
|
| 131 | 131 | |
| 132 | 132 | // Special args |
| 133 | - $args[ 'return' ] = 'objects'; |
|
| 134 | - $args[ 'paginate' ] = true; |
|
| 133 | + $args['return'] = 'objects'; |
|
| 134 | + $args['paginate'] = true; |
|
| 135 | 135 | |
| 136 | 136 | // Run the query. |
| 137 | - $query = wpinv_get_all_discounts( $args ); |
|
| 137 | + $query = wpinv_get_all_discounts($args); |
|
| 138 | 138 | |
| 139 | 139 | // Prepare the retrieved discounts |
| 140 | 140 | $discounts = array(); |
| 141 | - foreach( $query->discounts as $discount ) { |
|
| 141 | + foreach ($query->discounts as $discount) { |
|
| 142 | 142 | |
| 143 | - $data = $this->prepare_item_for_response( $discount, $request ); |
|
| 144 | - $discounts[] = $this->prepare_response_for_collection( $data ); |
|
| 143 | + $data = $this->prepare_item_for_response($discount, $request); |
|
| 144 | + $discounts[] = $this->prepare_response_for_collection($data); |
|
| 145 | 145 | |
| 146 | 146 | } |
| 147 | 147 | |
| 148 | 148 | // Prepare the response. |
| 149 | - $response = rest_ensure_response( $discounts ); |
|
| 150 | - $response->header( 'X-WP-Total', (int) $query->total ); |
|
| 151 | - $response->header( 'X-WP-TotalPages', (int) $query->max_num_pages ); |
|
| 149 | + $response = rest_ensure_response($discounts); |
|
| 150 | + $response->header('X-WP-Total', (int) $query->total); |
|
| 151 | + $response->header('X-WP-TotalPages', (int) $query->max_num_pages); |
|
| 152 | 152 | |
| 153 | 153 | /** |
| 154 | 154 | * Filters the responses for discount requests. |
@@ -161,9 +161,9 @@ discard block |
||
| 161 | 161 | * @param WP_REST_Request $request The request used. |
| 162 | 162 | * @param array $args Array of args used to retrieve the discounts |
| 163 | 163 | */ |
| 164 | - $response = apply_filters( "wpinv_rest_discounts_response", $response, $request, $args ); |
|
| 164 | + $response = apply_filters("wpinv_rest_discounts_response", $response, $request, $args); |
|
| 165 | 165 | |
| 166 | - return rest_ensure_response( $response ); |
|
| 166 | + return rest_ensure_response($response); |
|
| 167 | 167 | |
| 168 | 168 | } |
| 169 | 169 | |
@@ -175,17 +175,17 @@ discard block |
||
| 175 | 175 | * @param int $discount_id Supplied ID. |
| 176 | 176 | * @return WP_Post|WP_Error Post object if ID is valid, WP_Error otherwise. |
| 177 | 177 | */ |
| 178 | - protected function get_post( $discount_id ) { |
|
| 178 | + protected function get_post($discount_id) { |
|
| 179 | 179 | |
| 180 | - $error = new WP_Error( 'rest_item_invalid_id', __( 'Invalid discount ID.', 'invoicing' ), array( 'status' => 404 ) ); |
|
| 180 | + $error = new WP_Error('rest_item_invalid_id', __('Invalid discount ID.', 'invoicing'), array('status' => 404)); |
|
| 181 | 181 | |
| 182 | 182 | // Ids start from 1 |
| 183 | - if ( (int) $discount_id <= 0 ) { |
|
| 183 | + if ((int) $discount_id <= 0) { |
|
| 184 | 184 | return $error; |
| 185 | 185 | } |
| 186 | 186 | |
| 187 | - $discount = wpinv_get_discount( (int) $discount_id ); |
|
| 188 | - if ( empty( $discount ) ) { |
|
| 187 | + $discount = wpinv_get_discount((int) $discount_id); |
|
| 188 | + if (empty($discount)) { |
|
| 189 | 189 | return $error; |
| 190 | 190 | } |
| 191 | 191 | |
@@ -201,20 +201,20 @@ discard block |
||
| 201 | 201 | * @param WP_REST_Request $request Full details about the request. |
| 202 | 202 | * @return bool|WP_Error True if the request has read access for the invoice item, WP_Error object otherwise. |
| 203 | 203 | */ |
| 204 | - public function get_item_permissions_check( $request ) { |
|
| 204 | + public function get_item_permissions_check($request) { |
|
| 205 | 205 | |
| 206 | 206 | // Retrieve the discount object. |
| 207 | - $discount = $this->get_post( $request['id'] ); |
|
| 207 | + $discount = $this->get_post($request['id']); |
|
| 208 | 208 | |
| 209 | 209 | // Ensure it is valid. |
| 210 | - if ( is_wp_error( $discount ) ) { |
|
| 210 | + if (is_wp_error($discount)) { |
|
| 211 | 211 | return $discount; |
| 212 | 212 | } |
| 213 | 213 | |
| 214 | - if ( ! wpinv_current_user_can_manage_invoicing() ) { |
|
| 214 | + if (!wpinv_current_user_can_manage_invoicing()) { |
|
| 215 | 215 | return new WP_Error( |
| 216 | 216 | 'rest_cannot_view', |
| 217 | - __( 'Sorry, you are not allowed to view this discount.', 'invoicing' ), |
|
| 217 | + __('Sorry, you are not allowed to view this discount.', 'invoicing'), |
|
| 218 | 218 | array( |
| 219 | 219 | 'status' => rest_authorization_required_code(), |
| 220 | 220 | ) |
@@ -232,18 +232,18 @@ discard block |
||
| 232 | 232 | * @param WP_REST_Request $request Full details about the request. |
| 233 | 233 | * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure. |
| 234 | 234 | */ |
| 235 | - public function get_item( $request ) { |
|
| 235 | + public function get_item($request) { |
|
| 236 | 236 | |
| 237 | 237 | // Fetch the discount. |
| 238 | - $discount = $this->get_post( $request['id'] ); |
|
| 238 | + $discount = $this->get_post($request['id']); |
|
| 239 | 239 | |
| 240 | 240 | // Abort early if it does not exist |
| 241 | - if ( is_wp_error( $discount ) ) { |
|
| 241 | + if (is_wp_error($discount)) { |
|
| 242 | 242 | return $discount; |
| 243 | 243 | } |
| 244 | 244 | |
| 245 | 245 | // Prepare the response |
| 246 | - $response = $this->prepare_item_for_response( $discount, $request ); |
|
| 246 | + $response = $this->prepare_item_for_response($discount, $request); |
|
| 247 | 247 | |
| 248 | 248 | /** |
| 249 | 249 | * Filters the responses for single discount requests. |
@@ -255,9 +255,9 @@ discard block |
||
| 255 | 255 | * @param WP_HTTP_Response $response Response. |
| 256 | 256 | * @param WP_REST_Request $request The request used. |
| 257 | 257 | */ |
| 258 | - $response = apply_filters( "wpinv_rest_get_discount_response", $response, $request ); |
|
| 258 | + $response = apply_filters("wpinv_rest_get_discount_response", $response, $request); |
|
| 259 | 259 | |
| 260 | - return rest_ensure_response( $response ); |
|
| 260 | + return rest_ensure_response($response); |
|
| 261 | 261 | |
| 262 | 262 | } |
| 263 | 263 | |
@@ -269,21 +269,21 @@ discard block |
||
| 269 | 269 | * @param WP_REST_Request $request Full details about the request. |
| 270 | 270 | * @return true|WP_Error True if the request has access to create items, WP_Error object otherwise. |
| 271 | 271 | */ |
| 272 | - public function create_item_permissions_check( $request ) { |
|
| 272 | + public function create_item_permissions_check($request) { |
|
| 273 | 273 | |
| 274 | - if ( ! empty( $request['id'] ) ) { |
|
| 275 | - return new WP_Error( 'rest_item_exists', __( 'Cannot create existing item.', 'invoicing' ), array( 'status' => 400 ) ); |
|
| 274 | + if (!empty($request['id'])) { |
|
| 275 | + return new WP_Error('rest_item_exists', __('Cannot create existing item.', 'invoicing'), array('status' => 400)); |
|
| 276 | 276 | } |
| 277 | 277 | |
| 278 | - if ( wpinv_current_user_can_manage_invoicing() ) { |
|
| 278 | + if (wpinv_current_user_can_manage_invoicing()) { |
|
| 279 | 279 | return true; |
| 280 | 280 | } |
| 281 | 281 | |
| 282 | - $post_type = get_post_type_object( $this->post_type ); |
|
| 283 | - if ( ! current_user_can( $post_type->cap->create_posts ) ) { |
|
| 282 | + $post_type = get_post_type_object($this->post_type); |
|
| 283 | + if (!current_user_can($post_type->cap->create_posts)) { |
|
| 284 | 284 | return new WP_Error( |
| 285 | 285 | 'rest_cannot_create', |
| 286 | - __( 'Sorry, you are not allowed to create discounts as this user.', 'invoicing' ), |
|
| 286 | + __('Sorry, you are not allowed to create discounts as this user.', 'invoicing'), |
|
| 287 | 287 | array( |
| 288 | 288 | 'status' => rest_authorization_required_code(), |
| 289 | 289 | ) |
@@ -301,32 +301,32 @@ discard block |
||
| 301 | 301 | * @param WP_REST_Request $request Full details about the request. |
| 302 | 302 | * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure. |
| 303 | 303 | */ |
| 304 | - public function create_item( $request ) { |
|
| 304 | + public function create_item($request) { |
|
| 305 | 305 | |
| 306 | - if ( ! empty( $request['id'] ) ) { |
|
| 307 | - return new WP_Error( 'rest_item_exists', __( 'Cannot create existing discount.', 'invoicing' ), array( 'status' => 400 ) ); |
|
| 306 | + if (!empty($request['id'])) { |
|
| 307 | + return new WP_Error('rest_item_exists', __('Cannot create existing discount.', 'invoicing'), array('status' => 400)); |
|
| 308 | 308 | } |
| 309 | 309 | |
| 310 | - $request->set_param( 'context', 'edit' ); |
|
| 310 | + $request->set_param('context', 'edit'); |
|
| 311 | 311 | |
| 312 | 312 | // Prepare the updated data. |
| 313 | - $discount_data = $this->prepare_item_for_database( $request ); |
|
| 313 | + $discount_data = $this->prepare_item_for_database($request); |
|
| 314 | 314 | |
| 315 | - if ( is_wp_error( $discount_data ) ) { |
|
| 315 | + if (is_wp_error($discount_data)) { |
|
| 316 | 316 | return $discount_data; |
| 317 | 317 | } |
| 318 | 318 | |
| 319 | 319 | $discount_data['post_type'] = $this->post_type; |
| 320 | 320 | |
| 321 | 321 | // Try creating the discount. |
| 322 | - $discount = wp_insert_post( $discount_data, true ); |
|
| 322 | + $discount = wp_insert_post($discount_data, true); |
|
| 323 | 323 | |
| 324 | - if ( is_wp_error( $discount ) ) { |
|
| 324 | + if (is_wp_error($discount)) { |
|
| 325 | 325 | return $discount; |
| 326 | 326 | } |
| 327 | 327 | |
| 328 | 328 | // Prepare the response |
| 329 | - $response = $this->prepare_item_for_response( $discount, $request ); |
|
| 329 | + $response = $this->prepare_item_for_response($discount, $request); |
|
| 330 | 330 | |
| 331 | 331 | /** |
| 332 | 332 | * Fires after a single discount is created or updated via the REST API. |
@@ -337,7 +337,7 @@ discard block |
||
| 337 | 337 | * @param WP_REST_Request $request Request object. |
| 338 | 338 | * @param bool $creating True when creating a post, false when updating. |
| 339 | 339 | */ |
| 340 | - do_action( "wpinv_rest_insert_discount", $discount, $request, true ); |
|
| 340 | + do_action("wpinv_rest_insert_discount", $discount, $request, true); |
|
| 341 | 341 | |
| 342 | 342 | /** |
| 343 | 343 | * Filters the responses for creating single item requests. |
@@ -349,9 +349,9 @@ discard block |
||
| 349 | 349 | * @param array $response Invoice properties. |
| 350 | 350 | * @param WP_REST_Request $request The request used. |
| 351 | 351 | */ |
| 352 | - $response = apply_filters( "wpinv_rest_create_discount_response", $response, $request ); |
|
| 352 | + $response = apply_filters("wpinv_rest_create_discount_response", $response, $request); |
|
| 353 | 353 | |
| 354 | - return rest_ensure_response( $response ); |
|
| 354 | + return rest_ensure_response($response); |
|
| 355 | 355 | } |
| 356 | 356 | |
| 357 | 357 | /** |
@@ -362,21 +362,21 @@ discard block |
||
| 362 | 362 | * @param WP_REST_Request $request Full details about the request. |
| 363 | 363 | * @return true|WP_Error True if the request has access to update the item, WP_Error object otherwise. |
| 364 | 364 | */ |
| 365 | - public function update_item_permissions_check( $request ) { |
|
| 365 | + public function update_item_permissions_check($request) { |
|
| 366 | 366 | |
| 367 | 367 | // Retrieve the item. |
| 368 | - $item = $this->get_post( $request['id'] ); |
|
| 369 | - if ( is_wp_error( $item ) ) { |
|
| 368 | + $item = $this->get_post($request['id']); |
|
| 369 | + if (is_wp_error($item)) { |
|
| 370 | 370 | return $item; |
| 371 | 371 | } |
| 372 | 372 | |
| 373 | - if ( wpinv_current_user_can_manage_invoicing() ) { |
|
| 373 | + if (wpinv_current_user_can_manage_invoicing()) { |
|
| 374 | 374 | return true; |
| 375 | 375 | } |
| 376 | 376 | |
| 377 | 377 | return new WP_Error( |
| 378 | 378 | 'rest_cannot_edit', |
| 379 | - __( 'Sorry, you are not allowed to update this discount.', 'invoicing' ), |
|
| 379 | + __('Sorry, you are not allowed to update this discount.', 'invoicing'), |
|
| 380 | 380 | array( |
| 381 | 381 | 'status' => rest_authorization_required_code(), |
| 382 | 382 | ) |
@@ -392,62 +392,62 @@ discard block |
||
| 392 | 392 | * @param WP_REST_Request $request Full details about the request. |
| 393 | 393 | * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure. |
| 394 | 394 | */ |
| 395 | - public function update_item( $request ) { |
|
| 395 | + public function update_item($request) { |
|
| 396 | 396 | |
| 397 | 397 | // Ensure the item exists. |
| 398 | - $valid_check = $this->get_post( $request['id'] ); |
|
| 398 | + $valid_check = $this->get_post($request['id']); |
|
| 399 | 399 | |
| 400 | 400 | // Abort early if it does not exist |
| 401 | - if ( is_wp_error( $valid_check ) ) { |
|
| 401 | + if (is_wp_error($valid_check)) { |
|
| 402 | 402 | return $valid_check; |
| 403 | 403 | } |
| 404 | 404 | |
| 405 | - $request->set_param( 'context', 'edit' ); |
|
| 405 | + $request->set_param('context', 'edit'); |
|
| 406 | 406 | |
| 407 | 407 | // Prepare the updated data. |
| 408 | - $data_to_update = $this->prepare_item_for_database( $request ); |
|
| 408 | + $data_to_update = $this->prepare_item_for_database($request); |
|
| 409 | 409 | |
| 410 | - if ( is_wp_error( $data_to_update ) ) { |
|
| 410 | + if (is_wp_error($data_to_update)) { |
|
| 411 | 411 | return $data_to_update; |
| 412 | 412 | } |
| 413 | 413 | |
| 414 | - if( empty( $data_to_update['meta_input'] ) ) { |
|
| 415 | - unset( $data_to_update['meta_input'] ); |
|
| 414 | + if (empty($data_to_update['meta_input'])) { |
|
| 415 | + unset($data_to_update['meta_input']); |
|
| 416 | 416 | } |
| 417 | 417 | |
| 418 | 418 | // Abort if no item data is provided |
| 419 | - if( empty( $data_to_update ) ) { |
|
| 420 | - return new WP_Error( 'missing_data', __( 'An update request cannot be empty.', 'invoicing' ) ); |
|
| 419 | + if (empty($data_to_update)) { |
|
| 420 | + return new WP_Error('missing_data', __('An update request cannot be empty.', 'invoicing')); |
|
| 421 | 421 | } |
| 422 | 422 | |
| 423 | 423 | // post_status |
| 424 | - if( ! empty( $data_to_update['post_status'] ) ) { |
|
| 425 | - wpinv_update_discount_status( $request['id'], $data_to_update['post_status'] ); |
|
| 426 | - unset( $data_to_update['post_status'] ); |
|
| 424 | + if (!empty($data_to_update['post_status'])) { |
|
| 425 | + wpinv_update_discount_status($request['id'], $data_to_update['post_status']); |
|
| 426 | + unset($data_to_update['post_status']); |
|
| 427 | 427 | } |
| 428 | 428 | |
| 429 | 429 | // Update the item |
| 430 | - if( ! empty( $data_to_update ) ) { |
|
| 430 | + if (!empty($data_to_update)) { |
|
| 431 | 431 | |
| 432 | 432 | // Include the item ID |
| 433 | 433 | $data_to_update['ID'] = $request['id']; |
| 434 | 434 | |
| 435 | - $updated = wp_update_post( $data_to_update, true ); |
|
| 435 | + $updated = wp_update_post($data_to_update, true); |
|
| 436 | 436 | |
| 437 | 437 | // Incase the update operation failed... |
| 438 | - if ( is_wp_error( $updated ) ) { |
|
| 438 | + if (is_wp_error($updated)) { |
|
| 439 | 439 | return $updated; |
| 440 | 440 | } |
| 441 | 441 | |
| 442 | 442 | } |
| 443 | 443 | |
| 444 | - $updated_discount = get_post( $request['id'] ); |
|
| 444 | + $updated_discount = get_post($request['id']); |
|
| 445 | 445 | |
| 446 | 446 | // Prepare the response |
| 447 | - $response = $this->prepare_item_for_response( $updated_discount, $request ); |
|
| 447 | + $response = $this->prepare_item_for_response($updated_discount, $request); |
|
| 448 | 448 | |
| 449 | 449 | /** This action is documented in includes/class-wpinv-rest-item-controller.php */ |
| 450 | - do_action( "wpinv_rest_insert_discount", $updated_discount, $request, false ); |
|
| 450 | + do_action("wpinv_rest_insert_discount", $updated_discount, $request, false); |
|
| 451 | 451 | |
| 452 | 452 | /** |
| 453 | 453 | * Filters the responses for updating single discount requests. |
@@ -459,9 +459,9 @@ discard block |
||
| 459 | 459 | * @param array $data_to_update Discount properties. |
| 460 | 460 | * @param WP_REST_Request $request The request used. |
| 461 | 461 | */ |
| 462 | - $response = apply_filters( "wpinv_rest_update_discount_response", $response, $data_to_update, $request ); |
|
| 462 | + $response = apply_filters("wpinv_rest_update_discount_response", $response, $data_to_update, $request); |
|
| 463 | 463 | |
| 464 | - return rest_ensure_response( $response ); |
|
| 464 | + return rest_ensure_response($response); |
|
| 465 | 465 | } |
| 466 | 466 | |
| 467 | 467 | /** |
@@ -472,19 +472,19 @@ discard block |
||
| 472 | 472 | * @param WP_REST_Request $request Full details about the request. |
| 473 | 473 | * @return true|WP_Error True if the request has access to delete the discount, WP_Error object otherwise. |
| 474 | 474 | */ |
| 475 | - public function delete_item_permissions_check( $request ) { |
|
| 475 | + public function delete_item_permissions_check($request) { |
|
| 476 | 476 | |
| 477 | 477 | // Retrieve the discount. |
| 478 | - $discount = $this->get_post( $request['id'] ); |
|
| 479 | - if ( is_wp_error( $discount ) ) { |
|
| 478 | + $discount = $this->get_post($request['id']); |
|
| 479 | + if (is_wp_error($discount)) { |
|
| 480 | 480 | return $discount; |
| 481 | 481 | } |
| 482 | 482 | |
| 483 | 483 | // Ensure the current user can delete the discount |
| 484 | - if (! wpinv_current_user_can_manage_invoicing() ) { |
|
| 484 | + if (!wpinv_current_user_can_manage_invoicing()) { |
|
| 485 | 485 | return new WP_Error( |
| 486 | 486 | 'rest_cannot_delete', |
| 487 | - __( 'Sorry, you are not allowed to delete this discount.', 'invoicing' ), |
|
| 487 | + __('Sorry, you are not allowed to delete this discount.', 'invoicing'), |
|
| 488 | 488 | array( |
| 489 | 489 | 'status' => rest_authorization_required_code(), |
| 490 | 490 | ) |
@@ -502,24 +502,24 @@ discard block |
||
| 502 | 502 | * @param WP_REST_Request $request Full details about the request. |
| 503 | 503 | * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure. |
| 504 | 504 | */ |
| 505 | - public function delete_item( $request ) { |
|
| 505 | + public function delete_item($request) { |
|
| 506 | 506 | |
| 507 | 507 | // Retrieve the discount. |
| 508 | - $discount = $this->get_post( $request['id'] ); |
|
| 509 | - if ( is_wp_error( $discount ) ) { |
|
| 508 | + $discount = $this->get_post($request['id']); |
|
| 509 | + if (is_wp_error($discount)) { |
|
| 510 | 510 | return $discount; |
| 511 | 511 | } |
| 512 | 512 | |
| 513 | - $request->set_param( 'context', 'edit' ); |
|
| 513 | + $request->set_param('context', 'edit'); |
|
| 514 | 514 | |
| 515 | 515 | // Prepare the discount id |
| 516 | - $id = $discount->ID; |
|
| 516 | + $id = $discount->ID; |
|
| 517 | 517 | |
| 518 | 518 | // Prepare the response |
| 519 | - $response = $this->prepare_item_for_response( $discount, $request ); |
|
| 519 | + $response = $this->prepare_item_for_response($discount, $request); |
|
| 520 | 520 | |
| 521 | 521 | // Delete the discount... |
| 522 | - wpinv_remove_discount( $id ); |
|
| 522 | + wpinv_remove_discount($id); |
|
| 523 | 523 | |
| 524 | 524 | /** |
| 525 | 525 | * Fires immediately after a single discount is deleted via the REST API. |
@@ -530,7 +530,7 @@ discard block |
||
| 530 | 530 | * @param WP_POST $discount The deleted discount. |
| 531 | 531 | * @param WP_REST_Request $request The request sent to the API. |
| 532 | 532 | */ |
| 533 | - do_action( "wpinv_rest_delete_discount", $discount, $request ); |
|
| 533 | + do_action("wpinv_rest_delete_discount", $discount, $request); |
|
| 534 | 534 | |
| 535 | 535 | return $response; |
| 536 | 536 | |
@@ -546,44 +546,44 @@ discard block |
||
| 546 | 546 | */ |
| 547 | 547 | public function get_collection_params() { |
| 548 | 548 | |
| 549 | - $query_params = array( |
|
| 549 | + $query_params = array( |
|
| 550 | 550 | |
| 551 | 551 | // Discount status. |
| 552 | 552 | 'status' => array( |
| 553 | 553 | 'default' => 'publish', |
| 554 | - 'description' => __( 'Limit result set to discounts assigned one or more statuses.', 'invoicing' ), |
|
| 554 | + 'description' => __('Limit result set to discounts assigned one or more statuses.', 'invoicing'), |
|
| 555 | 555 | 'type' => 'array', |
| 556 | - 'sanitize_callback' => array( $this, 'sanitize_post_statuses' ), |
|
| 556 | + 'sanitize_callback' => array($this, 'sanitize_post_statuses'), |
|
| 557 | 557 | ), |
| 558 | 558 | |
| 559 | 559 | // Discount types |
| 560 | 560 | 'type' => array( |
| 561 | - 'description' => __( 'Type of discounts to fetch.', 'invoicing' ), |
|
| 561 | + 'description' => __('Type of discounts to fetch.', 'invoicing'), |
|
| 562 | 562 | 'type' => 'array', |
| 563 | - 'default' => array_keys( wpinv_get_discount_types() ), |
|
| 563 | + 'default' => array_keys(wpinv_get_discount_types()), |
|
| 564 | 564 | 'items' => array( |
| 565 | - 'enum' => array_keys( wpinv_get_discount_types() ), |
|
| 565 | + 'enum' => array_keys(wpinv_get_discount_types()), |
|
| 566 | 566 | 'type' => 'string', |
| 567 | 567 | ), |
| 568 | 568 | ), |
| 569 | 569 | |
| 570 | 570 | // Number of results per page |
| 571 | 571 | 'limit' => array( |
| 572 | - 'description' => __( 'Number of discounts to fetch.', 'invoicing' ), |
|
| 572 | + 'description' => __('Number of discounts to fetch.', 'invoicing'), |
|
| 573 | 573 | 'type' => 'integer', |
| 574 | - 'default' => (int) get_option( 'posts_per_page' ), |
|
| 574 | + 'default' => (int) get_option('posts_per_page'), |
|
| 575 | 575 | ), |
| 576 | 576 | |
| 577 | 577 | // Pagination |
| 578 | 578 | 'page' => array( |
| 579 | - 'description' => __( 'Current page to fetch.', 'invoicing' ), |
|
| 579 | + 'description' => __('Current page to fetch.', 'invoicing'), |
|
| 580 | 580 | 'type' => 'integer', |
| 581 | 581 | 'default' => 1, |
| 582 | 582 | ), |
| 583 | 583 | |
| 584 | 584 | // Exclude certain items |
| 585 | 585 | 'exclude' => array( |
| 586 | - 'description' => __( 'Ensure result set excludes specific IDs.', 'invoicing' ), |
|
| 586 | + 'description' => __('Ensure result set excludes specific IDs.', 'invoicing'), |
|
| 587 | 587 | 'type' => 'array', |
| 588 | 588 | 'items' => array( |
| 589 | 589 | 'type' => 'integer', |
@@ -593,7 +593,7 @@ discard block |
||
| 593 | 593 | |
| 594 | 594 | // Order discounts by |
| 595 | 595 | 'orderby' => array( |
| 596 | - 'description' => __( 'Sort discounts by object attribute.', 'invoicing' ), |
|
| 596 | + 'description' => __('Sort discounts by object attribute.', 'invoicing'), |
|
| 597 | 597 | 'type' => 'string', |
| 598 | 598 | 'default' => 'date', |
| 599 | 599 | 'enum' => array( |
@@ -609,15 +609,15 @@ discard block |
||
| 609 | 609 | |
| 610 | 610 | // How to order |
| 611 | 611 | 'order' => array( |
| 612 | - 'description' => __( 'Order sort attribute ascending or descending.', 'invoicing' ), |
|
| 612 | + 'description' => __('Order sort attribute ascending or descending.', 'invoicing'), |
|
| 613 | 613 | 'type' => 'string', |
| 614 | 614 | 'default' => 'DESC', |
| 615 | - 'enum' => array( 'ASC', 'DESC' ), |
|
| 615 | + 'enum' => array('ASC', 'DESC'), |
|
| 616 | 616 | ), |
| 617 | 617 | |
| 618 | 618 | // Search term |
| 619 | 619 | 'search' => array( |
| 620 | - 'description' => __( 'Return discounts that match the search term.', 'invoicing' ), |
|
| 620 | + 'description' => __('Return discounts that match the search term.', 'invoicing'), |
|
| 621 | 621 | 'type' => 'string', |
| 622 | 622 | ), |
| 623 | 623 | ); |
@@ -630,7 +630,7 @@ discard block |
||
| 630 | 630 | * |
| 631 | 631 | * @param array $query_params JSON Schema-formatted collection parameters. |
| 632 | 632 | */ |
| 633 | - return apply_filters( "wpinv_rest_discounts_collection_params", $query_params ); |
|
| 633 | + return apply_filters("wpinv_rest_discounts_collection_params", $query_params); |
|
| 634 | 634 | } |
| 635 | 635 | |
| 636 | 636 | /** |
@@ -641,7 +641,7 @@ discard block |
||
| 641 | 641 | * @param object|string $post_type Post type name or object. |
| 642 | 642 | * @return bool Whether the post type is allowed in REST. |
| 643 | 643 | */ |
| 644 | - protected function check_is_post_type_allowed( $post_type ) { |
|
| 644 | + protected function check_is_post_type_allowed($post_type) { |
|
| 645 | 645 | return true; |
| 646 | 646 | } |
| 647 | 647 | |
@@ -653,93 +653,93 @@ discard block |
||
| 653 | 653 | * @param WP_REST_Request $request Request object. |
| 654 | 654 | * @return array|WP_Error Discount Properties or WP_Error. |
| 655 | 655 | */ |
| 656 | - protected function prepare_item_for_database( $request ) { |
|
| 657 | - $prepared_item = new stdClass(); |
|
| 656 | + protected function prepare_item_for_database($request) { |
|
| 657 | + $prepared_item = new stdClass(); |
|
| 658 | 658 | $prepared_item->meta_input = array(); |
| 659 | 659 | |
| 660 | 660 | // Post ID. |
| 661 | - if ( isset( $request['id'] ) ) { |
|
| 662 | - $existing_item = $this->get_post( $request['id'] ); |
|
| 663 | - if ( is_wp_error( $existing_item ) ) { |
|
| 661 | + if (isset($request['id'])) { |
|
| 662 | + $existing_item = $this->get_post($request['id']); |
|
| 663 | + if (is_wp_error($existing_item)) { |
|
| 664 | 664 | return $existing_item; |
| 665 | 665 | } |
| 666 | 666 | |
| 667 | - $prepared_item->ID = $existing_item->ID; |
|
| 667 | + $prepared_item->ID = $existing_item->ID; |
|
| 668 | 668 | } |
| 669 | 669 | |
| 670 | 670 | $schema = $this->get_item_schema(); |
| 671 | 671 | |
| 672 | 672 | // item title. |
| 673 | - if ( ! empty( $schema['properties']['title'] ) && isset( $request['title'] ) ) { |
|
| 674 | - $prepared_item->post_title = sanitize_text_field( $request['title'] ); |
|
| 673 | + if (!empty($schema['properties']['title']) && isset($request['title'])) { |
|
| 674 | + $prepared_item->post_title = sanitize_text_field($request['title']); |
|
| 675 | 675 | } |
| 676 | 676 | |
| 677 | 677 | // item status. |
| 678 | - if ( ! empty( $schema['properties']['status'] ) && isset( $request['status'] ) && in_array( $request['status'], array_keys( get_post_stati( array( 'internal' => false ) ) ) ) ) { |
|
| 679 | - $prepared_item->post_status = sanitize_text_field( $request['status'] ); |
|
| 678 | + if (!empty($schema['properties']['status']) && isset($request['status']) && in_array($request['status'], array_keys(get_post_stati(array('internal' => false))))) { |
|
| 679 | + $prepared_item->post_status = sanitize_text_field($request['status']); |
|
| 680 | 680 | } |
| 681 | 681 | |
| 682 | 682 | // Code. |
| 683 | - if ( ! empty( $schema['properties']['code'] ) && isset( $request['code'] ) ) { |
|
| 684 | - $prepared_item->meta_input['_wpi_discount_code'] = trim( $request['code'] ); |
|
| 683 | + if (!empty($schema['properties']['code']) && isset($request['code'])) { |
|
| 684 | + $prepared_item->meta_input['_wpi_discount_code'] = trim($request['code']); |
|
| 685 | 685 | } |
| 686 | 686 | |
| 687 | 687 | // Type. |
| 688 | - if ( ! empty( $schema['properties']['type'] ) && isset( $request['type'] ) && in_array( $request['type'], array_keys( wpinv_get_discount_types() ) ) ) { |
|
| 689 | - $prepared_item->meta_input['_wpi_discount_type'] = trim( $request['type'] ); |
|
| 688 | + if (!empty($schema['properties']['type']) && isset($request['type']) && in_array($request['type'], array_keys(wpinv_get_discount_types()))) { |
|
| 689 | + $prepared_item->meta_input['_wpi_discount_type'] = trim($request['type']); |
|
| 690 | 690 | } |
| 691 | 691 | |
| 692 | 692 | // Amount. |
| 693 | - if ( ! empty( $schema['properties']['amount'] ) && isset( $request['amount'] ) ) { |
|
| 694 | - $prepared_item->meta_input['_wpi_discount_amount'] = floatval( $request['amount'] ); |
|
| 693 | + if (!empty($schema['properties']['amount']) && isset($request['amount'])) { |
|
| 694 | + $prepared_item->meta_input['_wpi_discount_amount'] = floatval($request['amount']); |
|
| 695 | 695 | } |
| 696 | 696 | |
| 697 | 697 | // Items. |
| 698 | - if ( ! empty( $schema['properties']['items'] ) && isset( $request['items'] ) ) { |
|
| 699 | - $prepared_item->meta_input['_wpi_discount_items'] = wpinv_parse_list( $request['items'] ); |
|
| 698 | + if (!empty($schema['properties']['items']) && isset($request['items'])) { |
|
| 699 | + $prepared_item->meta_input['_wpi_discount_items'] = wpinv_parse_list($request['items']); |
|
| 700 | 700 | } |
| 701 | 701 | |
| 702 | 702 | // Excluded Items. |
| 703 | - if ( ! empty( $schema['properties']['exclude_items'] ) && isset( $request['exclude_items'] ) ) { |
|
| 704 | - $prepared_item->meta_input['_wpi_discount_excluded_items'] = wpinv_parse_list( $request['exclude_items'] ); |
|
| 703 | + if (!empty($schema['properties']['exclude_items']) && isset($request['exclude_items'])) { |
|
| 704 | + $prepared_item->meta_input['_wpi_discount_excluded_items'] = wpinv_parse_list($request['exclude_items']); |
|
| 705 | 705 | } |
| 706 | 706 | |
| 707 | 707 | // Start date. |
| 708 | - if ( ! empty( $schema['properties']['start_date'] ) && isset( $request['start_date'] ) ) { |
|
| 709 | - $prepared_item->meta_input['_wpi_discount_start'] = trim( $request['start_date'] ); |
|
| 708 | + if (!empty($schema['properties']['start_date']) && isset($request['start_date'])) { |
|
| 709 | + $prepared_item->meta_input['_wpi_discount_start'] = trim($request['start_date']); |
|
| 710 | 710 | } |
| 711 | 711 | |
| 712 | 712 | // End date. |
| 713 | - if ( ! empty( $schema['properties']['end_date'] ) && isset( $request['end_date'] ) ) { |
|
| 714 | - $prepared_item->meta_input['_wpi_discount_expiration'] = trim( $request['end_date'] ); |
|
| 713 | + if (!empty($schema['properties']['end_date']) && isset($request['end_date'])) { |
|
| 714 | + $prepared_item->meta_input['_wpi_discount_expiration'] = trim($request['end_date']); |
|
| 715 | 715 | } |
| 716 | 716 | |
| 717 | 717 | // Minimum amount. |
| 718 | - if ( ! empty( $schema['properties']['minimum_amount'] ) && isset( $request['minimum_amount'] ) ) { |
|
| 719 | - $prepared_item->meta_input['_wpi_discount_min_total'] = floatval( $request['minimum_amount'] ); |
|
| 718 | + if (!empty($schema['properties']['minimum_amount']) && isset($request['minimum_amount'])) { |
|
| 719 | + $prepared_item->meta_input['_wpi_discount_min_total'] = floatval($request['minimum_amount']); |
|
| 720 | 720 | } |
| 721 | 721 | |
| 722 | 722 | // Maximum amount. |
| 723 | - if ( ! empty( $schema['properties']['maximum_amount'] ) && isset( $request['maximum_amount'] ) ) { |
|
| 724 | - $prepared_item->meta_input['_wpi_discount_max_total'] = floatval( $request['maximum_amount'] ); |
|
| 723 | + if (!empty($schema['properties']['maximum_amount']) && isset($request['maximum_amount'])) { |
|
| 724 | + $prepared_item->meta_input['_wpi_discount_max_total'] = floatval($request['maximum_amount']); |
|
| 725 | 725 | } |
| 726 | 726 | |
| 727 | 727 | // Recurring. |
| 728 | - if ( ! empty( $schema['properties']['recurring'] ) && isset( $request['recurring'] ) ) { |
|
| 729 | - $prepared_item->meta_input['_wpi_discount_is_recurring'] = empty( (int) $request['recurring'] ) ? 0 : 1; |
|
| 728 | + if (!empty($schema['properties']['recurring']) && isset($request['recurring'])) { |
|
| 729 | + $prepared_item->meta_input['_wpi_discount_is_recurring'] = empty((int) $request['recurring']) ? 0 : 1; |
|
| 730 | 730 | } |
| 731 | 731 | |
| 732 | 732 | // Maximum uses. |
| 733 | - if ( ! empty( $schema['properties']['max_uses'] ) && isset( $request['max_uses'] ) ) { |
|
| 734 | - $prepared_item->meta_input['_wpi_discount_max_uses'] = intval( $request['max_uses'] ); |
|
| 733 | + if (!empty($schema['properties']['max_uses']) && isset($request['max_uses'])) { |
|
| 734 | + $prepared_item->meta_input['_wpi_discount_max_uses'] = intval($request['max_uses']); |
|
| 735 | 735 | } |
| 736 | 736 | |
| 737 | 737 | // Single use. |
| 738 | - if ( ! empty( $schema['properties']['single_use'] ) && isset( $request['single_use'] ) ) { |
|
| 739 | - $prepared_item->meta_input['_wpi_discount_is_single_use'] = empty( (int) $request['single_use'] ) ? 0 : 1; |
|
| 738 | + if (!empty($schema['properties']['single_use']) && isset($request['single_use'])) { |
|
| 739 | + $prepared_item->meta_input['_wpi_discount_is_single_use'] = empty((int) $request['single_use']) ? 0 : 1; |
|
| 740 | 740 | } |
| 741 | 741 | |
| 742 | - $discount_data = (array) wp_unslash( $prepared_item ); |
|
| 742 | + $discount_data = (array) wp_unslash($prepared_item); |
|
| 743 | 743 | |
| 744 | 744 | /** |
| 745 | 745 | * Filters an item before it is inserted via the REST API. |
@@ -749,7 +749,7 @@ discard block |
||
| 749 | 749 | * @param array $discount_data An array of discount data |
| 750 | 750 | * @param WP_REST_Request $request Request object. |
| 751 | 751 | */ |
| 752 | - return apply_filters( "wpinv_rest_pre_insert_discount", $discount_data, $request ); |
|
| 752 | + return apply_filters("wpinv_rest_pre_insert_discount", $discount_data, $request); |
|
| 753 | 753 | |
| 754 | 754 | } |
| 755 | 755 | |
@@ -762,110 +762,110 @@ discard block |
||
| 762 | 762 | * @param WP_REST_Request $request Request object. |
| 763 | 763 | * @return WP_REST_Response Response object. |
| 764 | 764 | */ |
| 765 | - public function prepare_item_for_response( $discount, $request ) { |
|
| 765 | + public function prepare_item_for_response($discount, $request) { |
|
| 766 | 766 | |
| 767 | - $GLOBALS['post'] = get_post( $discount->ID ); |
|
| 767 | + $GLOBALS['post'] = get_post($discount->ID); |
|
| 768 | 768 | |
| 769 | - setup_postdata( $discount->ID ); |
|
| 769 | + setup_postdata($discount->ID); |
|
| 770 | 770 | |
| 771 | 771 | // Fetch the fields to include in this response. |
| 772 | - $fields = $this->get_fields_for_response( $request ); |
|
| 772 | + $fields = $this->get_fields_for_response($request); |
|
| 773 | 773 | |
| 774 | 774 | // Base fields for every discount. |
| 775 | 775 | $data = array(); |
| 776 | 776 | |
| 777 | 777 | // Set up ID. |
| 778 | - if ( rest_is_field_included( 'id', $fields ) ) { |
|
| 778 | + if (rest_is_field_included('id', $fields)) { |
|
| 779 | 779 | $data['id'] = $discount->ID; |
| 780 | 780 | } |
| 781 | 781 | |
| 782 | 782 | // Title. |
| 783 | - if ( rest_is_field_included( 'title', $fields ) ) { |
|
| 784 | - $data['title'] = get_the_title( $discount->ID ); |
|
| 783 | + if (rest_is_field_included('title', $fields)) { |
|
| 784 | + $data['title'] = get_the_title($discount->ID); |
|
| 785 | 785 | } |
| 786 | 786 | |
| 787 | 787 | // Code. |
| 788 | - if ( rest_is_field_included( 'code', $fields ) ) { |
|
| 789 | - $data['code'] = wpinv_get_discount_code( $discount->ID ); |
|
| 788 | + if (rest_is_field_included('code', $fields)) { |
|
| 789 | + $data['code'] = wpinv_get_discount_code($discount->ID); |
|
| 790 | 790 | } |
| 791 | 791 | |
| 792 | 792 | // Type. |
| 793 | - if ( rest_is_field_included( 'type', $fields ) ) { |
|
| 794 | - $data['type'] = wpinv_get_discount_type( $discount->ID ); |
|
| 793 | + if (rest_is_field_included('type', $fields)) { |
|
| 794 | + $data['type'] = wpinv_get_discount_type($discount->ID); |
|
| 795 | 795 | } |
| 796 | 796 | |
| 797 | 797 | // Amount. |
| 798 | - if ( rest_is_field_included( 'amount', $fields ) ) { |
|
| 799 | - $data['amount'] = wpinv_get_discount_amount( $discount->ID ); |
|
| 798 | + if (rest_is_field_included('amount', $fields)) { |
|
| 799 | + $data['amount'] = wpinv_get_discount_amount($discount->ID); |
|
| 800 | 800 | } |
| 801 | 801 | |
| 802 | 802 | // Status. |
| 803 | - if ( rest_is_field_included( 'status', $fields ) ) { |
|
| 804 | - $data['status'] = get_post_status( $discount->ID ); |
|
| 803 | + if (rest_is_field_included('status', $fields)) { |
|
| 804 | + $data['status'] = get_post_status($discount->ID); |
|
| 805 | 805 | } |
| 806 | 806 | |
| 807 | 807 | // Items. |
| 808 | - if ( rest_is_field_included( 'items', $fields ) ) { |
|
| 809 | - $data['items'] = wpinv_get_discount_item_reqs( $discount->ID ); |
|
| 808 | + if (rest_is_field_included('items', $fields)) { |
|
| 809 | + $data['items'] = wpinv_get_discount_item_reqs($discount->ID); |
|
| 810 | 810 | } |
| 811 | 811 | |
| 812 | 812 | // Excluded Items. |
| 813 | - if ( rest_is_field_included( 'exclude_items', $fields ) ) { |
|
| 814 | - $data['exclude_items'] = wpinv_get_discount_excluded_items( $discount->ID ); |
|
| 813 | + if (rest_is_field_included('exclude_items', $fields)) { |
|
| 814 | + $data['exclude_items'] = wpinv_get_discount_excluded_items($discount->ID); |
|
| 815 | 815 | } |
| 816 | 816 | |
| 817 | 817 | // Start date. |
| 818 | - if ( rest_is_field_included( 'start_date', $fields ) ) { |
|
| 819 | - $data['start_date'] = wpinv_get_discount_start_date( $discount->ID ); |
|
| 818 | + if (rest_is_field_included('start_date', $fields)) { |
|
| 819 | + $data['start_date'] = wpinv_get_discount_start_date($discount->ID); |
|
| 820 | 820 | } |
| 821 | 821 | |
| 822 | 822 | // End date. |
| 823 | - if ( rest_is_field_included( 'end_date', $fields ) ) { |
|
| 824 | - $data['end_date'] = wpinv_get_discount_expiration( $discount->ID ); |
|
| 823 | + if (rest_is_field_included('end_date', $fields)) { |
|
| 824 | + $data['end_date'] = wpinv_get_discount_expiration($discount->ID); |
|
| 825 | 825 | } |
| 826 | 826 | |
| 827 | 827 | // Minimum amount. |
| 828 | - if ( rest_is_field_included( 'minimum_amount', $fields ) ) { |
|
| 829 | - $data['minimum_amount'] = wpinv_get_discount_min_total( $discount->ID ); |
|
| 828 | + if (rest_is_field_included('minimum_amount', $fields)) { |
|
| 829 | + $data['minimum_amount'] = wpinv_get_discount_min_total($discount->ID); |
|
| 830 | 830 | } |
| 831 | 831 | |
| 832 | 832 | // Maximum amount. |
| 833 | - if ( rest_is_field_included( 'maximum_amount', $fields ) ) { |
|
| 834 | - $data['maximum_amount'] = wpinv_get_discount_max_total( $discount->ID ); |
|
| 833 | + if (rest_is_field_included('maximum_amount', $fields)) { |
|
| 834 | + $data['maximum_amount'] = wpinv_get_discount_max_total($discount->ID); |
|
| 835 | 835 | } |
| 836 | 836 | |
| 837 | 837 | // Recurring. |
| 838 | - if ( rest_is_field_included( 'recurring', $fields ) ) { |
|
| 839 | - $data['recurring'] = wpinv_discount_is_recurring( $discount->ID ); |
|
| 838 | + if (rest_is_field_included('recurring', $fields)) { |
|
| 839 | + $data['recurring'] = wpinv_discount_is_recurring($discount->ID); |
|
| 840 | 840 | } |
| 841 | 841 | |
| 842 | 842 | // Maximum uses. |
| 843 | - if ( rest_is_field_included( 'max_uses', $fields ) ) { |
|
| 844 | - $data['max_uses'] = wpinv_get_discount_max_uses( $discount->ID ); |
|
| 843 | + if (rest_is_field_included('max_uses', $fields)) { |
|
| 844 | + $data['max_uses'] = wpinv_get_discount_max_uses($discount->ID); |
|
| 845 | 845 | } |
| 846 | 846 | |
| 847 | 847 | // Single use. |
| 848 | - if ( rest_is_field_included( 'single_use', $fields ) ) { |
|
| 849 | - $data['single_use'] = wpinv_discount_is_single_use( $discount->ID ); |
|
| 848 | + if (rest_is_field_included('single_use', $fields)) { |
|
| 849 | + $data['single_use'] = wpinv_discount_is_single_use($discount->ID); |
|
| 850 | 850 | } |
| 851 | 851 | |
| 852 | - $context = ! empty( $request['context'] ) ? $request['context'] : 'view'; |
|
| 853 | - $data = $this->add_additional_fields_to_object( $data, $request ); |
|
| 854 | - $data = $this->filter_response_by_context( $data, $context ); |
|
| 852 | + $context = !empty($request['context']) ? $request['context'] : 'view'; |
|
| 853 | + $data = $this->add_additional_fields_to_object($data, $request); |
|
| 854 | + $data = $this->filter_response_by_context($data, $context); |
|
| 855 | 855 | |
| 856 | 856 | // Wrap the data in a response object. |
| 857 | - $response = rest_ensure_response( $data ); |
|
| 857 | + $response = rest_ensure_response($data); |
|
| 858 | 858 | |
| 859 | - $links = $this->prepare_links( $discount ); |
|
| 860 | - $response->add_links( $links ); |
|
| 859 | + $links = $this->prepare_links($discount); |
|
| 860 | + $response->add_links($links); |
|
| 861 | 861 | |
| 862 | - if ( ! empty( $links['self']['href'] ) ) { |
|
| 863 | - $actions = $this->get_available_actions( $discount, $request ); |
|
| 862 | + if (!empty($links['self']['href'])) { |
|
| 863 | + $actions = $this->get_available_actions($discount, $request); |
|
| 864 | 864 | |
| 865 | 865 | $self = $links['self']['href']; |
| 866 | 866 | |
| 867 | - foreach ( $actions as $rel ) { |
|
| 868 | - $response->add_link( $rel, $self ); |
|
| 867 | + foreach ($actions as $rel) { |
|
| 868 | + $response->add_link($rel, $self); |
|
| 869 | 869 | } |
| 870 | 870 | } |
| 871 | 871 | |
@@ -878,7 +878,7 @@ discard block |
||
| 878 | 878 | * @param WP_Post $discount The discount post object. |
| 879 | 879 | * @param WP_REST_Request $request Request object. |
| 880 | 880 | */ |
| 881 | - return apply_filters( "wpinv_rest_prepare_discount", $response, $discount, $request ); |
|
| 881 | + return apply_filters("wpinv_rest_prepare_discount", $response, $discount, $request); |
|
| 882 | 882 | } |
| 883 | 883 | |
| 884 | 884 | /** |
@@ -891,57 +891,57 @@ discard block |
||
| 891 | 891 | * @param WP_REST_Request $request Full details about the request. |
| 892 | 892 | * @return array Fields to be included in the response. |
| 893 | 893 | */ |
| 894 | - public function get_fields_for_response( $request ) { |
|
| 894 | + public function get_fields_for_response($request) { |
|
| 895 | 895 | $schema = $this->get_item_schema(); |
| 896 | - $properties = isset( $schema['properties'] ) ? $schema['properties'] : array(); |
|
| 896 | + $properties = isset($schema['properties']) ? $schema['properties'] : array(); |
|
| 897 | 897 | |
| 898 | 898 | $additional_fields = $this->get_additional_fields(); |
| 899 | - foreach ( $additional_fields as $field_name => $field_options ) { |
|
| 899 | + foreach ($additional_fields as $field_name => $field_options) { |
|
| 900 | 900 | // For back-compat, include any field with an empty schema |
| 901 | 901 | // because it won't be present in $this->get_item_schema(). |
| 902 | - if ( is_null( $field_options['schema'] ) ) { |
|
| 903 | - $properties[ $field_name ] = $field_options; |
|
| 902 | + if (is_null($field_options['schema'])) { |
|
| 903 | + $properties[$field_name] = $field_options; |
|
| 904 | 904 | } |
| 905 | 905 | } |
| 906 | 906 | |
| 907 | 907 | // Exclude fields that specify a different context than the request context. |
| 908 | 908 | $context = $request['context']; |
| 909 | - if ( $context ) { |
|
| 910 | - foreach ( $properties as $name => $options ) { |
|
| 911 | - if ( ! empty( $options['context'] ) && ! in_array( $context, $options['context'], true ) ) { |
|
| 912 | - unset( $properties[ $name ] ); |
|
| 909 | + if ($context) { |
|
| 910 | + foreach ($properties as $name => $options) { |
|
| 911 | + if (!empty($options['context']) && !in_array($context, $options['context'], true)) { |
|
| 912 | + unset($properties[$name]); |
|
| 913 | 913 | } |
| 914 | 914 | } |
| 915 | 915 | } |
| 916 | 916 | |
| 917 | - $fields = array_keys( $properties ); |
|
| 917 | + $fields = array_keys($properties); |
|
| 918 | 918 | |
| 919 | - if ( ! isset( $request['_fields'] ) ) { |
|
| 919 | + if (!isset($request['_fields'])) { |
|
| 920 | 920 | return $fields; |
| 921 | 921 | } |
| 922 | - $requested_fields = wpinv_parse_list( $request['_fields'] ); |
|
| 923 | - if ( 0 === count( $requested_fields ) ) { |
|
| 922 | + $requested_fields = wpinv_parse_list($request['_fields']); |
|
| 923 | + if (0 === count($requested_fields)) { |
|
| 924 | 924 | return $fields; |
| 925 | 925 | } |
| 926 | 926 | // Trim off outside whitespace from the comma delimited list. |
| 927 | - $requested_fields = array_map( 'trim', $requested_fields ); |
|
| 927 | + $requested_fields = array_map('trim', $requested_fields); |
|
| 928 | 928 | // Always persist 'id', because it can be needed for add_additional_fields_to_object(). |
| 929 | - if ( in_array( 'id', $fields, true ) ) { |
|
| 929 | + if (in_array('id', $fields, true)) { |
|
| 930 | 930 | $requested_fields[] = 'id'; |
| 931 | 931 | } |
| 932 | 932 | // Return the list of all requested fields which appear in the schema. |
| 933 | 933 | return array_reduce( |
| 934 | 934 | $requested_fields, |
| 935 | - function( $response_fields, $field ) use ( $fields ) { |
|
| 936 | - if ( in_array( $field, $fields, true ) ) { |
|
| 935 | + function($response_fields, $field) use ($fields) { |
|
| 936 | + if (in_array($field, $fields, true)) { |
|
| 937 | 937 | $response_fields[] = $field; |
| 938 | 938 | return $response_fields; |
| 939 | 939 | } |
| 940 | 940 | // Check for nested fields if $field is not a direct match. |
| 941 | - $nested_fields = explode( '.', $field ); |
|
| 941 | + $nested_fields = explode('.', $field); |
|
| 942 | 942 | // A nested field is included so long as its top-level property is |
| 943 | 943 | // present in the schema. |
| 944 | - if ( in_array( $nested_fields[0], $fields, true ) ) { |
|
| 944 | + if (in_array($nested_fields[0], $fields, true)) { |
|
| 945 | 945 | $response_fields[] = $field; |
| 946 | 946 | } |
| 947 | 947 | return $response_fields; |
@@ -960,8 +960,8 @@ discard block |
||
| 960 | 960 | public function get_item_schema() { |
| 961 | 961 | |
| 962 | 962 | // Maybe retrieve the schema from cache. |
| 963 | - if ( empty( $this->schema ) ) { |
|
| 964 | - return $this->add_additional_fields_schema( $this->schema ); |
|
| 963 | + if (empty($this->schema)) { |
|
| 964 | + return $this->add_additional_fields_schema($this->schema); |
|
| 965 | 965 | } |
| 966 | 966 | |
| 967 | 967 | $schema = array( |
@@ -973,99 +973,99 @@ discard block |
||
| 973 | 973 | 'properties' => array( |
| 974 | 974 | |
| 975 | 975 | 'id' => array( |
| 976 | - 'description' => __( 'Unique identifier for the discount.', 'invoicing' ), |
|
| 976 | + 'description' => __('Unique identifier for the discount.', 'invoicing'), |
|
| 977 | 977 | 'type' => 'integer', |
| 978 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
| 978 | + 'context' => array('view', 'edit', 'embed'), |
|
| 979 | 979 | 'readonly' => true, |
| 980 | 980 | ), |
| 981 | 981 | |
| 982 | 982 | 'title' => array( |
| 983 | - 'description' => __( 'The title for the discount.', 'invoicing' ), |
|
| 983 | + 'description' => __('The title for the discount.', 'invoicing'), |
|
| 984 | 984 | 'type' => 'string', |
| 985 | - 'context' => array( 'view', 'edit' ), |
|
| 985 | + 'context' => array('view', 'edit'), |
|
| 986 | 986 | ), |
| 987 | 987 | |
| 988 | 988 | 'code' => array( |
| 989 | - 'description' => __( 'The discount code.', 'invoicing' ), |
|
| 989 | + 'description' => __('The discount code.', 'invoicing'), |
|
| 990 | 990 | 'type' => 'string', |
| 991 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
| 991 | + 'context' => array('view', 'edit', 'embed'), |
|
| 992 | 992 | 'required' => true, |
| 993 | 993 | ), |
| 994 | 994 | |
| 995 | 995 | 'type' => array( |
| 996 | - 'description' => __( 'The type of discount.', 'invoicing' ), |
|
| 996 | + 'description' => __('The type of discount.', 'invoicing'), |
|
| 997 | 997 | 'type' => 'string', |
| 998 | - 'enum' => array_keys( wpinv_get_discount_types() ), |
|
| 999 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
| 998 | + 'enum' => array_keys(wpinv_get_discount_types()), |
|
| 999 | + 'context' => array('view', 'edit', 'embed'), |
|
| 1000 | 1000 | 'default' => 'percentage', |
| 1001 | 1001 | ), |
| 1002 | 1002 | |
| 1003 | 1003 | 'amount' => array( |
| 1004 | - 'description' => __( 'The discount value.', 'invoicing' ), |
|
| 1004 | + 'description' => __('The discount value.', 'invoicing'), |
|
| 1005 | 1005 | 'type' => 'number', |
| 1006 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
| 1006 | + 'context' => array('view', 'edit', 'embed'), |
|
| 1007 | 1007 | 'required' => true, |
| 1008 | 1008 | ), |
| 1009 | 1009 | |
| 1010 | 1010 | 'status' => array( |
| 1011 | - 'description' => __( 'A named status for the discount.', 'invoicing' ), |
|
| 1011 | + 'description' => __('A named status for the discount.', 'invoicing'), |
|
| 1012 | 1012 | 'type' => 'string', |
| 1013 | - 'enum' => array_keys( get_post_stati( array( 'internal' => false ) ) ), |
|
| 1014 | - 'context' => array( 'view', 'edit' ), |
|
| 1013 | + 'enum' => array_keys(get_post_stati(array('internal' => false))), |
|
| 1014 | + 'context' => array('view', 'edit'), |
|
| 1015 | 1015 | ), |
| 1016 | 1016 | |
| 1017 | 1017 | 'items' => array( |
| 1018 | - 'description' => __( 'Items which need to be in the cart to use this discount or, for "Item Discounts", which items are discounted. If left blank, this discount will be used on any item.', 'invoicing' ), |
|
| 1018 | + 'description' => __('Items which need to be in the cart to use this discount or, for "Item Discounts", which items are discounted. If left blank, this discount will be used on any item.', 'invoicing'), |
|
| 1019 | 1019 | 'type' => 'array', |
| 1020 | - 'context' => array( 'view', 'edit' ), |
|
| 1020 | + 'context' => array('view', 'edit'), |
|
| 1021 | 1021 | ), |
| 1022 | 1022 | |
| 1023 | 1023 | 'exclude_items' => array( |
| 1024 | - 'description' => __( 'Items which are NOT allowed to use this discount.', 'invoicing' ), |
|
| 1024 | + 'description' => __('Items which are NOT allowed to use this discount.', 'invoicing'), |
|
| 1025 | 1025 | 'type' => 'array', |
| 1026 | - 'context' => array( 'view', 'edit' ), |
|
| 1026 | + 'context' => array('view', 'edit'), |
|
| 1027 | 1027 | ), |
| 1028 | 1028 | |
| 1029 | 1029 | 'start_date' => array( |
| 1030 | - 'description' => __( 'The start date for the discount in the format of yyyy-mm-dd hh:mm:ss . If provided, the discount can only be used after or on this date.', 'invoicing' ), |
|
| 1030 | + 'description' => __('The start date for the discount in the format of yyyy-mm-dd hh:mm:ss . If provided, the discount can only be used after or on this date.', 'invoicing'), |
|
| 1031 | 1031 | 'type' => 'string', |
| 1032 | - 'context' => array( 'view', 'edit' ), |
|
| 1032 | + 'context' => array('view', 'edit'), |
|
| 1033 | 1033 | ), |
| 1034 | 1034 | |
| 1035 | 1035 | 'end_date' => array( |
| 1036 | - 'description' => __( 'The expiration date for the discount.', 'invoicing' ), |
|
| 1036 | + 'description' => __('The expiration date for the discount.', 'invoicing'), |
|
| 1037 | 1037 | 'type' => 'string', |
| 1038 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
| 1038 | + 'context' => array('view', 'edit', 'embed'), |
|
| 1039 | 1039 | ), |
| 1040 | 1040 | |
| 1041 | 1041 | 'minimum_amount' => array( |
| 1042 | - 'description' => __( 'Minimum amount needed to use this invoice.', 'invoicing' ), |
|
| 1042 | + 'description' => __('Minimum amount needed to use this invoice.', 'invoicing'), |
|
| 1043 | 1043 | 'type' => 'number', |
| 1044 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
| 1044 | + 'context' => array('view', 'edit', 'embed'), |
|
| 1045 | 1045 | ), |
| 1046 | 1046 | |
| 1047 | 1047 | 'maximum_amount' => array( |
| 1048 | - 'description' => __( 'Maximum amount needed to use this invoice.', 'invoicing' ), |
|
| 1048 | + 'description' => __('Maximum amount needed to use this invoice.', 'invoicing'), |
|
| 1049 | 1049 | 'type' => 'number', |
| 1050 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
| 1050 | + 'context' => array('view', 'edit', 'embed'), |
|
| 1051 | 1051 | ), |
| 1052 | 1052 | |
| 1053 | 1053 | 'recurring' => array( |
| 1054 | - 'description' => __( 'Whether the discount is applied to all recurring payments or only the first recurring payment.', 'invoicing' ), |
|
| 1054 | + 'description' => __('Whether the discount is applied to all recurring payments or only the first recurring payment.', 'invoicing'), |
|
| 1055 | 1055 | 'type' => 'integer', |
| 1056 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
| 1056 | + 'context' => array('view', 'edit', 'embed'), |
|
| 1057 | 1057 | ), |
| 1058 | 1058 | |
| 1059 | 1059 | 'max_uses' => array( |
| 1060 | - 'description' => __( 'The maximum number of times this discount code can be used.', 'invoicing' ), |
|
| 1060 | + 'description' => __('The maximum number of times this discount code can be used.', 'invoicing'), |
|
| 1061 | 1061 | 'type' => 'number', |
| 1062 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
| 1062 | + 'context' => array('view', 'edit', 'embed'), |
|
| 1063 | 1063 | ), |
| 1064 | 1064 | |
| 1065 | 1065 | 'single_use' => array( |
| 1066 | - 'description' => __( 'Whether or not this discount can only be used once per user.', 'invoicing' ), |
|
| 1066 | + 'description' => __('Whether or not this discount can only be used once per user.', 'invoicing'), |
|
| 1067 | 1067 | 'type' => 'integer', |
| 1068 | - 'context' => array( 'view', 'edit', 'embed' ), |
|
| 1068 | + 'context' => array('view', 'edit', 'embed'), |
|
| 1069 | 1069 | ) |
| 1070 | 1070 | |
| 1071 | 1071 | ), |
@@ -1083,12 +1083,12 @@ discard block |
||
| 1083 | 1083 | * |
| 1084 | 1084 | * @param array $schema The discount schema. |
| 1085 | 1085 | */ |
| 1086 | - $schema = apply_filters( "wpinv_rest_discount_schema", $schema ); |
|
| 1086 | + $schema = apply_filters("wpinv_rest_discount_schema", $schema); |
|
| 1087 | 1087 | |
| 1088 | 1088 | // Cache the discount schema. |
| 1089 | 1089 | $this->schema = $schema; |
| 1090 | 1090 | |
| 1091 | - return $this->add_additional_fields_schema( $this->schema ); |
|
| 1091 | + return $this->add_additional_fields_schema($this->schema); |
|
| 1092 | 1092 | } |
| 1093 | 1093 | |
| 1094 | 1094 | /** |
@@ -1100,20 +1100,20 @@ discard block |
||
| 1100 | 1100 | */ |
| 1101 | 1101 | protected function get_schema_links() { |
| 1102 | 1102 | |
| 1103 | - $href = rest_url( "{$this->namespace}/{$this->rest_base}/{id}" ); |
|
| 1103 | + $href = rest_url("{$this->namespace}/{$this->rest_base}/{id}"); |
|
| 1104 | 1104 | |
| 1105 | 1105 | $links = array(); |
| 1106 | 1106 | |
| 1107 | 1107 | $links[] = array( |
| 1108 | 1108 | 'rel' => 'https://api.w.org/action-publish', |
| 1109 | - 'title' => __( 'The current user can publish this discount.', 'invoicing' ), |
|
| 1109 | + 'title' => __('The current user can publish this discount.', 'invoicing'), |
|
| 1110 | 1110 | 'href' => $href, |
| 1111 | 1111 | 'targetSchema' => array( |
| 1112 | 1112 | 'type' => 'object', |
| 1113 | 1113 | 'properties' => array( |
| 1114 | 1114 | 'status' => array( |
| 1115 | 1115 | 'type' => 'string', |
| 1116 | - 'enum' => array( 'publish', 'future' ), |
|
| 1116 | + 'enum' => array('publish', 'future'), |
|
| 1117 | 1117 | ), |
| 1118 | 1118 | ), |
| 1119 | 1119 | ), |
@@ -1130,18 +1130,18 @@ discard block |
||
| 1130 | 1130 | * @param WP_Post $discount Post Object. |
| 1131 | 1131 | * @return array Links for the given discount. |
| 1132 | 1132 | */ |
| 1133 | - protected function prepare_links( $discount ) { |
|
| 1133 | + protected function prepare_links($discount) { |
|
| 1134 | 1134 | |
| 1135 | 1135 | // Prepare the base REST API endpoint for discounts. |
| 1136 | - $base = sprintf( '%s/%s', $this->namespace, $this->rest_base ); |
|
| 1136 | + $base = sprintf('%s/%s', $this->namespace, $this->rest_base); |
|
| 1137 | 1137 | |
| 1138 | 1138 | // Entity meta. |
| 1139 | 1139 | $links = array( |
| 1140 | 1140 | 'self' => array( |
| 1141 | - 'href' => rest_url( trailingslashit( $base ) . $discount->ID ), |
|
| 1141 | + 'href' => rest_url(trailingslashit($base) . $discount->ID), |
|
| 1142 | 1142 | ), |
| 1143 | 1143 | 'collection' => array( |
| 1144 | - 'href' => rest_url( $base ), |
|
| 1144 | + 'href' => rest_url($base), |
|
| 1145 | 1145 | ), |
| 1146 | 1146 | ); |
| 1147 | 1147 | |
@@ -1154,7 +1154,7 @@ discard block |
||
| 1154 | 1154 | * |
| 1155 | 1155 | * @param array $links Rest links. |
| 1156 | 1156 | */ |
| 1157 | - return apply_filters( "wpinv_rest_discount_links", $links ); |
|
| 1157 | + return apply_filters("wpinv_rest_discount_links", $links); |
|
| 1158 | 1158 | |
| 1159 | 1159 | } |
| 1160 | 1160 | |
@@ -1167,19 +1167,19 @@ discard block |
||
| 1167 | 1167 | * @param WP_REST_Request $request Request object. |
| 1168 | 1168 | * @return array List of link relations. |
| 1169 | 1169 | */ |
| 1170 | - protected function get_available_actions( $discount, $request ) { |
|
| 1170 | + protected function get_available_actions($discount, $request) { |
|
| 1171 | 1171 | |
| 1172 | - if ( 'edit' !== $request['context'] ) { |
|
| 1172 | + if ('edit' !== $request['context']) { |
|
| 1173 | 1173 | return array(); |
| 1174 | 1174 | } |
| 1175 | 1175 | |
| 1176 | 1176 | $rels = array(); |
| 1177 | 1177 | |
| 1178 | 1178 | // Retrieve the post type object. |
| 1179 | - $post_type = get_post_type_object( $discount->post_type ); |
|
| 1179 | + $post_type = get_post_type_object($discount->post_type); |
|
| 1180 | 1180 | |
| 1181 | 1181 | // Mark discount as published. |
| 1182 | - if ( current_user_can( $post_type->cap->publish_posts ) ) { |
|
| 1182 | + if (current_user_can($post_type->cap->publish_posts)) { |
|
| 1183 | 1183 | $rels[] = 'https://api.w.org/action-publish'; |
| 1184 | 1184 | } |
| 1185 | 1185 | |
@@ -1192,7 +1192,7 @@ discard block |
||
| 1192 | 1192 | * |
| 1193 | 1193 | * @param array $rels Available link relations. |
| 1194 | 1194 | */ |
| 1195 | - return apply_filters( "wpinv_rest_discount_link_relations", $rels ); |
|
| 1195 | + return apply_filters("wpinv_rest_discount_link_relations", $rels); |
|
| 1196 | 1196 | } |
| 1197 | 1197 | |
| 1198 | 1198 | /** |
@@ -1204,7 +1204,7 @@ discard block |
||
| 1204 | 1204 | * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure. |
| 1205 | 1205 | */ |
| 1206 | 1206 | public function get_discount_types() { |
| 1207 | - return rest_ensure_response( wpinv_get_discount_types() ); |
|
| 1207 | + return rest_ensure_response(wpinv_get_discount_types()); |
|
| 1208 | 1208 | } |
| 1209 | 1209 | |
| 1210 | 1210 | } |
| 1211 | 1211 | \ No newline at end of file |
@@ -1,6 +1,6 @@ discard block |
||
| 1 | 1 | <?php |
| 2 | 2 | // Exit if accessed directly. |
| 3 | -if (!defined( 'ABSPATH' ) ) exit; |
|
| 3 | +if (!defined('ABSPATH')) exit; |
|
| 4 | 4 | |
| 5 | 5 | class WPInv_EUVat { |
| 6 | 6 | private static $is_ajax = false; |
@@ -8,7 +8,7 @@ discard block |
||
| 8 | 8 | private static $instance = false; |
| 9 | 9 | |
| 10 | 10 | public static function get_instance() { |
| 11 | - if ( !self::$instance ) { |
|
| 11 | + if (!self::$instance) { |
|
| 12 | 12 | self::$instance = new self(); |
| 13 | 13 | self::$instance->actions(); |
| 14 | 14 | } |
@@ -17,137 +17,137 @@ discard block |
||
| 17 | 17 | } |
| 18 | 18 | |
| 19 | 19 | public function __construct() { |
| 20 | - self::$is_ajax = defined( 'DOING_AJAX' ) && DOING_AJAX; |
|
| 20 | + self::$is_ajax = defined('DOING_AJAX') && DOING_AJAX; |
|
| 21 | 21 | self::$default_country = wpinv_get_default_country(); |
| 22 | 22 | } |
| 23 | 23 | |
| 24 | 24 | public static function actions() { |
| 25 | - if ( is_admin() ) { |
|
| 26 | - add_action( 'admin_enqueue_scripts', array( self::$instance, 'enqueue_admin_scripts' ) ); |
|
| 27 | - add_action( 'wpinv_settings_sections_taxes', array( self::$instance, 'section_vat_settings' ) ); |
|
| 28 | - add_action( 'wpinv_settings_taxes', array( self::$instance, 'vat_settings' ) ); |
|
| 29 | - add_filter( 'wpinv_settings_taxes-vat_sanitize', array( self::$instance, 'sanitize_vat_settings' ) ); |
|
| 30 | - add_filter( 'wpinv_settings_taxes-vat_rates_sanitize', array( self::$instance, 'sanitize_vat_rates' ) ); |
|
| 31 | - add_action( 'wp_ajax_wpinv_add_vat_class', array( self::$instance, 'add_class' ) ); |
|
| 32 | - add_action( 'wp_ajax_nopriv_wpinv_add_vat_class', array( self::$instance, 'add_class' ) ); |
|
| 33 | - add_action( 'wp_ajax_wpinv_delete_vat_class', array( self::$instance, 'delete_class' ) ); |
|
| 34 | - add_action( 'wp_ajax_nopriv_wpinv_delete_vat_class', array( self::$instance, 'delete_class' ) ); |
|
| 35 | - add_action( 'wp_ajax_wpinv_update_vat_rates', array( self::$instance, 'update_eu_rates' ) ); |
|
| 36 | - add_action( 'wp_ajax_nopriv_wpinv_update_vat_rates', array( self::$instance, 'update_eu_rates' ) ); |
|
| 37 | - add_action( 'wp_ajax_wpinv_geoip2', array( self::$instance, 'geoip2_download_database' ) ); |
|
| 38 | - add_action( 'wp_ajax_nopriv_wpinv_geoip2', array( self::$instance, 'geoip2_download_database' ) ); |
|
| 39 | - } |
|
| 40 | - |
|
| 41 | - add_action( 'wp_enqueue_scripts', array( self::$instance, 'enqueue_vat_scripts' ) ); |
|
| 42 | - add_filter( 'wpinv_default_billing_country', array( self::$instance, 'get_user_country' ), 10 ); |
|
| 43 | - add_filter( 'wpinv_get_user_country', array( self::$instance, 'set_user_country' ), 10 ); |
|
| 44 | - add_action( 'wp_ajax_wpinv_vat_validate', array( self::$instance, 'ajax_vat_validate' ) ); |
|
| 45 | - add_action( 'wp_ajax_nopriv_wpinv_vat_validate', array( self::$instance, 'ajax_vat_validate' ) ); |
|
| 46 | - add_action( 'wp_ajax_wpinv_vat_reset', array( self::$instance, 'ajax_vat_reset' ) ); |
|
| 47 | - add_action( 'wp_ajax_nopriv_wpinv_vat_reset', array( self::$instance, 'ajax_vat_reset' ) ); |
|
| 48 | - add_action( 'wpinv_invoice_print_after_line_items', array( self::$instance, 'show_vat_notice' ), 999, 1 ); |
|
| 49 | - if ( wpinv_use_taxes() ) { |
|
| 50 | - add_action( 'wpinv_after_billing_fields', array( self::$instance, 'checkout_vat_fields' ) ); |
|
| 51 | - if ( self::allow_vat_rules() ) { |
|
| 52 | - add_action( 'wpinv_checkout_error_checks', array( self::$instance, 'checkout_vat_validate' ), 10, 2 ); |
|
| 53 | - add_filter( 'wpinv_tax_rate', array( self::$instance, 'get_rate' ), 10, 4 ); |
|
| 25 | + if (is_admin()) { |
|
| 26 | + add_action('admin_enqueue_scripts', array(self::$instance, 'enqueue_admin_scripts')); |
|
| 27 | + add_action('wpinv_settings_sections_taxes', array(self::$instance, 'section_vat_settings')); |
|
| 28 | + add_action('wpinv_settings_taxes', array(self::$instance, 'vat_settings')); |
|
| 29 | + add_filter('wpinv_settings_taxes-vat_sanitize', array(self::$instance, 'sanitize_vat_settings')); |
|
| 30 | + add_filter('wpinv_settings_taxes-vat_rates_sanitize', array(self::$instance, 'sanitize_vat_rates')); |
|
| 31 | + add_action('wp_ajax_wpinv_add_vat_class', array(self::$instance, 'add_class')); |
|
| 32 | + add_action('wp_ajax_nopriv_wpinv_add_vat_class', array(self::$instance, 'add_class')); |
|
| 33 | + add_action('wp_ajax_wpinv_delete_vat_class', array(self::$instance, 'delete_class')); |
|
| 34 | + add_action('wp_ajax_nopriv_wpinv_delete_vat_class', array(self::$instance, 'delete_class')); |
|
| 35 | + add_action('wp_ajax_wpinv_update_vat_rates', array(self::$instance, 'update_eu_rates')); |
|
| 36 | + add_action('wp_ajax_nopriv_wpinv_update_vat_rates', array(self::$instance, 'update_eu_rates')); |
|
| 37 | + add_action('wp_ajax_wpinv_geoip2', array(self::$instance, 'geoip2_download_database')); |
|
| 38 | + add_action('wp_ajax_nopriv_wpinv_geoip2', array(self::$instance, 'geoip2_download_database')); |
|
| 39 | + } |
|
| 40 | + |
|
| 41 | + add_action('wp_enqueue_scripts', array(self::$instance, 'enqueue_vat_scripts')); |
|
| 42 | + add_filter('wpinv_default_billing_country', array(self::$instance, 'get_user_country'), 10); |
|
| 43 | + add_filter('wpinv_get_user_country', array(self::$instance, 'set_user_country'), 10); |
|
| 44 | + add_action('wp_ajax_wpinv_vat_validate', array(self::$instance, 'ajax_vat_validate')); |
|
| 45 | + add_action('wp_ajax_nopriv_wpinv_vat_validate', array(self::$instance, 'ajax_vat_validate')); |
|
| 46 | + add_action('wp_ajax_wpinv_vat_reset', array(self::$instance, 'ajax_vat_reset')); |
|
| 47 | + add_action('wp_ajax_nopriv_wpinv_vat_reset', array(self::$instance, 'ajax_vat_reset')); |
|
| 48 | + add_action('wpinv_invoice_print_after_line_items', array(self::$instance, 'show_vat_notice'), 999, 1); |
|
| 49 | + if (wpinv_use_taxes()) { |
|
| 50 | + add_action('wpinv_after_billing_fields', array(self::$instance, 'checkout_vat_fields')); |
|
| 51 | + if (self::allow_vat_rules()) { |
|
| 52 | + add_action('wpinv_checkout_error_checks', array(self::$instance, 'checkout_vat_validate'), 10, 2); |
|
| 53 | + add_filter('wpinv_tax_rate', array(self::$instance, 'get_rate'), 10, 4); |
|
| 54 | 54 | } |
| 55 | 55 | } |
| 56 | 56 | } |
| 57 | 57 | |
| 58 | - public static function get_eu_states( $sort = true ) { |
|
| 59 | - $eu_states = array( 'AT', 'BE', 'BG', 'HR', 'CY', 'CZ', 'DK', 'EE', 'FI', 'FR', 'DE', 'GB', 'GR', 'HU', 'IE', 'IT', 'LV', 'LT', 'LU', 'MT', 'NL', 'PL', 'PT', 'RO', 'SK', 'SI', 'ES', 'SE' ); |
|
| 60 | - if ( $sort ) { |
|
| 61 | - $sort = sort( $eu_states ); |
|
| 58 | + public static function get_eu_states($sort = true) { |
|
| 59 | + $eu_states = array('AT', 'BE', 'BG', 'HR', 'CY', 'CZ', 'DK', 'EE', 'FI', 'FR', 'DE', 'GB', 'GR', 'HU', 'IE', 'IT', 'LV', 'LT', 'LU', 'MT', 'NL', 'PL', 'PT', 'RO', 'SK', 'SI', 'ES', 'SE'); |
|
| 60 | + if ($sort) { |
|
| 61 | + $sort = sort($eu_states); |
|
| 62 | 62 | } |
| 63 | 63 | |
| 64 | - return apply_filters( 'wpinv_get_eu_states', $eu_states, $sort ); |
|
| 64 | + return apply_filters('wpinv_get_eu_states', $eu_states, $sort); |
|
| 65 | 65 | } |
| 66 | 66 | |
| 67 | - public static function get_gst_countries( $sort = true ) { |
|
| 68 | - $gst_countries = array( 'AU', 'NZ', 'CA', 'CN' ); |
|
| 67 | + public static function get_gst_countries($sort = true) { |
|
| 68 | + $gst_countries = array('AU', 'NZ', 'CA', 'CN'); |
|
| 69 | 69 | |
| 70 | - if ( $sort ) { |
|
| 71 | - $sort = sort( $gst_countries ); |
|
| 70 | + if ($sort) { |
|
| 71 | + $sort = sort($gst_countries); |
|
| 72 | 72 | } |
| 73 | 73 | |
| 74 | - return apply_filters( 'wpinv_get_gst_countries', $gst_countries, $sort ); |
|
| 74 | + return apply_filters('wpinv_get_gst_countries', $gst_countries, $sort); |
|
| 75 | 75 | } |
| 76 | 76 | |
| 77 | - public static function is_eu_state( $country_code ) { |
|
| 78 | - $return = !empty( $country_code ) && in_array( strtoupper( $country_code ), self::get_eu_states() ) ? true : false; |
|
| 77 | + public static function is_eu_state($country_code) { |
|
| 78 | + $return = !empty($country_code) && in_array(strtoupper($country_code), self::get_eu_states()) ? true : false; |
|
| 79 | 79 | |
| 80 | - return apply_filters( 'wpinv_is_eu_state', $return, $country_code ); |
|
| 80 | + return apply_filters('wpinv_is_eu_state', $return, $country_code); |
|
| 81 | 81 | } |
| 82 | 82 | |
| 83 | - public static function is_gst_country( $country_code ) { |
|
| 84 | - $return = !empty( $country_code ) && in_array( strtoupper( $country_code ), self::get_gst_countries() ) ? true : false; |
|
| 83 | + public static function is_gst_country($country_code) { |
|
| 84 | + $return = !empty($country_code) && in_array(strtoupper($country_code), self::get_gst_countries()) ? true : false; |
|
| 85 | 85 | |
| 86 | - return apply_filters( 'wpinv_is_gst_country', $return, $country_code ); |
|
| 86 | + return apply_filters('wpinv_is_gst_country', $return, $country_code); |
|
| 87 | 87 | } |
| 88 | 88 | |
| 89 | 89 | public static function enqueue_vat_scripts() { |
| 90 | - if( wpinv_use_taxes() && wpinv_get_option( 'apply_vat_rules' ) ) { |
|
| 90 | + if (wpinv_use_taxes() && wpinv_get_option('apply_vat_rules')) { |
|
| 91 | 91 | self::load_vat_scripts(); |
| 92 | 92 | } |
| 93 | 93 | } |
| 94 | 94 | |
| 95 | - public static function load_vat_scripts(){ |
|
| 96 | - $suffix = '';//defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min'; |
|
| 95 | + public static function load_vat_scripts() { |
|
| 96 | + $suffix = ''; //defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min'; |
|
| 97 | 97 | |
| 98 | - wp_register_script( 'wpinv-vat-validation-script', WPINV_PLUGIN_URL . 'assets/js/jsvat' . $suffix . '.js', array( 'jquery' ), WPINV_VERSION ); |
|
| 99 | - wp_register_script( 'wpinv-vat-script', WPINV_PLUGIN_URL . 'assets/js/euvat' . $suffix . '.js', array( 'jquery' ), WPINV_VERSION ); |
|
| 98 | + wp_register_script('wpinv-vat-validation-script', WPINV_PLUGIN_URL . 'assets/js/jsvat' . $suffix . '.js', array('jquery'), WPINV_VERSION); |
|
| 99 | + wp_register_script('wpinv-vat-script', WPINV_PLUGIN_URL . 'assets/js/euvat' . $suffix . '.js', array('jquery'), WPINV_VERSION); |
|
| 100 | 100 | |
| 101 | - $vat_name = self::get_vat_name(); |
|
| 101 | + $vat_name = self::get_vat_name(); |
|
| 102 | 102 | |
| 103 | 103 | $vars = array(); |
| 104 | 104 | $vars['UseTaxes'] = wpinv_use_taxes(); |
| 105 | 105 | $vars['EUStates'] = self::get_eu_states(); |
| 106 | - $vars['NoRateSet'] = __( 'You have not set a rate. Do you want to continue?', 'invoicing' ); |
|
| 107 | - $vars['EmptyCompany'] = __( 'Please enter your registered company name!', 'invoicing' ); |
|
| 108 | - $vars['EmptyVAT'] = wp_sprintf( __( 'Please enter your %s number!', 'invoicing' ), $vat_name ); |
|
| 109 | - $vars['TotalsRefreshed'] = wp_sprintf( __( 'The invoice totals will be refreshed to update the %s.', 'invoicing' ), $vat_name ); |
|
| 110 | - $vars['ErrValidateVAT'] = wp_sprintf( __( 'Fail to validate the %s number!', 'invoicing' ), $vat_name ); |
|
| 111 | - $vars['ErrResetVAT'] = wp_sprintf( __( 'Fail to reset the %s number!', 'invoicing' ), $vat_name ); |
|
| 112 | - $vars['ErrInvalidVat'] = wp_sprintf( __( 'The %s number supplied does not have a valid format!', 'invoicing' ), $vat_name ); |
|
| 113 | - $vars['ErrInvalidResponse'] = __( 'An invalid response has been received from the server!', 'invoicing' ); |
|
| 106 | + $vars['NoRateSet'] = __('You have not set a rate. Do you want to continue?', 'invoicing'); |
|
| 107 | + $vars['EmptyCompany'] = __('Please enter your registered company name!', 'invoicing'); |
|
| 108 | + $vars['EmptyVAT'] = wp_sprintf(__('Please enter your %s number!', 'invoicing'), $vat_name); |
|
| 109 | + $vars['TotalsRefreshed'] = wp_sprintf(__('The invoice totals will be refreshed to update the %s.', 'invoicing'), $vat_name); |
|
| 110 | + $vars['ErrValidateVAT'] = wp_sprintf(__('Fail to validate the %s number!', 'invoicing'), $vat_name); |
|
| 111 | + $vars['ErrResetVAT'] = wp_sprintf(__('Fail to reset the %s number!', 'invoicing'), $vat_name); |
|
| 112 | + $vars['ErrInvalidVat'] = wp_sprintf(__('The %s number supplied does not have a valid format!', 'invoicing'), $vat_name); |
|
| 113 | + $vars['ErrInvalidResponse'] = __('An invalid response has been received from the server!', 'invoicing'); |
|
| 114 | 114 | $vars['ApplyVATRules'] = $vars['UseTaxes'] ? self::allow_vat_rules() : false; |
| 115 | 115 | $vars['HideVatFields'] = $vars['ApplyVATRules'] ? self::hide_vat_fields() : true; |
| 116 | - $vars['ErrResponse'] = __( 'The request response is invalid!', 'invoicing' ); |
|
| 117 | - $vars['ErrRateResponse'] = __( 'The get rate request response is invalid', 'invoicing' ); |
|
| 118 | - $vars['PageRefresh'] = __( 'The page will be refreshed in 10 seconds to show the new options.', 'invoicing' ); |
|
| 119 | - $vars['RequestResponseNotValidJSON'] = __( 'The get rate request response is not valid JSON', 'invoicing' ); |
|
| 120 | - $vars['GetRateRequestFailed'] = __( 'The get rate request failed: ', 'invoicing' ); |
|
| 121 | - $vars['NoRateInformationInResponse'] = __( 'The get rate request response does not contain any rate information', 'invoicing' ); |
|
| 122 | - $vars['RatesUpdated'] = __( 'The rates have been updated. Press the save button to record these new rates.', 'invoicing' ); |
|
| 123 | - $vars['IPAddressInformation'] = __( 'IP Address Information', 'invoicing' ); |
|
| 124 | - $vars['VatValidating'] = wp_sprintf( __( 'Validating %s number...', 'invoicing' ), $vat_name ); |
|
| 125 | - $vars['VatReseting'] = __( 'Reseting...', 'invoicing' ); |
|
| 126 | - $vars['VatValidated'] = wp_sprintf( __( '%s number validated', 'invoicing' ), $vat_name ); |
|
| 127 | - $vars['VatNotValidated'] = wp_sprintf( __( '%s number not validated', 'invoicing' ), $vat_name ); |
|
| 128 | - $vars['ConfirmDeleteClass'] = __( 'Are you sure you wish to delete this rates class?', 'invoicing' ); |
|
| 116 | + $vars['ErrResponse'] = __('The request response is invalid!', 'invoicing'); |
|
| 117 | + $vars['ErrRateResponse'] = __('The get rate request response is invalid', 'invoicing'); |
|
| 118 | + $vars['PageRefresh'] = __('The page will be refreshed in 10 seconds to show the new options.', 'invoicing'); |
|
| 119 | + $vars['RequestResponseNotValidJSON'] = __('The get rate request response is not valid JSON', 'invoicing'); |
|
| 120 | + $vars['GetRateRequestFailed'] = __('The get rate request failed: ', 'invoicing'); |
|
| 121 | + $vars['NoRateInformationInResponse'] = __('The get rate request response does not contain any rate information', 'invoicing'); |
|
| 122 | + $vars['RatesUpdated'] = __('The rates have been updated. Press the save button to record these new rates.', 'invoicing'); |
|
| 123 | + $vars['IPAddressInformation'] = __('IP Address Information', 'invoicing'); |
|
| 124 | + $vars['VatValidating'] = wp_sprintf(__('Validating %s number...', 'invoicing'), $vat_name); |
|
| 125 | + $vars['VatReseting'] = __('Reseting...', 'invoicing'); |
|
| 126 | + $vars['VatValidated'] = wp_sprintf(__('%s number validated', 'invoicing'), $vat_name); |
|
| 127 | + $vars['VatNotValidated'] = wp_sprintf(__('%s number not validated', 'invoicing'), $vat_name); |
|
| 128 | + $vars['ConfirmDeleteClass'] = __('Are you sure you wish to delete this rates class?', 'invoicing'); |
|
| 129 | 129 | $vars['isFront'] = is_admin() ? false : true; |
| 130 | 130 | $vars['baseCountry'] = wpinv_get_default_country(); |
| 131 | - $vars['disableVATSameCountry'] = ( self::same_country_rule() == 'no' ? true : false ); |
|
| 132 | - $vars['disableVATSimpleCheck'] = wpinv_get_option( 'vat_offline_check' ) ? true : false; |
|
| 131 | + $vars['disableVATSameCountry'] = (self::same_country_rule() == 'no' ? true : false); |
|
| 132 | + $vars['disableVATSimpleCheck'] = wpinv_get_option('vat_offline_check') ? true : false; |
|
| 133 | 133 | |
| 134 | - wp_enqueue_script( 'wpinv-vat-validation-script' ); |
|
| 135 | - wp_enqueue_script( 'wpinv-vat-script' ); |
|
| 136 | - wp_localize_script( 'wpinv-vat-script', 'WPInv_VAT_Vars', $vars ); |
|
| 134 | + wp_enqueue_script('wpinv-vat-validation-script'); |
|
| 135 | + wp_enqueue_script('wpinv-vat-script'); |
|
| 136 | + wp_localize_script('wpinv-vat-script', 'WPInv_VAT_Vars', $vars); |
|
| 137 | 137 | } |
| 138 | 138 | |
| 139 | 139 | public static function enqueue_admin_scripts() { |
| 140 | - if( isset( $_GET['page'] ) && 'wpinv-settings' == $_GET['page'] ) { |
|
| 140 | + if (isset($_GET['page']) && 'wpinv-settings' == $_GET['page']) { |
|
| 141 | 141 | self::load_vat_scripts(); |
| 142 | 142 | } |
| 143 | 143 | } |
| 144 | 144 | |
| 145 | - public static function section_vat_settings( $sections ) { |
|
| 146 | - if ( !empty( $sections ) ) { |
|
| 147 | - $sections['vat'] = __( 'EU VAT Settings', 'invoicing' ); |
|
| 145 | + public static function section_vat_settings($sections) { |
|
| 146 | + if (!empty($sections)) { |
|
| 147 | + $sections['vat'] = __('EU VAT Settings', 'invoicing'); |
|
| 148 | 148 | |
| 149 | - if ( self::allow_vat_classes() ) { |
|
| 150 | - $sections['vat_rates'] = __( 'EU VAT Rates', 'invoicing' ); |
|
| 149 | + if (self::allow_vat_classes()) { |
|
| 150 | + $sections['vat_rates'] = __('EU VAT Rates', 'invoicing'); |
|
| 151 | 151 | } |
| 152 | 152 | } |
| 153 | 153 | return $sections; |
@@ -156,52 +156,52 @@ discard block |
||
| 156 | 156 | public static function vat_rates_settings() { |
| 157 | 157 | $vat_classes = self::get_rate_classes(); |
| 158 | 158 | $vat_rates = array(); |
| 159 | - $vat_class = isset( $_REQUEST['wpi_sub'] ) && $_REQUEST['wpi_sub'] !== '' && isset( $vat_classes[$_REQUEST['wpi_sub']] )? sanitize_text_field( $_REQUEST['wpi_sub'] ) : '_new'; |
|
| 160 | - $current_url = remove_query_arg( 'wpi_sub' ); |
|
| 159 | + $vat_class = isset($_REQUEST['wpi_sub']) && $_REQUEST['wpi_sub'] !== '' && isset($vat_classes[$_REQUEST['wpi_sub']]) ? sanitize_text_field($_REQUEST['wpi_sub']) : '_new'; |
|
| 160 | + $current_url = remove_query_arg('wpi_sub'); |
|
| 161 | 161 | |
| 162 | 162 | $vat_rates['vat_rates_header'] = array( |
| 163 | 163 | 'id' => 'vat_rates_header', |
| 164 | - 'name' => '<h3>' . __( 'Manage VAT Rates', 'invoicing' ) . '</h3>', |
|
| 164 | + 'name' => '<h3>' . __('Manage VAT Rates', 'invoicing') . '</h3>', |
|
| 165 | 165 | 'desc' => '', |
| 166 | 166 | 'type' => 'header', |
| 167 | 167 | 'size' => 'regular' |
| 168 | 168 | ); |
| 169 | 169 | $vat_rates['vat_rates_class'] = array( |
| 170 | 170 | 'id' => 'vat_rates_class', |
| 171 | - 'name' => __( 'Edit VAT Rates', 'invoicing' ), |
|
| 172 | - 'desc' => __( 'The standard rate will apply where no explicit rate is provided.', 'invoicing' ), |
|
| 171 | + 'name' => __('Edit VAT Rates', 'invoicing'), |
|
| 172 | + 'desc' => __('The standard rate will apply where no explicit rate is provided.', 'invoicing'), |
|
| 173 | 173 | 'type' => 'select', |
| 174 | - 'options' => array_merge( $vat_classes, array( '_new' => __( 'Add New Rate Class', 'invoicing' ) ) ), |
|
| 175 | - 'placeholder' => __( 'Select a VAT Rate', 'invoicing' ), |
|
| 174 | + 'options' => array_merge($vat_classes, array('_new' => __('Add New Rate Class', 'invoicing'))), |
|
| 175 | + 'placeholder' => __('Select a VAT Rate', 'invoicing'), |
|
| 176 | 176 | 'selected' => $vat_class, |
| 177 | 177 | 'class' => 'wpi_select2', |
| 178 | 178 | 'onchange' => 'document.location.href="' . $current_url . '&wpi_sub=" + this.value;', |
| 179 | 179 | ); |
| 180 | 180 | |
| 181 | - if ( $vat_class != '_standard' && $vat_class != '_new' ) { |
|
| 181 | + if ($vat_class != '_standard' && $vat_class != '_new') { |
|
| 182 | 182 | $vat_rates['vat_rate_delete'] = array( |
| 183 | 183 | 'id' => 'vat_rate_delete', |
| 184 | 184 | 'type' => 'vat_rate_delete', |
| 185 | 185 | ); |
| 186 | 186 | } |
| 187 | 187 | |
| 188 | - if ( $vat_class == '_new' ) { |
|
| 188 | + if ($vat_class == '_new') { |
|
| 189 | 189 | $vat_rates['vat_rates_settings'] = array( |
| 190 | 190 | 'id' => 'vat_rates_settings', |
| 191 | - 'name' => '<h3>' . __( 'Add New Rate Class', 'invoicing' ) . '</h3>', |
|
| 191 | + 'name' => '<h3>' . __('Add New Rate Class', 'invoicing') . '</h3>', |
|
| 192 | 192 | 'type' => 'header', |
| 193 | 193 | ); |
| 194 | 194 | $vat_rates['vat_rate_name'] = array( |
| 195 | 195 | 'id' => 'vat_rate_name', |
| 196 | - 'name' => __( 'Name', 'invoicing' ), |
|
| 197 | - 'desc' => __( 'A short name for the new VAT Rate class', 'invoicing' ), |
|
| 196 | + 'name' => __('Name', 'invoicing'), |
|
| 197 | + 'desc' => __('A short name for the new VAT Rate class', 'invoicing'), |
|
| 198 | 198 | 'type' => 'text', |
| 199 | 199 | 'size' => 'regular', |
| 200 | 200 | ); |
| 201 | 201 | $vat_rates['vat_rate_desc'] = array( |
| 202 | 202 | 'id' => 'vat_rate_desc', |
| 203 | - 'name' => __( 'Description', 'invoicing' ), |
|
| 204 | - 'desc' => __( 'Manage VAT Rate class', 'invoicing' ), |
|
| 203 | + 'name' => __('Description', 'invoicing'), |
|
| 204 | + 'desc' => __('Manage VAT Rate class', 'invoicing'), |
|
| 205 | 205 | 'type' => 'text', |
| 206 | 206 | 'size' => 'regular', |
| 207 | 207 | ); |
@@ -213,7 +213,7 @@ discard block |
||
| 213 | 213 | $vat_rates['vat_rates'] = array( |
| 214 | 214 | 'id' => 'vat_rates', |
| 215 | 215 | 'name' => '<h3>' . $vat_classes[$vat_class] . '</h3>', |
| 216 | - 'desc' => self::get_class_desc( $vat_class ), |
|
| 216 | + 'desc' => self::get_class_desc($vat_class), |
|
| 217 | 217 | 'type' => 'vat_rates', |
| 218 | 218 | ); |
| 219 | 219 | } |
@@ -221,12 +221,12 @@ discard block |
||
| 221 | 221 | return $vat_rates; |
| 222 | 222 | } |
| 223 | 223 | |
| 224 | - public static function vat_settings( $settings ) { |
|
| 225 | - if ( !empty( $settings ) ) { |
|
| 224 | + public static function vat_settings($settings) { |
|
| 225 | + if (!empty($settings)) { |
|
| 226 | 226 | $vat_settings = array(); |
| 227 | 227 | $vat_settings['vat_company_title'] = array( |
| 228 | 228 | 'id' => 'vat_company_title', |
| 229 | - 'name' => '<h3>' . __( 'Your Company Details', 'invoicing' ) . '</h3>', |
|
| 229 | + 'name' => '<h3>' . __('Your Company Details', 'invoicing') . '</h3>', |
|
| 230 | 230 | 'desc' => '', |
| 231 | 231 | 'type' => 'header', |
| 232 | 232 | 'size' => 'regular' |
@@ -234,22 +234,22 @@ discard block |
||
| 234 | 234 | |
| 235 | 235 | $vat_settings['vat_company_name'] = array( |
| 236 | 236 | 'id' => 'vat_company_name', |
| 237 | - 'name' => __( 'Your Company Name', 'invoicing' ), |
|
| 238 | - 'desc' => wp_sprintf(__( 'Your company name as it appears on your VAT return, you can verify it via your VAT ID on the %sEU VIES System.%s', 'invoicing' ), '<a href="http://ec.europa.eu/taxation_customs/vies/" target="_blank">', '</a>' ), |
|
| 237 | + 'name' => __('Your Company Name', 'invoicing'), |
|
| 238 | + 'desc' => wp_sprintf(__('Your company name as it appears on your VAT return, you can verify it via your VAT ID on the %sEU VIES System.%s', 'invoicing'), '<a href="http://ec.europa.eu/taxation_customs/vies/" target="_blank">', '</a>'), |
|
| 239 | 239 | 'type' => 'text', |
| 240 | 240 | 'size' => 'regular', |
| 241 | 241 | ); |
| 242 | 242 | |
| 243 | 243 | $vat_settings['vat_number'] = array( |
| 244 | 244 | 'id' => 'vat_number', |
| 245 | - 'name' => __( 'Your VAT Number', 'invoicing' ), |
|
| 245 | + 'name' => __('Your VAT Number', 'invoicing'), |
|
| 246 | 246 | 'type' => 'vat_number', |
| 247 | 247 | 'size' => 'regular', |
| 248 | 248 | ); |
| 249 | 249 | |
| 250 | 250 | $vat_settings['vat_settings_title'] = array( |
| 251 | 251 | 'id' => 'vat_settings_title', |
| 252 | - 'name' => '<h3>' . __( 'Apply VAT Settings', 'invoicing' ) . '</h3>', |
|
| 252 | + 'name' => '<h3>' . __('Apply VAT Settings', 'invoicing') . '</h3>', |
|
| 253 | 253 | 'desc' => '', |
| 254 | 254 | 'type' => 'header', |
| 255 | 255 | 'size' => 'regular' |
@@ -257,8 +257,8 @@ discard block |
||
| 257 | 257 | |
| 258 | 258 | $vat_settings['apply_vat_rules'] = array( |
| 259 | 259 | 'id' => 'apply_vat_rules', |
| 260 | - 'name' => __( 'Enable VAT Rules', 'invoicing' ), |
|
| 261 | - 'desc' => __( 'Apply VAT to consumer sales from IP addresses within the EU, even if the billing address is outside the EU.', 'invoicing' ) . '<br><font style="color:red">' . __( 'Do not disable unless you know what you are doing.', 'invoicing' ) . '</font>', |
|
| 260 | + 'name' => __('Enable VAT Rules', 'invoicing'), |
|
| 261 | + 'desc' => __('Apply VAT to consumer sales from IP addresses within the EU, even if the billing address is outside the EU.', 'invoicing') . '<br><font style="color:red">' . __('Do not disable unless you know what you are doing.', 'invoicing') . '</font>', |
|
| 262 | 262 | 'type' => 'checkbox', |
| 263 | 263 | 'std' => '1' |
| 264 | 264 | ); |
@@ -274,8 +274,8 @@ discard block |
||
| 274 | 274 | |
| 275 | 275 | $vat_settings['vat_prevent_b2c_purchase'] = array( |
| 276 | 276 | 'id' => 'vat_prevent_b2c_purchase', |
| 277 | - 'name' => __( 'Prevent EU B2C Sales', 'invoicing' ), |
|
| 278 | - 'desc' => __( 'Enable this option if you are not registered for VAT in the EU.', 'invoicing' ), |
|
| 277 | + 'name' => __('Prevent EU B2C Sales', 'invoicing'), |
|
| 278 | + 'desc' => __('Enable this option if you are not registered for VAT in the EU.', 'invoicing'), |
|
| 279 | 279 | 'type' => 'checkbox' |
| 280 | 280 | ); |
| 281 | 281 | |
@@ -283,22 +283,22 @@ discard block |
||
| 283 | 283 | |
| 284 | 284 | $vat_settings['vat_same_country_rule'] = array( |
| 285 | 285 | 'id' => 'vat_same_country_rule', |
| 286 | - 'name' => __( 'Same Country Rule', 'invoicing' ), |
|
| 287 | - 'desc' => __( 'Select how you want to handle VAT charge if sales are in the same country as the base country.', 'invoicing' ), |
|
| 286 | + 'name' => __('Same Country Rule', 'invoicing'), |
|
| 287 | + 'desc' => __('Select how you want to handle VAT charge if sales are in the same country as the base country.', 'invoicing'), |
|
| 288 | 288 | 'type' => 'select', |
| 289 | 289 | 'options' => array( |
| 290 | - '' => __( 'Normal', 'invoicing' ), |
|
| 291 | - 'no' => __( 'No VAT', 'invoicing' ), |
|
| 292 | - 'always' => __( 'Always apply VAT', 'invoicing' ), |
|
| 290 | + '' => __('Normal', 'invoicing'), |
|
| 291 | + 'no' => __('No VAT', 'invoicing'), |
|
| 292 | + 'always' => __('Always apply VAT', 'invoicing'), |
|
| 293 | 293 | ), |
| 294 | - 'placeholder' => __( 'Select an option', 'invoicing' ), |
|
| 294 | + 'placeholder' => __('Select an option', 'invoicing'), |
|
| 295 | 295 | 'std' => '', |
| 296 | 296 | 'class' => 'wpi_select2', |
| 297 | 297 | ); |
| 298 | 298 | |
| 299 | 299 | $vat_settings['vat_checkout_title'] = array( |
| 300 | 300 | 'id' => 'vat_checkout_title', |
| 301 | - 'name' => '<h3>' . __( 'Checkout Fields', 'invoicing' ) . '</h3>', |
|
| 301 | + 'name' => '<h3>' . __('Checkout Fields', 'invoicing') . '</h3>', |
|
| 302 | 302 | 'desc' => '', |
| 303 | 303 | 'type' => 'header', |
| 304 | 304 | 'size' => 'regular' |
@@ -306,14 +306,14 @@ discard block |
||
| 306 | 306 | |
| 307 | 307 | $vat_settings['vat_disable_fields'] = array( |
| 308 | 308 | 'id' => 'vat_disable_fields', |
| 309 | - 'name' => __( 'Disable VAT Fields', 'invoicing' ), |
|
| 310 | - 'desc' => __( 'Disable VAT fields if Invoicing is being used for GST.', 'invoicing' ) . '<br><font style="color:red">' . __( 'Do not disable if you have enabled Prevent EU B2C sales, otherwise Prevent EU B2C sales setting will not work.', 'invoicing' ) . '</font>', |
|
| 309 | + 'name' => __('Disable VAT Fields', 'invoicing'), |
|
| 310 | + 'desc' => __('Disable VAT fields if Invoicing is being used for GST.', 'invoicing') . '<br><font style="color:red">' . __('Do not disable if you have enabled Prevent EU B2C sales, otherwise Prevent EU B2C sales setting will not work.', 'invoicing') . '</font>', |
|
| 311 | 311 | 'type' => 'checkbox' |
| 312 | 312 | ); |
| 313 | 313 | |
| 314 | 314 | $vat_settings['vat_ip_lookup'] = array( |
| 315 | 315 | 'id' => 'vat_ip_lookup', |
| 316 | - 'name' => __( 'IP Country Look-up', 'invoicing' ), |
|
| 316 | + 'name' => __('IP Country Look-up', 'invoicing'), |
|
| 317 | 317 | 'type' => 'vat_ip_lookup', |
| 318 | 318 | 'size' => 'regular', |
| 319 | 319 | 'std' => 'default', |
@@ -322,21 +322,21 @@ discard block |
||
| 322 | 322 | |
| 323 | 323 | $vat_settings['hide_ip_address'] = array( |
| 324 | 324 | 'id' => 'hide_ip_address', |
| 325 | - 'name' => __( 'Hide IP Info at Checkout', 'invoicing' ), |
|
| 326 | - 'desc' => __( 'Hide the user IP info at checkout.', 'invoicing' ), |
|
| 325 | + 'name' => __('Hide IP Info at Checkout', 'invoicing'), |
|
| 326 | + 'desc' => __('Hide the user IP info at checkout.', 'invoicing'), |
|
| 327 | 327 | 'type' => 'checkbox' |
| 328 | 328 | ); |
| 329 | 329 | |
| 330 | 330 | $vat_settings['vat_ip_country_default'] = array( |
| 331 | 331 | 'id' => 'vat_ip_country_default', |
| 332 | - 'name' => __( 'Enable IP Country as Default', 'invoicing' ), |
|
| 333 | - 'desc' => __( 'Show the country of the users IP as the default country, otherwise the site default country will be used.', 'invoicing' ), |
|
| 332 | + 'name' => __('Enable IP Country as Default', 'invoicing'), |
|
| 333 | + 'desc' => __('Show the country of the users IP as the default country, otherwise the site default country will be used.', 'invoicing'), |
|
| 334 | 334 | 'type' => 'checkbox' |
| 335 | 335 | ); |
| 336 | 336 | |
| 337 | 337 | $vat_settings['vies_validation_title'] = array( |
| 338 | 338 | 'id' => 'vies_validation_title', |
| 339 | - 'name' => '<h3>' . __( 'VIES Validation', 'invoicing' ) . '</h3>', |
|
| 339 | + 'name' => '<h3>' . __('VIES Validation', 'invoicing') . '</h3>', |
|
| 340 | 340 | 'desc' => '', |
| 341 | 341 | 'type' => 'header', |
| 342 | 342 | 'size' => 'regular' |
@@ -344,37 +344,37 @@ discard block |
||
| 344 | 344 | |
| 345 | 345 | $vat_settings['vat_vies_check'] = array( |
| 346 | 346 | 'id' => 'vat_vies_check', |
| 347 | - 'name' => __( 'Disable VIES VAT ID Check', 'invoicing' ), |
|
| 348 | - 'desc' => wp_sprintf( __( 'Prevent VAT numbers from being validated by the %sEU VIES System.%s', 'invoicing' ), '<a href="http://ec.europa.eu/taxation_customs/vies/" target="_blank">', '</a>' ), |
|
| 347 | + 'name' => __('Disable VIES VAT ID Check', 'invoicing'), |
|
| 348 | + 'desc' => wp_sprintf(__('Prevent VAT numbers from being validated by the %sEU VIES System.%s', 'invoicing'), '<a href="http://ec.europa.eu/taxation_customs/vies/" target="_blank">', '</a>'), |
|
| 349 | 349 | 'type' => 'checkbox' |
| 350 | 350 | ); |
| 351 | 351 | |
| 352 | 352 | $vat_settings['vat_disable_company_name_check'] = array( |
| 353 | 353 | 'id' => 'vat_disable_company_name_check', |
| 354 | - 'name' => __( 'Disable VIES Name Check', 'invoicing' ), |
|
| 355 | - 'desc' => wp_sprintf( __( 'Prevent company name from being validated by the %sEU VIES System.%s', 'invoicing' ), '<a href="http://ec.europa.eu/taxation_customs/vies/" target="_blank">', '</a>' ), |
|
| 354 | + 'name' => __('Disable VIES Name Check', 'invoicing'), |
|
| 355 | + 'desc' => wp_sprintf(__('Prevent company name from being validated by the %sEU VIES System.%s', 'invoicing'), '<a href="http://ec.europa.eu/taxation_customs/vies/" target="_blank">', '</a>'), |
|
| 356 | 356 | 'type' => 'checkbox' |
| 357 | 357 | ); |
| 358 | 358 | |
| 359 | 359 | $vat_settings['vat_offline_check'] = array( |
| 360 | 360 | 'id' => 'vat_offline_check', |
| 361 | - 'name' => __( 'Disable Basic Checks', 'invoicing' ), |
|
| 362 | - 'desc' => __( 'Disable basic JS checks for correct format of VAT number. (Not Recommended)', 'invoicing' ), |
|
| 361 | + 'name' => __('Disable Basic Checks', 'invoicing'), |
|
| 362 | + 'desc' => __('Disable basic JS checks for correct format of VAT number. (Not Recommended)', 'invoicing'), |
|
| 363 | 363 | 'type' => 'checkbox' |
| 364 | 364 | ); |
| 365 | 365 | |
| 366 | 366 | |
| 367 | 367 | $settings['vat'] = $vat_settings; |
| 368 | 368 | |
| 369 | - if ( self::allow_vat_classes() ) { |
|
| 369 | + if (self::allow_vat_classes()) { |
|
| 370 | 370 | $settings['vat_rates'] = self::vat_rates_settings(); |
| 371 | 371 | } |
| 372 | 372 | |
| 373 | 373 | $eu_fallback_rate = array( |
| 374 | 374 | 'id' => 'eu_fallback_rate', |
| 375 | - 'name' => '<h3>' . __( 'VAT rate for EU member states', 'invoicing' ) . '</h3>', |
|
| 375 | + 'name' => '<h3>' . __('VAT rate for EU member states', 'invoicing') . '</h3>', |
|
| 376 | 376 | 'type' => 'eu_fallback_rate', |
| 377 | - 'desc' => __( 'Enter the VAT rate to be charged for EU member states. You can edit the rates for each member state when a country rate has been set up by pressing this button.', 'invoicing' ), |
|
| 377 | + 'desc' => __('Enter the VAT rate to be charged for EU member states. You can edit the rates for each member state when a country rate has been set up by pressing this button.', 'invoicing'), |
|
| 378 | 378 | 'std' => '20', |
| 379 | 379 | 'size' => 'small' |
| 380 | 380 | ); |
@@ -390,11 +390,11 @@ discard block |
||
| 390 | 390 | $database_url = 'http' . (isset($_SERVER["HTTPS"]) && $_SERVER["HTTPS"] === 'on' ? 's' : '') . '://geolite.maxmind.com/download/geoip/database/'; |
| 391 | 391 | $destination_dir = $upload_dir['basedir'] . '/invoicing'; |
| 392 | 392 | |
| 393 | - if ( !is_dir( $destination_dir ) ) { |
|
| 394 | - mkdir( $destination_dir ); |
|
| 393 | + if (!is_dir($destination_dir)) { |
|
| 394 | + mkdir($destination_dir); |
|
| 395 | 395 | } |
| 396 | 396 | |
| 397 | - $database_files = array( |
|
| 397 | + $database_files = array( |
|
| 398 | 398 | 'country' => array( |
| 399 | 399 | 'source' => $database_url . 'GeoLite2-Country.mmdb.gz', |
| 400 | 400 | 'destination' => $destination_dir . '/GeoLite2-Country.mmdb', |
@@ -405,57 +405,57 @@ discard block |
||
| 405 | 405 | ) |
| 406 | 406 | ); |
| 407 | 407 | |
| 408 | - foreach( $database_files as $database => $files ) { |
|
| 409 | - $result = self::geoip2_download_file( $files['source'], $files['destination'] ); |
|
| 408 | + foreach ($database_files as $database => $files) { |
|
| 409 | + $result = self::geoip2_download_file($files['source'], $files['destination']); |
|
| 410 | 410 | |
| 411 | - if ( empty( $result['success'] ) ) { |
|
| 411 | + if (empty($result['success'])) { |
|
| 412 | 412 | echo $result['message']; |
| 413 | 413 | exit; |
| 414 | 414 | } |
| 415 | 415 | |
| 416 | - wpinv_update_option( 'wpinv_geoip2_date_updated', current_time( 'timestamp' ) ); |
|
| 417 | - echo sprintf(__( 'GeoIP2 %s database updated successfully.', 'invoicing' ), $database ) . ' '; |
|
| 416 | + wpinv_update_option('wpinv_geoip2_date_updated', current_time('timestamp')); |
|
| 417 | + echo sprintf(__('GeoIP2 %s database updated successfully.', 'invoicing'), $database) . ' '; |
|
| 418 | 418 | } |
| 419 | 419 | |
| 420 | 420 | exit; |
| 421 | 421 | } |
| 422 | 422 | |
| 423 | - public static function geoip2_download_file( $source_url, $destination_file ) { |
|
| 423 | + public static function geoip2_download_file($source_url, $destination_file) { |
|
| 424 | 424 | $success = false; |
| 425 | 425 | $message = ''; |
| 426 | 426 | |
| 427 | - if ( !function_exists( 'download_url' ) ) { |
|
| 428 | - require_once( ABSPATH . 'wp-admin/includes/file.php' ); |
|
| 427 | + if (!function_exists('download_url')) { |
|
| 428 | + require_once(ABSPATH . 'wp-admin/includes/file.php'); |
|
| 429 | 429 | } |
| 430 | 430 | |
| 431 | - $temp_file = download_url( $source_url ); |
|
| 431 | + $temp_file = download_url($source_url); |
|
| 432 | 432 | |
| 433 | - if ( is_wp_error( $temp_file ) ) { |
|
| 434 | - $message = sprintf( __( 'Error while downloading GeoIp2 database( %s ): %s', 'invoicing' ), $source_url, $temp_file->get_error_message() ); |
|
| 433 | + if (is_wp_error($temp_file)) { |
|
| 434 | + $message = sprintf(__('Error while downloading GeoIp2 database( %s ): %s', 'invoicing'), $source_url, $temp_file->get_error_message()); |
|
| 435 | 435 | } else { |
| 436 | - $handle = gzopen( $temp_file, 'rb' ); |
|
| 436 | + $handle = gzopen($temp_file, 'rb'); |
|
| 437 | 437 | |
| 438 | - if ( $handle ) { |
|
| 439 | - $fopen = fopen( $destination_file, 'wb' ); |
|
| 440 | - if ( $fopen ) { |
|
| 441 | - while ( ( $data = gzread( $handle, 4096 ) ) != false ) { |
|
| 442 | - fwrite( $fopen, $data ); |
|
| 438 | + if ($handle) { |
|
| 439 | + $fopen = fopen($destination_file, 'wb'); |
|
| 440 | + if ($fopen) { |
|
| 441 | + while (($data = gzread($handle, 4096)) != false) { |
|
| 442 | + fwrite($fopen, $data); |
|
| 443 | 443 | } |
| 444 | 444 | |
| 445 | - gzclose( $handle ); |
|
| 446 | - fclose( $fopen ); |
|
| 445 | + gzclose($handle); |
|
| 446 | + fclose($fopen); |
|
| 447 | 447 | |
| 448 | 448 | $success = true; |
| 449 | 449 | } else { |
| 450 | - gzclose( $handle ); |
|
| 451 | - $message = sprintf( __( 'Error could not open destination GeoIp2 database file for writing: %s', 'invoicing' ), $destination_file ); |
|
| 450 | + gzclose($handle); |
|
| 451 | + $message = sprintf(__('Error could not open destination GeoIp2 database file for writing: %s', 'invoicing'), $destination_file); |
|
| 452 | 452 | } |
| 453 | 453 | } else { |
| 454 | - $message = sprintf( __( 'Error could not open GeoIp2 database file for reading: %s', 'invoicing' ), $temp_file ); |
|
| 454 | + $message = sprintf(__('Error could not open GeoIp2 database file for reading: %s', 'invoicing'), $temp_file); |
|
| 455 | 455 | } |
| 456 | 456 | |
| 457 | - if ( file_exists( $temp_file ) ) { |
|
| 458 | - unlink( $temp_file ); |
|
| 457 | + if (file_exists($temp_file)) { |
|
| 458 | + unlink($temp_file); |
|
| 459 | 459 | } |
| 460 | 460 | } |
| 461 | 461 | |
@@ -467,11 +467,11 @@ discard block |
||
| 467 | 467 | } |
| 468 | 468 | |
| 469 | 469 | public static function load_geoip2() { |
| 470 | - if ( defined( 'WPINV_GEOIP2_LODDED' ) ) { |
|
| 470 | + if (defined('WPINV_GEOIP2_LODDED')) { |
|
| 471 | 471 | return; |
| 472 | 472 | } |
| 473 | 473 | |
| 474 | - if ( !class_exists( '\MaxMind\Db\Reader' ) ) { |
|
| 474 | + if (!class_exists('\MaxMind\Db\Reader')) { |
|
| 475 | 475 | $maxmind_db_files = array( |
| 476 | 476 | 'Reader/Decoder.php', |
| 477 | 477 | 'Reader/InvalidDatabaseException.php', |
@@ -480,12 +480,12 @@ discard block |
||
| 480 | 480 | 'Reader.php', |
| 481 | 481 | ); |
| 482 | 482 | |
| 483 | - foreach ( $maxmind_db_files as $key => $file ) { |
|
| 484 | - require_once( WPINV_PLUGIN_DIR . 'includes/libraries/MaxMind/Db/' . $file ); |
|
| 483 | + foreach ($maxmind_db_files as $key => $file) { |
|
| 484 | + require_once(WPINV_PLUGIN_DIR . 'includes/libraries/MaxMind/Db/' . $file); |
|
| 485 | 485 | } |
| 486 | 486 | } |
| 487 | 487 | |
| 488 | - if ( !class_exists( '\GeoIp2\Database\Reader' ) ) { |
|
| 488 | + if (!class_exists('\GeoIp2\Database\Reader')) { |
|
| 489 | 489 | $geoip2_files = array( |
| 490 | 490 | 'ProviderInterface.php', |
| 491 | 491 | 'Compat/JsonSerializable.php', |
@@ -519,23 +519,23 @@ discard block |
||
| 519 | 519 | 'WebService/Client.php', |
| 520 | 520 | ); |
| 521 | 521 | |
| 522 | - foreach ( $geoip2_files as $key => $file ) { |
|
| 523 | - require_once( WPINV_PLUGIN_DIR . 'includes/libraries/GeoIp2/' . $file ); |
|
| 522 | + foreach ($geoip2_files as $key => $file) { |
|
| 523 | + require_once(WPINV_PLUGIN_DIR . 'includes/libraries/GeoIp2/' . $file); |
|
| 524 | 524 | } |
| 525 | 525 | } |
| 526 | 526 | |
| 527 | - define( 'WPINV_GEOIP2_LODDED', true ); |
|
| 527 | + define('WPINV_GEOIP2_LODDED', true); |
|
| 528 | 528 | } |
| 529 | 529 | |
| 530 | 530 | public static function geoip2_country_dbfile() { |
| 531 | 531 | $upload_dir = wp_upload_dir(); |
| 532 | 532 | |
| 533 | - if ( !isset( $upload_dir['basedir'] ) ) { |
|
| 533 | + if (!isset($upload_dir['basedir'])) { |
|
| 534 | 534 | return false; |
| 535 | 535 | } |
| 536 | 536 | |
| 537 | 537 | $filename = $upload_dir['basedir'] . '/invoicing/GeoLite2-Country.mmdb'; |
| 538 | - if ( !file_exists( $filename ) ) { |
|
| 538 | + if (!file_exists($filename)) { |
|
| 539 | 539 | return false; |
| 540 | 540 | } |
| 541 | 541 | |
@@ -545,12 +545,12 @@ discard block |
||
| 545 | 545 | public static function geoip2_city_dbfile() { |
| 546 | 546 | $upload_dir = wp_upload_dir(); |
| 547 | 547 | |
| 548 | - if ( !isset( $upload_dir['basedir'] ) ) { |
|
| 548 | + if (!isset($upload_dir['basedir'])) { |
|
| 549 | 549 | return false; |
| 550 | 550 | } |
| 551 | 551 | |
| 552 | 552 | $filename = $upload_dir['basedir'] . '/invoicing/GeoLite2-City.mmdb'; |
| 553 | - if ( !file_exists( $filename ) ) { |
|
| 553 | + if (!file_exists($filename)) { |
|
| 554 | 554 | return false; |
| 555 | 555 | } |
| 556 | 556 | |
@@ -561,10 +561,10 @@ discard block |
||
| 561 | 561 | try { |
| 562 | 562 | self::load_geoip2(); |
| 563 | 563 | |
| 564 | - if ( $filename = self::geoip2_country_dbfile() ) { |
|
| 565 | - return new \GeoIp2\Database\Reader( $filename ); |
|
| 564 | + if ($filename = self::geoip2_country_dbfile()) { |
|
| 565 | + return new \GeoIp2\Database\Reader($filename); |
|
| 566 | 566 | } |
| 567 | - } catch( Exception $e ) { |
|
| 567 | + } catch (Exception $e) { |
|
| 568 | 568 | return false; |
| 569 | 569 | } |
| 570 | 570 | |
@@ -575,183 +575,183 @@ discard block |
||
| 575 | 575 | try { |
| 576 | 576 | self::load_geoip2(); |
| 577 | 577 | |
| 578 | - if ( $filename = self::geoip2_city_dbfile() ) { |
|
| 579 | - return new \GeoIp2\Database\Reader( $filename ); |
|
| 578 | + if ($filename = self::geoip2_city_dbfile()) { |
|
| 579 | + return new \GeoIp2\Database\Reader($filename); |
|
| 580 | 580 | } |
| 581 | - } catch( Exception $e ) { |
|
| 581 | + } catch (Exception $e) { |
|
| 582 | 582 | return false; |
| 583 | 583 | } |
| 584 | 584 | |
| 585 | 585 | return false; |
| 586 | 586 | } |
| 587 | 587 | |
| 588 | - public static function geoip2_country_record( $ip_address ) { |
|
| 588 | + public static function geoip2_country_record($ip_address) { |
|
| 589 | 589 | try { |
| 590 | 590 | $reader = self::geoip2_country_reader(); |
| 591 | 591 | |
| 592 | - if ( $reader ) { |
|
| 593 | - $record = $reader->country( $ip_address ); |
|
| 592 | + if ($reader) { |
|
| 593 | + $record = $reader->country($ip_address); |
|
| 594 | 594 | |
| 595 | - if ( !empty( $record->country->isoCode ) ) { |
|
| 595 | + if (!empty($record->country->isoCode)) { |
|
| 596 | 596 | return $record; |
| 597 | 597 | } |
| 598 | 598 | } |
| 599 | - } catch(\InvalidArgumentException $e) { |
|
| 600 | - wpinv_error_log( $e->getMessage(), 'GeoIp2 Lookup( ' . $ip_address . ' )' ); |
|
| 599 | + } catch (\InvalidArgumentException $e) { |
|
| 600 | + wpinv_error_log($e->getMessage(), 'GeoIp2 Lookup( ' . $ip_address . ' )'); |
|
| 601 | 601 | |
| 602 | 602 | return false; |
| 603 | - } catch(\GeoIp2\Exception\AddressNotFoundException $e) { |
|
| 604 | - wpinv_error_log( $e->getMessage(), 'GeoIp2 Lookup( ' . $ip_address . ' )' ); |
|
| 603 | + } catch (\GeoIp2\Exception\AddressNotFoundException $e) { |
|
| 604 | + wpinv_error_log($e->getMessage(), 'GeoIp2 Lookup( ' . $ip_address . ' )'); |
|
| 605 | 605 | |
| 606 | 606 | return false; |
| 607 | - } catch( Exception $e ) { |
|
| 607 | + } catch (Exception $e) { |
|
| 608 | 608 | return false; |
| 609 | 609 | } |
| 610 | 610 | |
| 611 | 611 | return false; |
| 612 | 612 | } |
| 613 | 613 | |
| 614 | - public static function geoip2_city_record( $ip_address ) { |
|
| 614 | + public static function geoip2_city_record($ip_address) { |
|
| 615 | 615 | try { |
| 616 | 616 | $reader = self::geoip2_city_reader(); |
| 617 | 617 | |
| 618 | - if ( $reader ) { |
|
| 619 | - $record = $reader->city( $ip_address ); |
|
| 618 | + if ($reader) { |
|
| 619 | + $record = $reader->city($ip_address); |
|
| 620 | 620 | |
| 621 | - if ( !empty( $record->country->isoCode ) ) { |
|
| 621 | + if (!empty($record->country->isoCode)) { |
|
| 622 | 622 | return $record; |
| 623 | 623 | } |
| 624 | 624 | } |
| 625 | - } catch(\InvalidArgumentException $e) { |
|
| 626 | - wpinv_error_log( $e->getMessage(), 'GeoIp2 Lookup( ' . $ip_address . ' )' ); |
|
| 625 | + } catch (\InvalidArgumentException $e) { |
|
| 626 | + wpinv_error_log($e->getMessage(), 'GeoIp2 Lookup( ' . $ip_address . ' )'); |
|
| 627 | 627 | |
| 628 | 628 | return false; |
| 629 | - } catch(\GeoIp2\Exception\AddressNotFoundException $e) { |
|
| 630 | - wpinv_error_log( $e->getMessage(), 'GeoIp2 Lookup( ' . $ip_address . ' )' ); |
|
| 629 | + } catch (\GeoIp2\Exception\AddressNotFoundException $e) { |
|
| 630 | + wpinv_error_log($e->getMessage(), 'GeoIp2 Lookup( ' . $ip_address . ' )'); |
|
| 631 | 631 | |
| 632 | 632 | return false; |
| 633 | - } catch( Exception $e ) { |
|
| 633 | + } catch (Exception $e) { |
|
| 634 | 634 | return false; |
| 635 | 635 | } |
| 636 | 636 | |
| 637 | 637 | return false; |
| 638 | 638 | } |
| 639 | 639 | |
| 640 | - public static function geoip2_country_code( $ip_address ) { |
|
| 641 | - $record = self::geoip2_country_record( $ip_address ); |
|
| 642 | - return !empty( $record->country->isoCode ) ? $record->country->isoCode : wpinv_get_default_country(); |
|
| 640 | + public static function geoip2_country_code($ip_address) { |
|
| 641 | + $record = self::geoip2_country_record($ip_address); |
|
| 642 | + return !empty($record->country->isoCode) ? $record->country->isoCode : wpinv_get_default_country(); |
|
| 643 | 643 | } |
| 644 | 644 | |
| 645 | 645 | // Find country by IP address. |
| 646 | - public static function get_country_by_ip( $ip = '' ) { |
|
| 646 | + public static function get_country_by_ip($ip = '') { |
|
| 647 | 647 | global $wpinv_ip_address_country; |
| 648 | 648 | |
| 649 | - if ( !empty( $wpinv_ip_address_country ) ) { |
|
| 649 | + if (!empty($wpinv_ip_address_country)) { |
|
| 650 | 650 | return $wpinv_ip_address_country; |
| 651 | 651 | } |
| 652 | 652 | |
| 653 | - if ( empty( $ip ) ) { |
|
| 653 | + if (empty($ip)) { |
|
| 654 | 654 | $ip = wpinv_get_ip(); |
| 655 | 655 | } |
| 656 | 656 | |
| 657 | - $ip_country_service = wpinv_get_option( 'vat_ip_lookup' ); |
|
| 658 | - $is_default = empty( $ip_country_service ) || $ip_country_service === 'default' ? true : false; |
|
| 657 | + $ip_country_service = wpinv_get_option('vat_ip_lookup'); |
|
| 658 | + $is_default = empty($ip_country_service) || $ip_country_service === 'default' ? true : false; |
|
| 659 | 659 | |
| 660 | - if ( !empty( $ip ) && $ip !== '127.0.0.1' ) { // For 127.0.0.1(localhost) use default country. |
|
| 661 | - if ( function_exists( 'geoip_country_code_by_name') && ( $ip_country_service === 'geoip' || $is_default ) ) { |
|
| 660 | + if (!empty($ip) && $ip !== '127.0.0.1') { // For 127.0.0.1(localhost) use default country. |
|
| 661 | + if (function_exists('geoip_country_code_by_name') && ($ip_country_service === 'geoip' || $is_default)) { |
|
| 662 | 662 | try { |
| 663 | - $wpinv_ip_address_country = geoip_country_code_by_name( $ip ); |
|
| 664 | - } catch( Exception $e ) { |
|
| 665 | - wpinv_error_log( $e->getMessage(), 'GeoIP Lookup( ' . $ip . ' )' ); |
|
| 663 | + $wpinv_ip_address_country = geoip_country_code_by_name($ip); |
|
| 664 | + } catch (Exception $e) { |
|
| 665 | + wpinv_error_log($e->getMessage(), 'GeoIP Lookup( ' . $ip . ' )'); |
|
| 666 | 666 | } |
| 667 | - } else if ( self::geoip2_country_dbfile() && ( $ip_country_service === 'geoip2' || $is_default ) ) { |
|
| 668 | - $wpinv_ip_address_country = self::geoip2_country_code( $ip ); |
|
| 669 | - } else if ( function_exists( 'simplexml_load_file' ) && ini_get('allow_url_fopen') && ( $ip_country_service === 'geoplugin' || $is_default ) ) { |
|
| 670 | - $load_xml = simplexml_load_file( 'http://www.geoplugin.net/xml.gp?ip=' . $ip ); |
|
| 667 | + } else if (self::geoip2_country_dbfile() && ($ip_country_service === 'geoip2' || $is_default)) { |
|
| 668 | + $wpinv_ip_address_country = self::geoip2_country_code($ip); |
|
| 669 | + } else if (function_exists('simplexml_load_file') && ini_get('allow_url_fopen') && ($ip_country_service === 'geoplugin' || $is_default)) { |
|
| 670 | + $load_xml = simplexml_load_file('http://www.geoplugin.net/xml.gp?ip=' . $ip); |
|
| 671 | 671 | |
| 672 | - if ( !empty( $load_xml ) && !empty( $load_xml->geoplugin_countryCode ) ) { |
|
| 673 | - $wpinv_ip_address_country = (string)$load_xml->geoplugin_countryCode; |
|
| 672 | + if (!empty($load_xml) && !empty($load_xml->geoplugin_countryCode)) { |
|
| 673 | + $wpinv_ip_address_country = (string) $load_xml->geoplugin_countryCode; |
|
| 674 | 674 | } |
| 675 | - }elseif(!empty( $ip )){ |
|
| 675 | + }elseif (!empty($ip)) { |
|
| 676 | 676 | $url = 'http://ip-api.com/json/' . $ip; |
| 677 | 677 | $response = wp_remote_get($url); |
| 678 | 678 | |
| 679 | - if ( is_array( $response ) && wp_remote_retrieve_response_code( $response ) == '200' ) { |
|
| 680 | - $data = json_decode(wp_remote_retrieve_body( $response ),true); |
|
| 681 | - if(!empty($data['countryCode'])){ |
|
| 682 | - $wpinv_ip_address_country = (string)$data['countryCode']; |
|
| 679 | + if (is_array($response) && wp_remote_retrieve_response_code($response) == '200') { |
|
| 680 | + $data = json_decode(wp_remote_retrieve_body($response), true); |
|
| 681 | + if (!empty($data['countryCode'])) { |
|
| 682 | + $wpinv_ip_address_country = (string) $data['countryCode']; |
|
| 683 | 683 | } |
| 684 | 684 | } |
| 685 | 685 | } |
| 686 | 686 | } |
| 687 | 687 | |
| 688 | - if ( empty( $wpinv_ip_address_country ) ) { |
|
| 688 | + if (empty($wpinv_ip_address_country)) { |
|
| 689 | 689 | $wpinv_ip_address_country = wpinv_get_default_country(); |
| 690 | 690 | } |
| 691 | 691 | |
| 692 | 692 | return $wpinv_ip_address_country; |
| 693 | 693 | } |
| 694 | 694 | |
| 695 | - public static function sanitize_vat_settings( $input ) { |
|
| 695 | + public static function sanitize_vat_settings($input) { |
|
| 696 | 696 | global $wpinv_options; |
| 697 | 697 | |
| 698 | 698 | $valid = false; |
| 699 | 699 | $message = ''; |
| 700 | 700 | |
| 701 | - if ( !empty( $wpinv_options['vat_vies_check'] ) ) { |
|
| 702 | - if ( empty( $wpinv_options['vat_offline_check'] ) ) { |
|
| 703 | - $valid = self::offline_check( $input['vat_number'] ); |
|
| 701 | + if (!empty($wpinv_options['vat_vies_check'])) { |
|
| 702 | + if (empty($wpinv_options['vat_offline_check'])) { |
|
| 703 | + $valid = self::offline_check($input['vat_number']); |
|
| 704 | 704 | } else { |
| 705 | 705 | $valid = true; |
| 706 | 706 | } |
| 707 | 707 | |
| 708 | - $message = $valid ? '' : __( 'VAT number not validated', 'invoicing' ); |
|
| 708 | + $message = $valid ? '' : __('VAT number not validated', 'invoicing'); |
|
| 709 | 709 | } else { |
| 710 | - $result = self::check_vat( $input['vat_number'] ); |
|
| 710 | + $result = self::check_vat($input['vat_number']); |
|
| 711 | 711 | |
| 712 | - if ( empty( $result['valid'] ) ) { |
|
| 712 | + if (empty($result['valid'])) { |
|
| 713 | 713 | $valid = false; |
| 714 | 714 | $message = $result['message']; |
| 715 | 715 | } else { |
| 716 | - $valid = ( isset( $result['company'] ) && ( $result['company'] == '---' || ( strcasecmp( trim( $result['company'] ), trim( $input['vat_company_name'] ) ) == 0 ) ) ) || !empty( $wpinv_options['vat_disable_company_name_check'] ); |
|
| 717 | - $message = $valid ? '' : __( 'The company name associated with the VAT number provided is not the same as the company name provided.', 'invoicing' ); |
|
| 716 | + $valid = (isset($result['company']) && ($result['company'] == '---' || (strcasecmp(trim($result['company']), trim($input['vat_company_name'])) == 0))) || !empty($wpinv_options['vat_disable_company_name_check']); |
|
| 717 | + $message = $valid ? '' : __('The company name associated with the VAT number provided is not the same as the company name provided.', 'invoicing'); |
|
| 718 | 718 | } |
| 719 | 719 | } |
| 720 | 720 | |
| 721 | - if ( $message && self::is_vat_validated() != $valid ) { |
|
| 722 | - add_settings_error( 'wpinv-notices', '', $message, ( $valid ? 'updated' : 'error' ) ); |
|
| 721 | + if ($message && self::is_vat_validated() != $valid) { |
|
| 722 | + add_settings_error('wpinv-notices', '', $message, ($valid ? 'updated' : 'error')); |
|
| 723 | 723 | } |
| 724 | 724 | |
| 725 | 725 | $input['vat_valid'] = $valid; |
| 726 | 726 | return $input; |
| 727 | 727 | } |
| 728 | 728 | |
| 729 | - public static function sanitize_vat_rates( $input ) { |
|
| 730 | - if( !wpinv_current_user_can_manage_invoicing() ) { |
|
| 731 | - add_settings_error( 'wpinv-notices', '', __( 'Your account does not have permission to add rate classes.', 'invoicing' ), 'error' ); |
|
| 729 | + public static function sanitize_vat_rates($input) { |
|
| 730 | + if (!wpinv_current_user_can_manage_invoicing()) { |
|
| 731 | + add_settings_error('wpinv-notices', '', __('Your account does not have permission to add rate classes.', 'invoicing'), 'error'); |
|
| 732 | 732 | return $input; |
| 733 | 733 | } |
| 734 | 734 | |
| 735 | 735 | $vat_classes = self::get_rate_classes(); |
| 736 | - $vat_class = !empty( $_REQUEST['wpi_vat_class'] ) && isset( $vat_classes[$_REQUEST['wpi_vat_class']] )? sanitize_text_field( $_REQUEST['wpi_vat_class'] ) : ''; |
|
| 736 | + $vat_class = !empty($_REQUEST['wpi_vat_class']) && isset($vat_classes[$_REQUEST['wpi_vat_class']]) ? sanitize_text_field($_REQUEST['wpi_vat_class']) : ''; |
|
| 737 | 737 | |
| 738 | - if ( empty( $vat_class ) ) { |
|
| 739 | - add_settings_error( 'wpinv-notices', '', __( 'No valid VAT rates class contained in the request to save rates.', 'invoicing' ), 'error' ); |
|
| 738 | + if (empty($vat_class)) { |
|
| 739 | + add_settings_error('wpinv-notices', '', __('No valid VAT rates class contained in the request to save rates.', 'invoicing'), 'error'); |
|
| 740 | 740 | |
| 741 | 741 | return $input; |
| 742 | 742 | } |
| 743 | 743 | |
| 744 | - $new_rates = ! empty( $_POST['vat_rates'] ) ? array_values( $_POST['vat_rates'] ) : array(); |
|
| 744 | + $new_rates = !empty($_POST['vat_rates']) ? array_values($_POST['vat_rates']) : array(); |
|
| 745 | 745 | |
| 746 | - if ( $vat_class === '_standard' ) { |
|
| 746 | + if ($vat_class === '_standard') { |
|
| 747 | 747 | // Save the active rates in the invoice settings |
| 748 | - update_option( 'wpinv_tax_rates', $new_rates ); |
|
| 748 | + update_option('wpinv_tax_rates', $new_rates); |
|
| 749 | 749 | } else { |
| 750 | 750 | // Get the existing set of rates |
| 751 | 751 | $rates = self::get_non_standard_rates(); |
| 752 | 752 | $rates[$vat_class] = $new_rates; |
| 753 | 753 | |
| 754 | - update_option( 'wpinv_vat_rates', $rates ); |
|
| 754 | + update_option('wpinv_vat_rates', $rates); |
|
| 755 | 755 | } |
| 756 | 756 | |
| 757 | 757 | return $input; |
@@ -761,71 +761,71 @@ discard block |
||
| 761 | 761 | $response = array(); |
| 762 | 762 | $response['success'] = false; |
| 763 | 763 | |
| 764 | - if ( !wpinv_current_user_can_manage_invoicing() ) { |
|
| 765 | - $response['error'] = __( 'Invalid access!', 'invoicing' ); |
|
| 766 | - wp_send_json( $response ); |
|
| 764 | + if (!wpinv_current_user_can_manage_invoicing()) { |
|
| 765 | + $response['error'] = __('Invalid access!', 'invoicing'); |
|
| 766 | + wp_send_json($response); |
|
| 767 | 767 | } |
| 768 | 768 | |
| 769 | - $vat_class_name = !empty( $_POST['name'] ) ? sanitize_text_field( $_POST['name'] ) : false; |
|
| 770 | - $vat_class_desc = !empty( $_POST['desc'] ) ? sanitize_text_field( $_POST['desc'] ) : false; |
|
| 769 | + $vat_class_name = !empty($_POST['name']) ? sanitize_text_field($_POST['name']) : false; |
|
| 770 | + $vat_class_desc = !empty($_POST['desc']) ? sanitize_text_field($_POST['desc']) : false; |
|
| 771 | 771 | |
| 772 | - if ( empty( $vat_class_name ) ) { |
|
| 773 | - $response['error'] = __( 'Select the VAT rate name', 'invoicing' ); |
|
| 774 | - wp_send_json( $response ); |
|
| 772 | + if (empty($vat_class_name)) { |
|
| 773 | + $response['error'] = __('Select the VAT rate name', 'invoicing'); |
|
| 774 | + wp_send_json($response); |
|
| 775 | 775 | } |
| 776 | 776 | |
| 777 | - $vat_classes = (array)self::get_rate_classes(); |
|
| 777 | + $vat_classes = (array) self::get_rate_classes(); |
|
| 778 | 778 | |
| 779 | - if ( !empty( $vat_classes ) && in_array( strtolower( $vat_class_name ), array_map( 'strtolower', array_values( $vat_classes ) ) ) ) { |
|
| 780 | - $response['error'] = wp_sprintf( __( 'A VAT Rate name "%s" already exists', 'invoicing' ), $vat_class_name ); |
|
| 781 | - wp_send_json( $response ); |
|
| 779 | + if (!empty($vat_classes) && in_array(strtolower($vat_class_name), array_map('strtolower', array_values($vat_classes)))) { |
|
| 780 | + $response['error'] = wp_sprintf(__('A VAT Rate name "%s" already exists', 'invoicing'), $vat_class_name); |
|
| 781 | + wp_send_json($response); |
|
| 782 | 782 | } |
| 783 | 783 | |
| 784 | - $rate_class_key = normalize_whitespace( 'wpi-' . $vat_class_name ); |
|
| 785 | - $rate_class_key = sanitize_key( str_replace( " ", "-", $rate_class_key ) ); |
|
| 784 | + $rate_class_key = normalize_whitespace('wpi-' . $vat_class_name); |
|
| 785 | + $rate_class_key = sanitize_key(str_replace(" ", "-", $rate_class_key)); |
|
| 786 | 786 | |
| 787 | - $vat_classes = (array)self::get_rate_classes( true ); |
|
| 788 | - $vat_classes[$rate_class_key] = array( 'name' => $vat_class_name, 'desc' => $vat_class_desc ); |
|
| 787 | + $vat_classes = (array) self::get_rate_classes(true); |
|
| 788 | + $vat_classes[$rate_class_key] = array('name' => $vat_class_name, 'desc' => $vat_class_desc); |
|
| 789 | 789 | |
| 790 | - update_option( '_wpinv_vat_rate_classes', $vat_classes ); |
|
| 790 | + update_option('_wpinv_vat_rate_classes', $vat_classes); |
|
| 791 | 791 | |
| 792 | 792 | $response['success'] = true; |
| 793 | - $response['redirect'] = admin_url( 'admin.php?page=wpinv-settings&tab=taxes§ion=vat_rates&wpi_sub=' . $rate_class_key ); |
|
| 793 | + $response['redirect'] = admin_url('admin.php?page=wpinv-settings&tab=taxes§ion=vat_rates&wpi_sub=' . $rate_class_key); |
|
| 794 | 794 | |
| 795 | - wp_send_json( $response ); |
|
| 795 | + wp_send_json($response); |
|
| 796 | 796 | } |
| 797 | 797 | |
| 798 | 798 | public static function delete_class() { |
| 799 | 799 | $response = array(); |
| 800 | 800 | $response['success'] = false; |
| 801 | 801 | |
| 802 | - if ( !wpinv_current_user_can_manage_invoicing() || !isset( $_POST['class'] ) ) { |
|
| 803 | - $response['error'] = __( 'Invalid access!', 'invoicing' ); |
|
| 804 | - wp_send_json( $response ); |
|
| 802 | + if (!wpinv_current_user_can_manage_invoicing() || !isset($_POST['class'])) { |
|
| 803 | + $response['error'] = __('Invalid access!', 'invoicing'); |
|
| 804 | + wp_send_json($response); |
|
| 805 | 805 | } |
| 806 | 806 | |
| 807 | - $vat_class = isset( $_POST['class'] ) && $_POST['class'] !== '' ? sanitize_text_field( $_POST['class'] ) : false; |
|
| 808 | - $vat_classes = (array)self::get_rate_classes(); |
|
| 807 | + $vat_class = isset($_POST['class']) && $_POST['class'] !== '' ? sanitize_text_field($_POST['class']) : false; |
|
| 808 | + $vat_classes = (array) self::get_rate_classes(); |
|
| 809 | 809 | |
| 810 | - if ( !isset( $vat_classes[$vat_class] ) ) { |
|
| 811 | - $response['error'] = __( 'Requested class does not exists', 'invoicing' ); |
|
| 812 | - wp_send_json( $response ); |
|
| 810 | + if (!isset($vat_classes[$vat_class])) { |
|
| 811 | + $response['error'] = __('Requested class does not exists', 'invoicing'); |
|
| 812 | + wp_send_json($response); |
|
| 813 | 813 | } |
| 814 | 814 | |
| 815 | - if ( $vat_class == '_new' || $vat_class == '_standard' ) { |
|
| 816 | - $response['error'] = __( 'You can not delete standard rates class', 'invoicing' ); |
|
| 817 | - wp_send_json( $response ); |
|
| 815 | + if ($vat_class == '_new' || $vat_class == '_standard') { |
|
| 816 | + $response['error'] = __('You can not delete standard rates class', 'invoicing'); |
|
| 817 | + wp_send_json($response); |
|
| 818 | 818 | } |
| 819 | 819 | |
| 820 | - $vat_classes = (array)self::get_rate_classes( true ); |
|
| 821 | - unset( $vat_classes[$vat_class] ); |
|
| 820 | + $vat_classes = (array) self::get_rate_classes(true); |
|
| 821 | + unset($vat_classes[$vat_class]); |
|
| 822 | 822 | |
| 823 | - update_option( '_wpinv_vat_rate_classes', $vat_classes ); |
|
| 823 | + update_option('_wpinv_vat_rate_classes', $vat_classes); |
|
| 824 | 824 | |
| 825 | 825 | $response['success'] = true; |
| 826 | - $response['redirect'] = admin_url( 'admin.php?page=wpinv-settings&tab=taxes§ion=vat_rates&wpi_sub=_new' ); |
|
| 826 | + $response['redirect'] = admin_url('admin.php?page=wpinv-settings&tab=taxes§ion=vat_rates&wpi_sub=_new'); |
|
| 827 | 827 | |
| 828 | - wp_send_json( $response ); |
|
| 828 | + wp_send_json($response); |
|
| 829 | 829 | } |
| 830 | 830 | |
| 831 | 831 | public static function update_eu_rates() { |
@@ -834,72 +834,72 @@ discard block |
||
| 834 | 834 | $response['error'] = null; |
| 835 | 835 | $response['data'] = null; |
| 836 | 836 | |
| 837 | - if ( !wpinv_current_user_can_manage_invoicing() ) { |
|
| 838 | - $response['error'] = __( 'Invalid access!', 'invoicing' ); |
|
| 839 | - wp_send_json( $response ); |
|
| 837 | + if (!wpinv_current_user_can_manage_invoicing()) { |
|
| 838 | + $response['error'] = __('Invalid access!', 'invoicing'); |
|
| 839 | + wp_send_json($response); |
|
| 840 | 840 | } |
| 841 | 841 | |
| 842 | - $group = !empty( $_POST['group'] ) ? sanitize_text_field( $_POST['group'] ) : ''; |
|
| 843 | - $euvatrates = self::request_euvatrates( $group ); |
|
| 842 | + $group = !empty($_POST['group']) ? sanitize_text_field($_POST['group']) : ''; |
|
| 843 | + $euvatrates = self::request_euvatrates($group); |
|
| 844 | 844 | |
| 845 | - if ( !empty( $euvatrates ) ) { |
|
| 846 | - if ( !empty( $euvatrates['success'] ) && !empty( $euvatrates['rates'] ) ) { |
|
| 845 | + if (!empty($euvatrates)) { |
|
| 846 | + if (!empty($euvatrates['success']) && !empty($euvatrates['rates'])) { |
|
| 847 | 847 | $response['success'] = true; |
| 848 | 848 | $response['data']['rates'] = $euvatrates['rates']; |
| 849 | - } else if ( !empty( $euvatrates['error'] ) ) { |
|
| 849 | + } else if (!empty($euvatrates['error'])) { |
|
| 850 | 850 | $response['error'] = $euvatrates['error']; |
| 851 | 851 | } |
| 852 | 852 | } |
| 853 | 853 | |
| 854 | - wp_send_json( $response ); |
|
| 854 | + wp_send_json($response); |
|
| 855 | 855 | } |
| 856 | 856 | |
| 857 | 857 | public static function hide_vat_fields() { |
| 858 | - $hide = wpinv_get_option( 'vat_disable_fields' ); |
|
| 858 | + $hide = wpinv_get_option('vat_disable_fields'); |
|
| 859 | 859 | |
| 860 | - return apply_filters( 'wpinv_hide_vat_fields', $hide ); |
|
| 860 | + return apply_filters('wpinv_hide_vat_fields', $hide); |
|
| 861 | 861 | } |
| 862 | 862 | |
| 863 | 863 | public static function same_country_rule() { |
| 864 | - $same_country_rule = wpinv_get_option( 'vat_same_country_rule' ); |
|
| 864 | + $same_country_rule = wpinv_get_option('vat_same_country_rule'); |
|
| 865 | 865 | |
| 866 | - return apply_filters( 'wpinv_vat_same_country_rule', $same_country_rule ); |
|
| 866 | + return apply_filters('wpinv_vat_same_country_rule', $same_country_rule); |
|
| 867 | 867 | } |
| 868 | 868 | |
| 869 | 869 | public static function get_vat_name() { |
| 870 | - $vat_name = wpinv_get_option( 'vat_name' ); |
|
| 871 | - $vat_name = !empty( $vat_name ) ? $vat_name : 'VAT'; |
|
| 870 | + $vat_name = wpinv_get_option('vat_name'); |
|
| 871 | + $vat_name = !empty($vat_name) ? $vat_name : 'VAT'; |
|
| 872 | 872 | |
| 873 | - return apply_filters( 'wpinv_get_owner_vat_name', $vat_name ); |
|
| 873 | + return apply_filters('wpinv_get_owner_vat_name', $vat_name); |
|
| 874 | 874 | } |
| 875 | 875 | |
| 876 | 876 | public static function get_company_name() { |
| 877 | - $company_name = wpinv_get_option( 'vat_company_name' ); |
|
| 877 | + $company_name = wpinv_get_option('vat_company_name'); |
|
| 878 | 878 | |
| 879 | - return apply_filters( 'wpinv_get_owner_company_name', $company_name ); |
|
| 879 | + return apply_filters('wpinv_get_owner_company_name', $company_name); |
|
| 880 | 880 | } |
| 881 | 881 | |
| 882 | 882 | public static function get_vat_number() { |
| 883 | - $vat_number = wpinv_get_option( 'vat_number' ); |
|
| 883 | + $vat_number = wpinv_get_option('vat_number'); |
|
| 884 | 884 | |
| 885 | - return apply_filters( 'wpinv_get_owner_vat_number', $vat_number ); |
|
| 885 | + return apply_filters('wpinv_get_owner_vat_number', $vat_number); |
|
| 886 | 886 | } |
| 887 | 887 | |
| 888 | 888 | public static function is_vat_validated() { |
| 889 | - $validated = self::get_vat_number() && wpinv_get_option( 'vat_valid' ); |
|
| 889 | + $validated = self::get_vat_number() && wpinv_get_option('vat_valid'); |
|
| 890 | 890 | |
| 891 | - return apply_filters( 'wpinv_is_owner_vat_validated', $validated ); |
|
| 891 | + return apply_filters('wpinv_is_owner_vat_validated', $validated); |
|
| 892 | 892 | } |
| 893 | 893 | |
| 894 | - public static function sanitize_vat( $vat_number, $country_code = '' ) { |
|
| 895 | - $vat_number = str_replace( array(' ', '.', '-', '_', ',' ), '', strtoupper( trim( $vat_number ) ) ); |
|
| 894 | + public static function sanitize_vat($vat_number, $country_code = '') { |
|
| 895 | + $vat_number = str_replace(array(' ', '.', '-', '_', ','), '', strtoupper(trim($vat_number))); |
|
| 896 | 896 | |
| 897 | - if ( empty( $country_code ) ) { |
|
| 898 | - $country_code = substr( $vat_number, 0, 2 ); |
|
| 897 | + if (empty($country_code)) { |
|
| 898 | + $country_code = substr($vat_number, 0, 2); |
|
| 899 | 899 | } |
| 900 | 900 | |
| 901 | - if ( strpos( $vat_number , $country_code ) === 0 ) { |
|
| 902 | - $vat = str_replace( $country_code, '', $vat_number ); |
|
| 901 | + if (strpos($vat_number, $country_code) === 0) { |
|
| 902 | + $vat = str_replace($country_code, '', $vat_number); |
|
| 903 | 903 | } else { |
| 904 | 904 | $vat = $country_code . $vat_number; |
| 905 | 905 | } |
@@ -912,140 +912,140 @@ discard block |
||
| 912 | 912 | return $return; |
| 913 | 913 | } |
| 914 | 914 | |
| 915 | - public static function offline_check( $vat_number, $country_code = '', $formatted = false ) { |
|
| 916 | - $vat = self::sanitize_vat( $vat_number, $country_code ); |
|
| 915 | + public static function offline_check($vat_number, $country_code = '', $formatted = false) { |
|
| 916 | + $vat = self::sanitize_vat($vat_number, $country_code); |
|
| 917 | 917 | $vat_number = $vat['vat_number']; |
| 918 | 918 | $country_code = $vat['iso']; |
| 919 | 919 | $regex = array(); |
| 920 | 920 | |
| 921 | - switch ( $country_code ) { |
|
| 921 | + switch ($country_code) { |
|
| 922 | 922 | case 'AT': |
| 923 | - $regex[] = '/^(AT)U(\d{8})$/'; // Austria |
|
| 923 | + $regex[] = '/^(AT)U(\d{8})$/'; // Austria |
|
| 924 | 924 | break; |
| 925 | 925 | case 'BE': |
| 926 | - $regex[] = '/^(BE)(0?\d{9})$/'; // Belgium |
|
| 926 | + $regex[] = '/^(BE)(0?\d{9})$/'; // Belgium |
|
| 927 | 927 | break; |
| 928 | 928 | case 'BG': |
| 929 | - $regex[] = '/^(BG)(\d{9,10})$/'; // Bulgaria |
|
| 929 | + $regex[] = '/^(BG)(\d{9,10})$/'; // Bulgaria |
|
| 930 | 930 | break; |
| 931 | 931 | case 'CH': |
| 932 | 932 | case 'CHE': |
| 933 | - $regex[] = '/^(CHE)(\d{9})MWST$/'; // Switzerland (Not EU) |
|
| 933 | + $regex[] = '/^(CHE)(\d{9})MWST$/'; // Switzerland (Not EU) |
|
| 934 | 934 | break; |
| 935 | 935 | case 'CY': |
| 936 | - $regex[] = '/^(CY)([0-5|9]\d{7}[A-Z])$/'; // Cyprus |
|
| 936 | + $regex[] = '/^(CY)([0-5|9]\d{7}[A-Z])$/'; // Cyprus |
|
| 937 | 937 | break; |
| 938 | 938 | case 'CZ': |
| 939 | - $regex[] = '/^(CZ)(\d{8,13})$/'; // Czech Republic |
|
| 939 | + $regex[] = '/^(CZ)(\d{8,13})$/'; // Czech Republic |
|
| 940 | 940 | break; |
| 941 | 941 | case 'DE': |
| 942 | - $regex[] = '/^(DE)([1-9]\d{8})$/'; // Germany |
|
| 942 | + $regex[] = '/^(DE)([1-9]\d{8})$/'; // Germany |
|
| 943 | 943 | break; |
| 944 | 944 | case 'DK': |
| 945 | - $regex[] = '/^(DK)(\d{8})$/'; // Denmark |
|
| 945 | + $regex[] = '/^(DK)(\d{8})$/'; // Denmark |
|
| 946 | 946 | break; |
| 947 | 947 | case 'EE': |
| 948 | - $regex[] = '/^(EE)(10\d{7})$/'; // Estonia |
|
| 948 | + $regex[] = '/^(EE)(10\d{7})$/'; // Estonia |
|
| 949 | 949 | break; |
| 950 | 950 | case 'EL': |
| 951 | - $regex[] = '/^(EL)(\d{9})$/'; // Greece |
|
| 951 | + $regex[] = '/^(EL)(\d{9})$/'; // Greece |
|
| 952 | 952 | break; |
| 953 | 953 | case 'ES': |
| 954 | - $regex[] = '/^(ES)([A-Z]\d{8})$/'; // Spain (National juridical entities) |
|
| 955 | - $regex[] = '/^(ES)([A-H|N-S|W]\d{7}[A-J])$/'; // Spain (Other juridical entities) |
|
| 956 | - $regex[] = '/^(ES)([0-9|Y|Z]\d{7}[A-Z])$/'; // Spain (Personal entities type 1) |
|
| 957 | - $regex[] = '/^(ES)([K|L|M|X]\d{7}[A-Z])$/'; // Spain (Personal entities type 2) |
|
| 954 | + $regex[] = '/^(ES)([A-Z]\d{8})$/'; // Spain (National juridical entities) |
|
| 955 | + $regex[] = '/^(ES)([A-H|N-S|W]\d{7}[A-J])$/'; // Spain (Other juridical entities) |
|
| 956 | + $regex[] = '/^(ES)([0-9|Y|Z]\d{7}[A-Z])$/'; // Spain (Personal entities type 1) |
|
| 957 | + $regex[] = '/^(ES)([K|L|M|X]\d{7}[A-Z])$/'; // Spain (Personal entities type 2) |
|
| 958 | 958 | break; |
| 959 | 959 | case 'EU': |
| 960 | - $regex[] = '/^(EU)(\d{9})$/'; // EU-type |
|
| 960 | + $regex[] = '/^(EU)(\d{9})$/'; // EU-type |
|
| 961 | 961 | break; |
| 962 | 962 | case 'FI': |
| 963 | - $regex[] = '/^(FI)(\d{8})$/'; // Finland |
|
| 963 | + $regex[] = '/^(FI)(\d{8})$/'; // Finland |
|
| 964 | 964 | break; |
| 965 | 965 | case 'FR': |
| 966 | - $regex[] = '/^(FR)(\d{11})$/'; // France (1) |
|
| 967 | - $regex[] = '/^(FR)[(A-H)|(J-N)|(P-Z)](\d{10})$/'; // France (2) |
|
| 968 | - $regex[] = '/^(FR)\d[(A-H)|(J-N)|(P-Z)](\d{9})$/'; // France (3) |
|
| 969 | - $regex[] = '/^(FR)[(A-H)|(J-N)|(P-Z)]{2}(\d{9})$/'; // France (4) |
|
| 966 | + $regex[] = '/^(FR)(\d{11})$/'; // France (1) |
|
| 967 | + $regex[] = '/^(FR)[(A-H)|(J-N)|(P-Z)](\d{10})$/'; // France (2) |
|
| 968 | + $regex[] = '/^(FR)\d[(A-H)|(J-N)|(P-Z)](\d{9})$/'; // France (3) |
|
| 969 | + $regex[] = '/^(FR)[(A-H)|(J-N)|(P-Z)]{2}(\d{9})$/'; // France (4) |
|
| 970 | 970 | break; |
| 971 | 971 | case 'GB': |
| 972 | - $regex[] = '/^(GB)?(\d{9})$/'; // UK (Standard) |
|
| 973 | - $regex[] = '/^(GB)?(\d{12})$/'; // UK (Branches) |
|
| 974 | - $regex[] = '/^(GB)?(GD\d{3})$/'; // UK (Government) |
|
| 975 | - $regex[] = '/^(GB)?(HA\d{3})$/'; // UK (Health authority) |
|
| 972 | + $regex[] = '/^(GB)?(\d{9})$/'; // UK (Standard) |
|
| 973 | + $regex[] = '/^(GB)?(\d{12})$/'; // UK (Branches) |
|
| 974 | + $regex[] = '/^(GB)?(GD\d{3})$/'; // UK (Government) |
|
| 975 | + $regex[] = '/^(GB)?(HA\d{3})$/'; // UK (Health authority) |
|
| 976 | 976 | break; |
| 977 | 977 | case 'GR': |
| 978 | - $regex[] = '/^(GR)(\d{8,9})$/'; // Greece |
|
| 978 | + $regex[] = '/^(GR)(\d{8,9})$/'; // Greece |
|
| 979 | 979 | break; |
| 980 | 980 | case 'HR': |
| 981 | - $regex[] = '/^(HR)(\d{11})$/'; // Croatia |
|
| 981 | + $regex[] = '/^(HR)(\d{11})$/'; // Croatia |
|
| 982 | 982 | break; |
| 983 | 983 | case 'HU': |
| 984 | - $regex[] = '/^(HU)(\d{8})$/'; // Hungary |
|
| 984 | + $regex[] = '/^(HU)(\d{8})$/'; // Hungary |
|
| 985 | 985 | break; |
| 986 | 986 | case 'IE': |
| 987 | - $regex[] = '/^(IE)(\d{7}[A-W])$/'; // Ireland (1) |
|
| 988 | - $regex[] = '/^(IE)([7-9][A-Z\*\+)]\d{5}[A-W])$/'; // Ireland (2) |
|
| 989 | - $regex[] = '/^(IE)(\d{7}[A-Z][AH])$/'; // Ireland (3) (new format from 1 Jan 2013) |
|
| 987 | + $regex[] = '/^(IE)(\d{7}[A-W])$/'; // Ireland (1) |
|
| 988 | + $regex[] = '/^(IE)([7-9][A-Z\*\+)]\d{5}[A-W])$/'; // Ireland (2) |
|
| 989 | + $regex[] = '/^(IE)(\d{7}[A-Z][AH])$/'; // Ireland (3) (new format from 1 Jan 2013) |
|
| 990 | 990 | break; |
| 991 | 991 | case 'IT': |
| 992 | - $regex[] = '/^(IT)(\d{11})$/'; // Italy |
|
| 992 | + $regex[] = '/^(IT)(\d{11})$/'; // Italy |
|
| 993 | 993 | break; |
| 994 | 994 | case 'LV': |
| 995 | - $regex[] = '/^(LV)(\d{11})$/'; // Latvia |
|
| 995 | + $regex[] = '/^(LV)(\d{11})$/'; // Latvia |
|
| 996 | 996 | break; |
| 997 | 997 | case 'LT': |
| 998 | - $regex[] = '/^(LT)(\d{9}|\d{12})$/'; // Lithuania |
|
| 998 | + $regex[] = '/^(LT)(\d{9}|\d{12})$/'; // Lithuania |
|
| 999 | 999 | break; |
| 1000 | 1000 | case 'LU': |
| 1001 | - $regex[] = '/^(LU)(\d{8})$/'; // Luxembourg |
|
| 1001 | + $regex[] = '/^(LU)(\d{8})$/'; // Luxembourg |
|
| 1002 | 1002 | break; |
| 1003 | 1003 | case 'MT': |
| 1004 | - $regex[] = '/^(MT)([1-9]\d{7})$/'; // Malta |
|
| 1004 | + $regex[] = '/^(MT)([1-9]\d{7})$/'; // Malta |
|
| 1005 | 1005 | break; |
| 1006 | 1006 | case 'NL': |
| 1007 | - $regex[] = '/^(NL)(\d{9})B\d{2}$/'; // Netherlands |
|
| 1007 | + $regex[] = '/^(NL)(\d{9})B\d{2}$/'; // Netherlands |
|
| 1008 | 1008 | break; |
| 1009 | 1009 | case 'NO': |
| 1010 | - $regex[] = '/^(NO)(\d{9})$/'; // Norway (Not EU) |
|
| 1010 | + $regex[] = '/^(NO)(\d{9})$/'; // Norway (Not EU) |
|
| 1011 | 1011 | break; |
| 1012 | 1012 | case 'PL': |
| 1013 | - $regex[] = '/^(PL)(\d{10})$/'; // Poland |
|
| 1013 | + $regex[] = '/^(PL)(\d{10})$/'; // Poland |
|
| 1014 | 1014 | break; |
| 1015 | 1015 | case 'PT': |
| 1016 | - $regex[] = '/^(PT)(\d{9})$/'; // Portugal |
|
| 1016 | + $regex[] = '/^(PT)(\d{9})$/'; // Portugal |
|
| 1017 | 1017 | break; |
| 1018 | 1018 | case 'RO': |
| 1019 | - $regex[] = '/^(RO)([1-9]\d{1,9})$/'; // Romania |
|
| 1019 | + $regex[] = '/^(RO)([1-9]\d{1,9})$/'; // Romania |
|
| 1020 | 1020 | break; |
| 1021 | 1021 | case 'RS': |
| 1022 | - $regex[] = '/^(RS)(\d{9})$/'; // Serbia (Not EU) |
|
| 1022 | + $regex[] = '/^(RS)(\d{9})$/'; // Serbia (Not EU) |
|
| 1023 | 1023 | break; |
| 1024 | 1024 | case 'SI': |
| 1025 | - $regex[] = '/^(SI)([1-9]\d{7})$/'; // Slovenia |
|
| 1025 | + $regex[] = '/^(SI)([1-9]\d{7})$/'; // Slovenia |
|
| 1026 | 1026 | break; |
| 1027 | 1027 | case 'SK': |
| 1028 | - $regex[] = '/^(SK)([1-9]\d[(2-4)|(6-9)]\d{7})$/'; // Slovakia Republic |
|
| 1028 | + $regex[] = '/^(SK)([1-9]\d[(2-4)|(6-9)]\d{7})$/'; // Slovakia Republic |
|
| 1029 | 1029 | break; |
| 1030 | 1030 | case 'SE': |
| 1031 | - $regex[] = '/^(SE)(\d{10}01)$/'; // Sweden |
|
| 1031 | + $regex[] = '/^(SE)(\d{10}01)$/'; // Sweden |
|
| 1032 | 1032 | break; |
| 1033 | 1033 | default: |
| 1034 | 1034 | $regex = array(); |
| 1035 | 1035 | break; |
| 1036 | 1036 | } |
| 1037 | 1037 | |
| 1038 | - if ( empty( $regex ) ) { |
|
| 1038 | + if (empty($regex)) { |
|
| 1039 | 1039 | return false; |
| 1040 | 1040 | } |
| 1041 | 1041 | |
| 1042 | - foreach ( $regex as $pattern ) { |
|
| 1042 | + foreach ($regex as $pattern) { |
|
| 1043 | 1043 | $matches = null; |
| 1044 | - preg_match_all( $pattern, $vat_number, $matches ); |
|
| 1044 | + preg_match_all($pattern, $vat_number, $matches); |
|
| 1045 | 1045 | |
| 1046 | - if ( !empty( $matches[1][0] ) && !empty( $matches[2][0] ) ) { |
|
| 1047 | - if ( $formatted ) { |
|
| 1048 | - return array( 'code' => $matches[1][0], 'number' => $matches[2][0] ); |
|
| 1046 | + if (!empty($matches[1][0]) && !empty($matches[2][0])) { |
|
| 1047 | + if ($formatted) { |
|
| 1048 | + return array('code' => $matches[1][0], 'number' => $matches[2][0]); |
|
| 1049 | 1049 | } else { |
| 1050 | 1050 | return true; |
| 1051 | 1051 | } |
@@ -1055,75 +1055,75 @@ discard block |
||
| 1055 | 1055 | return false; |
| 1056 | 1056 | } |
| 1057 | 1057 | |
| 1058 | - public static function vies_check( $vat_number, $country_code = '', $result = false ) { |
|
| 1059 | - $vat = self::sanitize_vat( $vat_number, $country_code ); |
|
| 1058 | + public static function vies_check($vat_number, $country_code = '', $result = false) { |
|
| 1059 | + $vat = self::sanitize_vat($vat_number, $country_code); |
|
| 1060 | 1060 | $vat_number = $vat['vat']; |
| 1061 | 1061 | $iso = $vat['iso']; |
| 1062 | 1062 | |
| 1063 | - $url = 'http://ec.europa.eu/taxation_customs/vies/viesquer.do?ms=' . urlencode( $iso ) . '&iso=' . urlencode( $iso ) . '&vat=' . urlencode( $vat_number ); |
|
| 1063 | + $url = 'http://ec.europa.eu/taxation_customs/vies/viesquer.do?ms=' . urlencode($iso) . '&iso=' . urlencode($iso) . '&vat=' . urlencode($vat_number); |
|
| 1064 | 1064 | |
| 1065 | - if ( ini_get( 'allow_url_fopen' ) ) { |
|
| 1066 | - $response = file_get_contents( $url ); |
|
| 1067 | - } else if ( function_exists( 'curl_init' ) ) { |
|
| 1065 | + if (ini_get('allow_url_fopen')) { |
|
| 1066 | + $response = file_get_contents($url); |
|
| 1067 | + } else if (function_exists('curl_init')) { |
|
| 1068 | 1068 | $ch = curl_init(); |
| 1069 | 1069 | |
| 1070 | - curl_setopt( $ch, CURLOPT_URL, $url ); |
|
| 1071 | - curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT, 30 ); |
|
| 1072 | - curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true ); |
|
| 1073 | - curl_setopt( $ch, CURLOPT_SSL_VERIFYHOST, 0 ); |
|
| 1074 | - curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, 0 ); |
|
| 1070 | + curl_setopt($ch, CURLOPT_URL, $url); |
|
| 1071 | + curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30); |
|
| 1072 | + curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); |
|
| 1073 | + curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); |
|
| 1074 | + curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); |
|
| 1075 | 1075 | |
| 1076 | - $response = curl_exec( $ch ); |
|
| 1076 | + $response = curl_exec($ch); |
|
| 1077 | 1077 | |
| 1078 | - if ( curl_errno( $ch ) ) { |
|
| 1079 | - wpinv_error_log( curl_error( $ch ), 'VIES CHECK ERROR' ); |
|
| 1078 | + if (curl_errno($ch)) { |
|
| 1079 | + wpinv_error_log(curl_error($ch), 'VIES CHECK ERROR'); |
|
| 1080 | 1080 | $response = ''; |
| 1081 | 1081 | } |
| 1082 | 1082 | |
| 1083 | - curl_close( $ch ); |
|
| 1083 | + curl_close($ch); |
|
| 1084 | 1084 | } else { |
| 1085 | - wpinv_error_log( 'To use VIES CHECK you must have allow_url_fopen is ON or cURL installed & active on your server.', 'VIES CHECK ERROR' ); |
|
| 1085 | + wpinv_error_log('To use VIES CHECK you must have allow_url_fopen is ON or cURL installed & active on your server.', 'VIES CHECK ERROR'); |
|
| 1086 | 1086 | } |
| 1087 | 1087 | |
| 1088 | - if ( empty( $response ) ) { |
|
| 1088 | + if (empty($response)) { |
|
| 1089 | 1089 | return $result; |
| 1090 | 1090 | } |
| 1091 | 1091 | |
| 1092 | - if ( preg_match( '/invalid VAT number/i', $response ) ) { |
|
| 1092 | + if (preg_match('/invalid VAT number/i', $response)) { |
|
| 1093 | 1093 | return false; |
| 1094 | - } else if ( preg_match( '/valid VAT number/i', $response, $matches ) ) { |
|
| 1095 | - $content = explode( "valid VAT number", htmlentities( $response ) ); |
|
| 1094 | + } else if (preg_match('/valid VAT number/i', $response, $matches)) { |
|
| 1095 | + $content = explode("valid VAT number", htmlentities($response)); |
|
| 1096 | 1096 | |
| 1097 | - if ( !empty( $content[1] ) ) { |
|
| 1098 | - preg_match_all( '/<tr>(.*?)<td.*?>(.*?)<\/td>(.*?)<\/tr>/si', html_entity_decode( $content[1] ), $matches ); |
|
| 1097 | + if (!empty($content[1])) { |
|
| 1098 | + preg_match_all('/<tr>(.*?)<td.*?>(.*?)<\/td>(.*?)<\/tr>/si', html_entity_decode($content[1]), $matches); |
|
| 1099 | 1099 | |
| 1100 | - if ( !empty( $matches[2] ) && $matches[3] ) { |
|
| 1100 | + if (!empty($matches[2]) && $matches[3]) { |
|
| 1101 | 1101 | $return = array(); |
| 1102 | 1102 | |
| 1103 | - foreach ( $matches[2] as $key => $label ) { |
|
| 1104 | - $label = trim( $label ); |
|
| 1103 | + foreach ($matches[2] as $key => $label) { |
|
| 1104 | + $label = trim($label); |
|
| 1105 | 1105 | |
| 1106 | - switch ( strtolower( $label ) ) { |
|
| 1106 | + switch (strtolower($label)) { |
|
| 1107 | 1107 | case 'member state': |
| 1108 | - $return['state'] = trim( strip_tags( $matches[3][$key] ) ); |
|
| 1108 | + $return['state'] = trim(strip_tags($matches[3][$key])); |
|
| 1109 | 1109 | break; |
| 1110 | 1110 | case 'vat number': |
| 1111 | - $return['number'] = trim( strip_tags( $matches[3][$key] ) ); |
|
| 1111 | + $return['number'] = trim(strip_tags($matches[3][$key])); |
|
| 1112 | 1112 | break; |
| 1113 | 1113 | case 'name': |
| 1114 | - $return['company'] = trim( strip_tags( $matches[3][$key] ) ); |
|
| 1114 | + $return['company'] = trim(strip_tags($matches[3][$key])); |
|
| 1115 | 1115 | break; |
| 1116 | 1116 | case 'address': |
| 1117 | - $address = str_replace( array( "<br><br>", "<br /><br />", "<br/><br/>" ), "<br>", html_entity_decode( trim( $matches[3][$key] ) ) ); |
|
| 1118 | - $return['address'] = trim( strip_tags( $address, '<br>' ) ); |
|
| 1117 | + $address = str_replace(array("<br><br>", "<br /><br />", "<br/><br/>"), "<br>", html_entity_decode(trim($matches[3][$key]))); |
|
| 1118 | + $return['address'] = trim(strip_tags($address, '<br>')); |
|
| 1119 | 1119 | break; |
| 1120 | 1120 | case 'consultation number': |
| 1121 | - $return['consultation'] = trim( strip_tags( $matches[3][$key] ) ); |
|
| 1121 | + $return['consultation'] = trim(strip_tags($matches[3][$key])); |
|
| 1122 | 1122 | break; |
| 1123 | 1123 | } |
| 1124 | 1124 | } |
| 1125 | 1125 | |
| 1126 | - if ( !empty( $return ) ) { |
|
| 1126 | + if (!empty($return)) { |
|
| 1127 | 1127 | return $return; |
| 1128 | 1128 | } |
| 1129 | 1129 | } |
@@ -1135,63 +1135,63 @@ discard block |
||
| 1135 | 1135 | } |
| 1136 | 1136 | } |
| 1137 | 1137 | |
| 1138 | - public static function check_vat( $vat_number, $country_code = '' ) { |
|
| 1138 | + public static function check_vat($vat_number, $country_code = '') { |
|
| 1139 | 1139 | $vat_name = self::get_vat_name(); |
| 1140 | 1140 | |
| 1141 | 1141 | $return = array(); |
| 1142 | 1142 | $return['valid'] = false; |
| 1143 | - $return['message'] = wp_sprintf( __( '%s number not validated', 'invoicing' ), $vat_name ); |
|
| 1143 | + $return['message'] = wp_sprintf(__('%s number not validated', 'invoicing'), $vat_name); |
|
| 1144 | 1144 | |
| 1145 | - if ( !wpinv_get_option( 'vat_offline_check' ) && !self::offline_check( $vat_number, $country_code ) ) { |
|
| 1145 | + if (!wpinv_get_option('vat_offline_check') && !self::offline_check($vat_number, $country_code)) { |
|
| 1146 | 1146 | return $return; |
| 1147 | 1147 | } |
| 1148 | 1148 | |
| 1149 | - $response = self::vies_check( $vat_number, $country_code ); |
|
| 1149 | + $response = self::vies_check($vat_number, $country_code); |
|
| 1150 | 1150 | |
| 1151 | - if ( $response ) { |
|
| 1152 | - $return['valid'] = true; |
|
| 1151 | + if ($response) { |
|
| 1152 | + $return['valid'] = true; |
|
| 1153 | 1153 | |
| 1154 | - if ( is_array( $response ) ) { |
|
| 1155 | - $return['company'] = isset( $response['company'] ) ? $response['company'] : ''; |
|
| 1156 | - $return['address'] = isset( $response['address'] ) ? $response['address'] : ''; |
|
| 1154 | + if (is_array($response)) { |
|
| 1155 | + $return['company'] = isset($response['company']) ? $response['company'] : ''; |
|
| 1156 | + $return['address'] = isset($response['address']) ? $response['address'] : ''; |
|
| 1157 | 1157 | $return['message'] = $return['company'] . '<br/>' . $return['address']; |
| 1158 | 1158 | } |
| 1159 | 1159 | } else { |
| 1160 | 1160 | $return['valid'] = false; |
| 1161 | - $return['message'] = wp_sprintf( __( 'Fail to validate the %s number: EU Commission VAT server (VIES) check fails.', 'invoicing' ), $vat_name ); |
|
| 1161 | + $return['message'] = wp_sprintf(__('Fail to validate the %s number: EU Commission VAT server (VIES) check fails.', 'invoicing'), $vat_name); |
|
| 1162 | 1162 | } |
| 1163 | 1163 | |
| 1164 | 1164 | return $return; |
| 1165 | 1165 | } |
| 1166 | 1166 | |
| 1167 | - public static function request_euvatrates( $group ) { |
|
| 1167 | + public static function request_euvatrates($group) { |
|
| 1168 | 1168 | $response = array(); |
| 1169 | 1169 | $response['success'] = false; |
| 1170 | 1170 | $response['error'] = null; |
| 1171 | 1171 | $response['eurates'] = null; |
| 1172 | 1172 | |
| 1173 | 1173 | $euvatrates_url = 'https://euvatrates.com/rates.json'; |
| 1174 | - $euvatrates_url = apply_filters( 'wpinv_euvatrates_url', $euvatrates_url ); |
|
| 1175 | - $api_response = wp_remote_get( $euvatrates_url ); |
|
| 1174 | + $euvatrates_url = apply_filters('wpinv_euvatrates_url', $euvatrates_url); |
|
| 1175 | + $api_response = wp_remote_get($euvatrates_url); |
|
| 1176 | 1176 | |
| 1177 | 1177 | try { |
| 1178 | - if ( is_wp_error( $api_response ) ) { |
|
| 1179 | - $response['error'] = __( $api_response->get_error_message(), 'invoicing' ); |
|
| 1178 | + if (is_wp_error($api_response)) { |
|
| 1179 | + $response['error'] = __($api_response->get_error_message(), 'invoicing'); |
|
| 1180 | 1180 | } else { |
| 1181 | - $body = json_decode( $api_response['body'] ); |
|
| 1181 | + $body = json_decode($api_response['body']); |
|
| 1182 | 1182 | |
| 1183 | - if ( isset( $body->rates ) ) { |
|
| 1183 | + if (isset($body->rates)) { |
|
| 1184 | 1184 | $rates = array(); |
| 1185 | 1185 | |
| 1186 | - foreach ( $body->rates as $country_code => $rate ) { |
|
| 1186 | + foreach ($body->rates as $country_code => $rate) { |
|
| 1187 | 1187 | $vat_rate = array(); |
| 1188 | 1188 | $vat_rate['country'] = $rate->country; |
| 1189 | - $vat_rate['standard'] = (float)$rate->standard_rate; |
|
| 1190 | - $vat_rate['reduced'] = (float)$rate->reduced_rate; |
|
| 1191 | - $vat_rate['superreduced'] = (float)$rate->super_reduced_rate; |
|
| 1192 | - $vat_rate['parking'] = (float)$rate->parking_rate; |
|
| 1189 | + $vat_rate['standard'] = (float) $rate->standard_rate; |
|
| 1190 | + $vat_rate['reduced'] = (float) $rate->reduced_rate; |
|
| 1191 | + $vat_rate['superreduced'] = (float) $rate->super_reduced_rate; |
|
| 1192 | + $vat_rate['parking'] = (float) $rate->parking_rate; |
|
| 1193 | 1193 | |
| 1194 | - if ( $group !== '' && in_array( $group, array( 'standard', 'reduced', 'superreduced', 'parking' ) ) ) { |
|
| 1194 | + if ($group !== '' && in_array($group, array('standard', 'reduced', 'superreduced', 'parking'))) { |
|
| 1195 | 1195 | $vat_rate_group = array(); |
| 1196 | 1196 | $vat_rate_group['country'] = $rate->country; |
| 1197 | 1197 | $vat_rate_group[$group] = $vat_rate[$group]; |
@@ -1203,79 +1203,79 @@ discard block |
||
| 1203 | 1203 | } |
| 1204 | 1204 | |
| 1205 | 1205 | $response['success'] = true; |
| 1206 | - $response['rates'] = apply_filters( 'wpinv_process_euvatrates', $rates, $api_response, $group ); |
|
| 1206 | + $response['rates'] = apply_filters('wpinv_process_euvatrates', $rates, $api_response, $group); |
|
| 1207 | 1207 | } else { |
| 1208 | - $response['error'] = __( 'No EU rates found!', 'invoicing' ); |
|
| 1208 | + $response['error'] = __('No EU rates found!', 'invoicing'); |
|
| 1209 | 1209 | } |
| 1210 | 1210 | } |
| 1211 | - } catch ( Exception $e ) { |
|
| 1212 | - $response['error'] = __( $e->getMessage(), 'invoicing' ); |
|
| 1211 | + } catch (Exception $e) { |
|
| 1212 | + $response['error'] = __($e->getMessage(), 'invoicing'); |
|
| 1213 | 1213 | } |
| 1214 | 1214 | |
| 1215 | - return apply_filters( 'wpinv_response_euvatrates', $response, $group ); |
|
| 1215 | + return apply_filters('wpinv_response_euvatrates', $response, $group); |
|
| 1216 | 1216 | } |
| 1217 | 1217 | |
| 1218 | - public static function requires_vat( $requires_vat = false, $user_id = 0, $is_digital = null ) { |
|
| 1218 | + public static function requires_vat($requires_vat = false, $user_id = 0, $is_digital = null) { |
|
| 1219 | 1219 | global $wpi_item_id, $wpi_country; |
| 1220 | 1220 | |
| 1221 | - if ( !empty( $_POST['wpinv_country'] ) ) { |
|
| 1222 | - $country_code = trim( $_POST['wpinv_country'] ); |
|
| 1223 | - } else if ( !empty( $_POST['country'] ) ) { |
|
| 1224 | - $country_code = trim( $_POST['country'] ); |
|
| 1225 | - } else if ( !empty( $wpi_country ) ) { |
|
| 1221 | + if (!empty($_POST['wpinv_country'])) { |
|
| 1222 | + $country_code = trim($_POST['wpinv_country']); |
|
| 1223 | + } else if (!empty($_POST['country'])) { |
|
| 1224 | + $country_code = trim($_POST['country']); |
|
| 1225 | + } else if (!empty($wpi_country)) { |
|
| 1226 | 1226 | $country_code = $wpi_country; |
| 1227 | 1227 | } else { |
| 1228 | - $country_code = self::get_user_country( '', $user_id ); |
|
| 1228 | + $country_code = self::get_user_country('', $user_id); |
|
| 1229 | 1229 | } |
| 1230 | 1230 | |
| 1231 | - if ( $is_digital === null && $wpi_item_id ) { |
|
| 1232 | - $is_digital = $wpi_item_id ? self::item_has_digital_rule( $wpi_item_id ) : self::allow_vat_rules(); |
|
| 1231 | + if ($is_digital === null && $wpi_item_id) { |
|
| 1232 | + $is_digital = $wpi_item_id ? self::item_has_digital_rule($wpi_item_id) : self::allow_vat_rules(); |
|
| 1233 | 1233 | } |
| 1234 | 1234 | |
| 1235 | - if ( !empty( $country_code ) ) { |
|
| 1236 | - $requires_vat = ( self::is_eu_state( $country_code ) && ( self::is_eu_state( self::$default_country ) || $is_digital ) ) || ( self::is_gst_country( $country_code ) && self::is_gst_country( self::$default_country ) ); |
|
| 1235 | + if (!empty($country_code)) { |
|
| 1236 | + $requires_vat = (self::is_eu_state($country_code) && (self::is_eu_state(self::$default_country) || $is_digital)) || (self::is_gst_country($country_code) && self::is_gst_country(self::$default_country)); |
|
| 1237 | 1237 | } |
| 1238 | 1238 | |
| 1239 | - return apply_filters( 'wpinv_requires_vat', $requires_vat, $user_id ); |
|
| 1239 | + return apply_filters('wpinv_requires_vat', $requires_vat, $user_id); |
|
| 1240 | 1240 | } |
| 1241 | 1241 | |
| 1242 | - public static function tax_label( $label = '' ) { |
|
| 1242 | + public static function tax_label($label = '') { |
|
| 1243 | 1243 | global $wpi_requires_vat; |
| 1244 | 1244 | |
| 1245 | - if ( !( $wpi_requires_vat !== 0 && $wpi_requires_vat ) ) { |
|
| 1246 | - $wpi_requires_vat = self::requires_vat( 0, false ); |
|
| 1245 | + if (!($wpi_requires_vat !== 0 && $wpi_requires_vat)) { |
|
| 1246 | + $wpi_requires_vat = self::requires_vat(0, false); |
|
| 1247 | 1247 | } |
| 1248 | 1248 | |
| 1249 | - return $wpi_requires_vat ? __( self::get_vat_name(), 'invoicing' ) : ( $label ? $label : __( 'Tax', 'invoicing' ) ); |
|
| 1249 | + return $wpi_requires_vat ? __(self::get_vat_name(), 'invoicing') : ($label ? $label : __('Tax', 'invoicing')); |
|
| 1250 | 1250 | } |
| 1251 | 1251 | |
| 1252 | 1252 | public static function standard_rates_label() { |
| 1253 | - return __( 'Standard Rates', 'invoicing' ); |
|
| 1253 | + return __('Standard Rates', 'invoicing'); |
|
| 1254 | 1254 | } |
| 1255 | 1255 | |
| 1256 | - public static function get_rate_classes( $with_desc = false ) { |
|
| 1257 | - $rate_classes_option = get_option( '_wpinv_vat_rate_classes', true ); |
|
| 1258 | - $classes = maybe_unserialize( $rate_classes_option ); |
|
| 1256 | + public static function get_rate_classes($with_desc = false) { |
|
| 1257 | + $rate_classes_option = get_option('_wpinv_vat_rate_classes', true); |
|
| 1258 | + $classes = maybe_unserialize($rate_classes_option); |
|
| 1259 | 1259 | |
| 1260 | - if ( empty( $classes ) || !is_array( $classes ) ) { |
|
| 1260 | + if (empty($classes) || !is_array($classes)) { |
|
| 1261 | 1261 | $classes = array(); |
| 1262 | 1262 | } |
| 1263 | 1263 | |
| 1264 | 1264 | $rate_classes = array(); |
| 1265 | - if ( !array_key_exists( '_standard', $classes ) ) { |
|
| 1266 | - if ( $with_desc ) { |
|
| 1267 | - $rate_classes['_standard'] = array( 'name' => self::standard_rates_label(), 'desc' => __( 'EU member states standard VAT rates', 'invoicing' ) ); |
|
| 1265 | + if (!array_key_exists('_standard', $classes)) { |
|
| 1266 | + if ($with_desc) { |
|
| 1267 | + $rate_classes['_standard'] = array('name' => self::standard_rates_label(), 'desc' => __('EU member states standard VAT rates', 'invoicing')); |
|
| 1268 | 1268 | } else { |
| 1269 | 1269 | $rate_classes['_standard'] = self::standard_rates_label(); |
| 1270 | 1270 | } |
| 1271 | 1271 | } |
| 1272 | 1272 | |
| 1273 | - foreach ( $classes as $key => $class ) { |
|
| 1274 | - $name = !empty( $class['name'] ) ? __( $class['name'], 'invoicing' ) : $key; |
|
| 1275 | - $desc = !empty( $class['desc'] ) ? __( $class['desc'], 'invoicing' ) : ''; |
|
| 1273 | + foreach ($classes as $key => $class) { |
|
| 1274 | + $name = !empty($class['name']) ? __($class['name'], 'invoicing') : $key; |
|
| 1275 | + $desc = !empty($class['desc']) ? __($class['desc'], 'invoicing') : ''; |
|
| 1276 | 1276 | |
| 1277 | - if ( $with_desc ) { |
|
| 1278 | - $rate_classes[$key] = array( 'name' => $name, 'desc' => $desc ); |
|
| 1277 | + if ($with_desc) { |
|
| 1278 | + $rate_classes[$key] = array('name' => $name, 'desc' => $desc); |
|
| 1279 | 1279 | } else { |
| 1280 | 1280 | $rate_classes[$key] = $name; |
| 1281 | 1281 | } |
@@ -1286,15 +1286,15 @@ discard block |
||
| 1286 | 1286 | |
| 1287 | 1287 | public static function get_all_classes() { |
| 1288 | 1288 | $classes = self::get_rate_classes(); |
| 1289 | - $classes['_exempt'] = __( 'Exempt (0%)', 'invoicing' ); |
|
| 1289 | + $classes['_exempt'] = __('Exempt (0%)', 'invoicing'); |
|
| 1290 | 1290 | |
| 1291 | - return apply_filters( 'wpinv_vat_get_all_classes', $classes ); |
|
| 1291 | + return apply_filters('wpinv_vat_get_all_classes', $classes); |
|
| 1292 | 1292 | } |
| 1293 | 1293 | |
| 1294 | - public static function get_class_desc( $rate_class ) { |
|
| 1295 | - $rate_classes = self::get_rate_classes( true ); |
|
| 1294 | + public static function get_class_desc($rate_class) { |
|
| 1295 | + $rate_classes = self::get_rate_classes(true); |
|
| 1296 | 1296 | |
| 1297 | - if ( !empty( $rate_classes ) && isset( $rate_classes[$rate_class] ) && isset( $rate_classes[$rate_class]['desc'] ) ) { |
|
| 1297 | + if (!empty($rate_classes) && isset($rate_classes[$rate_class]) && isset($rate_classes[$rate_class]['desc'])) { |
|
| 1298 | 1298 | return $rate_classes[$rate_class]['desc']; |
| 1299 | 1299 | } |
| 1300 | 1300 | |
@@ -1310,106 +1310,106 @@ discard block |
||
| 1310 | 1310 | 'increased' => 'Increased' |
| 1311 | 1311 | ); |
| 1312 | 1312 | |
| 1313 | - return apply_filters( 'wpinv_get_vat_groups', $vat_groups ); |
|
| 1313 | + return apply_filters('wpinv_get_vat_groups', $vat_groups); |
|
| 1314 | 1314 | } |
| 1315 | 1315 | |
| 1316 | 1316 | public static function get_rules() { |
| 1317 | 1317 | $vat_rules = array( |
| 1318 | - 'digital' => __( 'Digital Product', 'invoicing' ), |
|
| 1319 | - 'physical' => __( 'Physical Product', 'invoicing' ) |
|
| 1318 | + 'digital' => __('Digital Product', 'invoicing'), |
|
| 1319 | + 'physical' => __('Physical Product', 'invoicing') |
|
| 1320 | 1320 | ); |
| 1321 | - return apply_filters( 'wpinv_get_vat_rules', $vat_rules ); |
|
| 1321 | + return apply_filters('wpinv_get_vat_rules', $vat_rules); |
|
| 1322 | 1322 | } |
| 1323 | 1323 | |
| 1324 | - public static function get_vat_rates( $class ) { |
|
| 1325 | - if ( $class === '_standard' ) { |
|
| 1324 | + public static function get_vat_rates($class) { |
|
| 1325 | + if ($class === '_standard') { |
|
| 1326 | 1326 | return wpinv_get_tax_rates(); |
| 1327 | 1327 | } |
| 1328 | 1328 | |
| 1329 | 1329 | $rates = self::get_non_standard_rates(); |
| 1330 | 1330 | |
| 1331 | - return array_key_exists( $class, $rates ) ? $rates[$class] : array(); |
|
| 1331 | + return array_key_exists($class, $rates) ? $rates[$class] : array(); |
|
| 1332 | 1332 | } |
| 1333 | 1333 | |
| 1334 | 1334 | public static function get_non_standard_rates() { |
| 1335 | - $option = get_option( 'wpinv_vat_rates', array()); |
|
| 1336 | - return is_array( $option ) ? $option : array(); |
|
| 1335 | + $option = get_option('wpinv_vat_rates', array()); |
|
| 1336 | + return is_array($option) ? $option : array(); |
|
| 1337 | 1337 | } |
| 1338 | 1338 | |
| 1339 | 1339 | public static function allow_vat_rules() { |
| 1340 | - return ( wpinv_use_taxes() && wpinv_get_option( 'apply_vat_rules' ) ? true : false ); |
|
| 1340 | + return (wpinv_use_taxes() && wpinv_get_option('apply_vat_rules') ? true : false); |
|
| 1341 | 1341 | } |
| 1342 | 1342 | |
| 1343 | 1343 | public static function allow_vat_classes() { |
| 1344 | 1344 | return false; // TODO |
| 1345 | - return ( wpinv_get_option( 'vat_allow_classes' ) ? true : false ); |
|
| 1345 | + return (wpinv_get_option('vat_allow_classes') ? true : false); |
|
| 1346 | 1346 | } |
| 1347 | 1347 | |
| 1348 | - public static function get_item_class( $postID ) { |
|
| 1349 | - $class = get_post_meta( $postID, '_wpinv_vat_class', true ); |
|
| 1348 | + public static function get_item_class($postID) { |
|
| 1349 | + $class = get_post_meta($postID, '_wpinv_vat_class', true); |
|
| 1350 | 1350 | |
| 1351 | - if ( empty( $class ) ) { |
|
| 1351 | + if (empty($class)) { |
|
| 1352 | 1352 | $class = '_standard'; |
| 1353 | 1353 | } |
| 1354 | 1354 | |
| 1355 | - return apply_filters( 'wpinv_get_item_vat_class', $class, $postID ); |
|
| 1355 | + return apply_filters('wpinv_get_item_vat_class', $class, $postID); |
|
| 1356 | 1356 | } |
| 1357 | 1357 | |
| 1358 | - public static function item_class_label( $postID ) { |
|
| 1358 | + public static function item_class_label($postID) { |
|
| 1359 | 1359 | $vat_classes = self::get_all_classes(); |
| 1360 | 1360 | |
| 1361 | - $class = self::get_item_class( $postID ); |
|
| 1362 | - $class = isset( $vat_classes[$class] ) ? $vat_classes[$class] : __( $class, 'invoicing' ); |
|
| 1361 | + $class = self::get_item_class($postID); |
|
| 1362 | + $class = isset($vat_classes[$class]) ? $vat_classes[$class] : __($class, 'invoicing'); |
|
| 1363 | 1363 | |
| 1364 | - return apply_filters( 'wpinv_item_class_label', $class, $postID ); |
|
| 1364 | + return apply_filters('wpinv_item_class_label', $class, $postID); |
|
| 1365 | 1365 | } |
| 1366 | 1366 | |
| 1367 | - public static function get_item_rule( $postID ) { |
|
| 1368 | - $rule_type = get_post_meta( $postID, '_wpinv_vat_rule', true ); |
|
| 1367 | + public static function get_item_rule($postID) { |
|
| 1368 | + $rule_type = get_post_meta($postID, '_wpinv_vat_rule', true); |
|
| 1369 | 1369 | |
| 1370 | - if ( empty( $rule_type ) ) { |
|
| 1370 | + if (empty($rule_type)) { |
|
| 1371 | 1371 | $rule_type = self::allow_vat_rules() ? 'digital' : 'physical'; |
| 1372 | 1372 | } |
| 1373 | 1373 | |
| 1374 | - return apply_filters( 'wpinv_item_get_vat_rule', $rule_type, $postID ); |
|
| 1374 | + return apply_filters('wpinv_item_get_vat_rule', $rule_type, $postID); |
|
| 1375 | 1375 | } |
| 1376 | 1376 | |
| 1377 | - public static function item_rule_label( $postID ) { |
|
| 1377 | + public static function item_rule_label($postID) { |
|
| 1378 | 1378 | $vat_rules = self::get_rules(); |
| 1379 | - $vat_rule = self::get_item_rule( $postID ); |
|
| 1380 | - $vat_rule = isset( $vat_rules[$vat_rule] ) ? $vat_rules[$vat_rule] : $vat_rule; |
|
| 1379 | + $vat_rule = self::get_item_rule($postID); |
|
| 1380 | + $vat_rule = isset($vat_rules[$vat_rule]) ? $vat_rules[$vat_rule] : $vat_rule; |
|
| 1381 | 1381 | |
| 1382 | - return apply_filters( 'wpinv_item_rule_label', $vat_rule, $postID ); |
|
| 1382 | + return apply_filters('wpinv_item_rule_label', $vat_rule, $postID); |
|
| 1383 | 1383 | } |
| 1384 | 1384 | |
| 1385 | - public static function item_has_digital_rule( $item_id = 0 ) { |
|
| 1386 | - return self::get_item_rule( $item_id ) == 'digital' ? true : false; |
|
| 1385 | + public static function item_has_digital_rule($item_id = 0) { |
|
| 1386 | + return self::get_item_rule($item_id) == 'digital' ? true : false; |
|
| 1387 | 1387 | } |
| 1388 | 1388 | |
| 1389 | - public static function invoice_has_digital_rule( $invoice = 0 ) { |
|
| 1390 | - if ( !self::allow_vat_rules() ) { |
|
| 1389 | + public static function invoice_has_digital_rule($invoice = 0) { |
|
| 1390 | + if (!self::allow_vat_rules()) { |
|
| 1391 | 1391 | return false; |
| 1392 | 1392 | } |
| 1393 | 1393 | |
| 1394 | - if ( empty( $invoice ) ) { |
|
| 1394 | + if (empty($invoice)) { |
|
| 1395 | 1395 | return true; |
| 1396 | 1396 | } |
| 1397 | 1397 | |
| 1398 | - if ( is_int( $invoice ) ) { |
|
| 1399 | - $invoice = new WPInv_Invoice( $invoice ); |
|
| 1398 | + if (is_int($invoice)) { |
|
| 1399 | + $invoice = new WPInv_Invoice($invoice); |
|
| 1400 | 1400 | } |
| 1401 | 1401 | |
| 1402 | - if ( !( is_object( $invoice ) && is_a( $invoice, 'WPInv_Invoice' ) ) ) { |
|
| 1402 | + if (!(is_object($invoice) && is_a($invoice, 'WPInv_Invoice'))) { |
|
| 1403 | 1403 | return true; |
| 1404 | 1404 | } |
| 1405 | 1405 | |
| 1406 | - $cart_items = $invoice->get_cart_details(); |
|
| 1406 | + $cart_items = $invoice->get_cart_details(); |
|
| 1407 | 1407 | |
| 1408 | - if ( !empty( $cart_items ) ) { |
|
| 1408 | + if (!empty($cart_items)) { |
|
| 1409 | 1409 | $has_digital_rule = false; |
| 1410 | 1410 | |
| 1411 | - foreach ( $cart_items as $key => $item ) { |
|
| 1412 | - if ( self::item_has_digital_rule( $item['id'] ) ) { |
|
| 1411 | + foreach ($cart_items as $key => $item) { |
|
| 1412 | + if (self::item_has_digital_rule($item['id'])) { |
|
| 1413 | 1413 | $has_digital_rule = true; |
| 1414 | 1414 | break; |
| 1415 | 1415 | } |
@@ -1421,67 +1421,67 @@ discard block |
||
| 1421 | 1421 | return $has_digital_rule; |
| 1422 | 1422 | } |
| 1423 | 1423 | |
| 1424 | - public static function item_is_taxable( $item_id = 0, $country = false, $state = false ) { |
|
| 1425 | - if ( !wpinv_use_taxes() ) { |
|
| 1424 | + public static function item_is_taxable($item_id = 0, $country = false, $state = false) { |
|
| 1425 | + if (!wpinv_use_taxes()) { |
|
| 1426 | 1426 | return false; |
| 1427 | 1427 | } |
| 1428 | 1428 | |
| 1429 | 1429 | $is_taxable = true; |
| 1430 | 1430 | |
| 1431 | - if ( !empty( $item_id ) && self::get_item_class( $item_id ) == '_exempt' ) { |
|
| 1431 | + if (!empty($item_id) && self::get_item_class($item_id) == '_exempt') { |
|
| 1432 | 1432 | $is_taxable = false; |
| 1433 | 1433 | } |
| 1434 | 1434 | |
| 1435 | - return apply_filters( 'wpinv_item_is_taxable', $is_taxable, $item_id, $country , $state ); |
|
| 1435 | + return apply_filters('wpinv_item_is_taxable', $is_taxable, $item_id, $country, $state); |
|
| 1436 | 1436 | } |
| 1437 | 1437 | |
| 1438 | - public static function find_rate( $country, $state, $rate, $class ) { |
|
| 1438 | + public static function find_rate($country, $state, $rate, $class) { |
|
| 1439 | 1439 | global $wpi_zero_tax; |
| 1440 | 1440 | |
| 1441 | - if ( $class === '_exempt' || $wpi_zero_tax ) { |
|
| 1441 | + if ($class === '_exempt' || $wpi_zero_tax) { |
|
| 1442 | 1442 | return 0; |
| 1443 | 1443 | } |
| 1444 | 1444 | |
| 1445 | - $tax_rates = wpinv_get_tax_rates(); |
|
| 1445 | + $tax_rates = wpinv_get_tax_rates(); |
|
| 1446 | 1446 | |
| 1447 | - if ( $class !== '_standard' ) { |
|
| 1448 | - $class_rates = self::get_vat_rates( $class ); |
|
| 1447 | + if ($class !== '_standard') { |
|
| 1448 | + $class_rates = self::get_vat_rates($class); |
|
| 1449 | 1449 | |
| 1450 | - if ( is_array( $class_rates ) ) { |
|
| 1450 | + if (is_array($class_rates)) { |
|
| 1451 | 1451 | $indexed_class_rates = array(); |
| 1452 | 1452 | |
| 1453 | - foreach ( $class_rates as $key => $cr ) { |
|
| 1453 | + foreach ($class_rates as $key => $cr) { |
|
| 1454 | 1454 | $indexed_class_rates[$cr['country']] = $cr; |
| 1455 | 1455 | } |
| 1456 | 1456 | |
| 1457 | - $tax_rates = array_map( function( $tr ) use( $indexed_class_rates ) { |
|
| 1457 | + $tax_rates = array_map(function($tr) use($indexed_class_rates) { |
|
| 1458 | 1458 | $tr_country = $tr['country']; |
| 1459 | - if ( !isset( $indexed_class_rates[$tr_country] ) ) { |
|
| 1459 | + if (!isset($indexed_class_rates[$tr_country])) { |
|
| 1460 | 1460 | return $tr; |
| 1461 | 1461 | } |
| 1462 | 1462 | $icr = $indexed_class_rates[$tr_country]; |
| 1463 | - return ( empty( $icr['rate'] ) && $icr['rate'] !== '0' ) ? $tr : $icr; |
|
| 1463 | + return (empty($icr['rate']) && $icr['rate'] !== '0') ? $tr : $icr; |
|
| 1464 | 1464 | |
| 1465 | - }, $tax_rates, $class_rates ); |
|
| 1465 | + }, $tax_rates, $class_rates); |
|
| 1466 | 1466 | } |
| 1467 | 1467 | } |
| 1468 | 1468 | |
| 1469 | - if ( !empty( $tax_rates ) ) { |
|
| 1470 | - foreach ( $tax_rates as $key => $tax_rate ) { |
|
| 1471 | - if ( $country != $tax_rate['country'] ) |
|
| 1469 | + if (!empty($tax_rates)) { |
|
| 1470 | + foreach ($tax_rates as $key => $tax_rate) { |
|
| 1471 | + if ($country != $tax_rate['country']) |
|
| 1472 | 1472 | continue; |
| 1473 | 1473 | |
| 1474 | - if ( !empty( $tax_rate['global'] ) ) { |
|
| 1475 | - if ( 0 !== $tax_rate['rate'] || !empty( $tax_rate['rate'] ) ) { |
|
| 1476 | - $rate = number_format( $tax_rate['rate'], 4 ); |
|
| 1474 | + if (!empty($tax_rate['global'])) { |
|
| 1475 | + if (0 !== $tax_rate['rate'] || !empty($tax_rate['rate'])) { |
|
| 1476 | + $rate = number_format($tax_rate['rate'], 4); |
|
| 1477 | 1477 | } |
| 1478 | 1478 | } else { |
| 1479 | - if ( empty( $tax_rate['state'] ) || strtolower( $state ) != strtolower( $tax_rate['state'] ) ) |
|
| 1479 | + if (empty($tax_rate['state']) || strtolower($state) != strtolower($tax_rate['state'])) |
|
| 1480 | 1480 | continue; |
| 1481 | 1481 | |
| 1482 | 1482 | $state_rate = $tax_rate['rate']; |
| 1483 | - if ( 0 !== $state_rate || !empty( $state_rate ) ) { |
|
| 1484 | - $rate = number_format( $state_rate, 4 ); |
|
| 1483 | + if (0 !== $state_rate || !empty($state_rate)) { |
|
| 1484 | + $rate = number_format($state_rate, 4); |
|
| 1485 | 1485 | } |
| 1486 | 1486 | } |
| 1487 | 1487 | } |
@@ -1490,84 +1490,84 @@ discard block |
||
| 1490 | 1490 | return $rate; |
| 1491 | 1491 | } |
| 1492 | 1492 | |
| 1493 | - public static function get_rate( $rate = 1, $country = '', $state = '', $item_id = 0 ) { |
|
| 1493 | + public static function get_rate($rate = 1, $country = '', $state = '', $item_id = 0) { |
|
| 1494 | 1494 | global $wpinv_options, $wpi_session, $wpi_item_id, $wpi_zero_tax; |
| 1495 | 1495 | |
| 1496 | 1496 | $item_id = $item_id > 0 ? $item_id : $wpi_item_id; |
| 1497 | 1497 | $allow_vat_classes = self::allow_vat_classes(); |
| 1498 | - $class = $item_id ? self::get_item_class( $item_id ) : '_standard'; |
|
| 1498 | + $class = $item_id ? self::get_item_class($item_id) : '_standard'; |
|
| 1499 | 1499 | |
| 1500 | - if ( $class === '_exempt' || $wpi_zero_tax ) { |
|
| 1500 | + if ($class === '_exempt' || $wpi_zero_tax) { |
|
| 1501 | 1501 | return 0; |
| 1502 | - } else if ( !$allow_vat_classes ) { |
|
| 1502 | + } else if (!$allow_vat_classes) { |
|
| 1503 | 1503 | $class = '_standard'; |
| 1504 | 1504 | } |
| 1505 | 1505 | |
| 1506 | - if( !empty( $_POST['wpinv_country'] ) ) { |
|
| 1506 | + if (!empty($_POST['wpinv_country'])) { |
|
| 1507 | 1507 | $post_country = $_POST['wpinv_country']; |
| 1508 | - } elseif( !empty( $_POST['wpinv_country'] ) ) { |
|
| 1508 | + } elseif (!empty($_POST['wpinv_country'])) { |
|
| 1509 | 1509 | $post_country = $_POST['wpinv_country']; |
| 1510 | - } elseif( !empty( $_POST['country'] ) ) { |
|
| 1510 | + } elseif (!empty($_POST['country'])) { |
|
| 1511 | 1511 | $post_country = $_POST['country']; |
| 1512 | 1512 | } else { |
| 1513 | 1513 | $post_country = ''; |
| 1514 | 1514 | } |
| 1515 | 1515 | |
| 1516 | - $country = !empty( $post_country ) ? $post_country : wpinv_default_billing_country( $country ); |
|
| 1517 | - $base_country = wpinv_is_base_country( $country ); |
|
| 1516 | + $country = !empty($post_country) ? $post_country : wpinv_default_billing_country($country); |
|
| 1517 | + $base_country = wpinv_is_base_country($country); |
|
| 1518 | 1518 | |
| 1519 | - $requires_vat = self::requires_vat( 0, false ); |
|
| 1520 | - $is_digital = self::get_item_rule( $item_id ) == 'digital' ; |
|
| 1521 | - $rate = $requires_vat && isset( $wpinv_options['eu_fallback_rate'] ) ? $wpinv_options['eu_fallback_rate'] : $rate; |
|
| 1519 | + $requires_vat = self::requires_vat(0, false); |
|
| 1520 | + $is_digital = self::get_item_rule($item_id) == 'digital'; |
|
| 1521 | + $rate = $requires_vat && isset($wpinv_options['eu_fallback_rate']) ? $wpinv_options['eu_fallback_rate'] : $rate; |
|
| 1522 | 1522 | |
| 1523 | - if ( self::same_country_rule() == 'no' && $base_country ) { // Disable VAT to same country |
|
| 1523 | + if (self::same_country_rule() == 'no' && $base_country) { // Disable VAT to same country |
|
| 1524 | 1524 | $rate = 0; |
| 1525 | - } else if ( $requires_vat ) { |
|
| 1526 | - $vat_number = self::get_user_vat_number( '', 0, true ); |
|
| 1525 | + } else if ($requires_vat) { |
|
| 1526 | + $vat_number = self::get_user_vat_number('', 0, true); |
|
| 1527 | 1527 | $vat_info = self::current_vat_data(); |
| 1528 | 1528 | |
| 1529 | - if ( is_array( $vat_info ) ) { |
|
| 1530 | - $vat_number = isset( $vat_info['number'] ) && !empty( $vat_info['valid'] ) ? $vat_info['number'] : ""; |
|
| 1529 | + if (is_array($vat_info)) { |
|
| 1530 | + $vat_number = isset($vat_info['number']) && !empty($vat_info['valid']) ? $vat_info['number'] : ""; |
|
| 1531 | 1531 | } |
| 1532 | 1532 | |
| 1533 | - if ( $country == 'UK' ) { |
|
| 1533 | + if ($country == 'UK') { |
|
| 1534 | 1534 | $country = 'GB'; |
| 1535 | 1535 | } |
| 1536 | 1536 | |
| 1537 | - if ( !empty( $vat_number ) ) { |
|
| 1537 | + if (!empty($vat_number)) { |
|
| 1538 | 1538 | $rate = 0; |
| 1539 | 1539 | } else { |
| 1540 | - $rate = self::find_rate( $country, $state, $rate, $class ); // Fix if there are no tax rated and you try to pay an invoice it does not add the fallback tax rate |
|
| 1540 | + $rate = self::find_rate($country, $state, $rate, $class); // Fix if there are no tax rated and you try to pay an invoice it does not add the fallback tax rate |
|
| 1541 | 1541 | } |
| 1542 | 1542 | |
| 1543 | - if ( empty( $vat_number ) && !$is_digital ) { |
|
| 1544 | - if ( $base_country ) { |
|
| 1545 | - $rate = self::find_rate( $country, null, $rate, $class ); |
|
| 1543 | + if (empty($vat_number) && !$is_digital) { |
|
| 1544 | + if ($base_country) { |
|
| 1545 | + $rate = self::find_rate($country, null, $rate, $class); |
|
| 1546 | 1546 | } else { |
| 1547 | - if ( empty( $country ) && isset( $wpinv_options['eu_fallback_rate'] ) ) { |
|
| 1547 | + if (empty($country) && isset($wpinv_options['eu_fallback_rate'])) { |
|
| 1548 | 1548 | $rate = $wpinv_options['eu_fallback_rate']; |
| 1549 | - } else if( !empty( $country ) ) { |
|
| 1550 | - $rate = self::find_rate( $country, $state, $rate, $class ); |
|
| 1549 | + } else if (!empty($country)) { |
|
| 1550 | + $rate = self::find_rate($country, $state, $rate, $class); |
|
| 1551 | 1551 | } |
| 1552 | 1552 | } |
| 1553 | - } else if ( empty( $vat_number ) || ( self::same_country_rule() == 'always' && $base_country ) ) { |
|
| 1554 | - if ( empty( $country ) && isset( $wpinv_options['eu_fallback_rate'] ) ) { |
|
| 1553 | + } else if (empty($vat_number) || (self::same_country_rule() == 'always' && $base_country)) { |
|
| 1554 | + if (empty($country) && isset($wpinv_options['eu_fallback_rate'])) { |
|
| 1555 | 1555 | $rate = $wpinv_options['eu_fallback_rate']; |
| 1556 | - } else if( !empty( $country ) ) { |
|
| 1557 | - $rate = self::find_rate( $country, $state, $rate, $class ); |
|
| 1556 | + } else if (!empty($country)) { |
|
| 1557 | + $rate = self::find_rate($country, $state, $rate, $class); |
|
| 1558 | 1558 | } |
| 1559 | 1559 | } |
| 1560 | 1560 | } else { |
| 1561 | - if ( $is_digital ) { |
|
| 1561 | + if ($is_digital) { |
|
| 1562 | 1562 | $ip_country_code = self::get_country_by_ip(); |
| 1563 | 1563 | |
| 1564 | - if ( $ip_country_code && self::is_eu_state( $ip_country_code ) ) { |
|
| 1565 | - $rate = self::find_rate( $ip_country_code, '', 0, $class ); |
|
| 1564 | + if ($ip_country_code && self::is_eu_state($ip_country_code)) { |
|
| 1565 | + $rate = self::find_rate($ip_country_code, '', 0, $class); |
|
| 1566 | 1566 | } else { |
| 1567 | - $rate = self::find_rate( $country, $state, $rate, $class ); |
|
| 1567 | + $rate = self::find_rate($country, $state, $rate, $class); |
|
| 1568 | 1568 | } |
| 1569 | 1569 | } else { |
| 1570 | - $rate = self::find_rate( $country, $state, $rate, $class ); |
|
| 1570 | + $rate = self::find_rate($country, $state, $rate, $class); |
|
| 1571 | 1571 | } |
| 1572 | 1572 | } |
| 1573 | 1573 | |
@@ -1577,48 +1577,48 @@ discard block |
||
| 1577 | 1577 | public static function current_vat_data() { |
| 1578 | 1578 | global $wpi_session; |
| 1579 | 1579 | |
| 1580 | - return $wpi_session->get( 'user_vat_data' ); |
|
| 1580 | + return $wpi_session->get('user_vat_data'); |
|
| 1581 | 1581 | } |
| 1582 | 1582 | |
| 1583 | - public static function get_user_country( $country = '', $user_id = 0 ) { |
|
| 1584 | - $user_address = wpinv_get_user_address( $user_id, false ); |
|
| 1583 | + public static function get_user_country($country = '', $user_id = 0) { |
|
| 1584 | + $user_address = wpinv_get_user_address($user_id, false); |
|
| 1585 | 1585 | |
| 1586 | - if ( wpinv_get_option( 'vat_ip_country_default' ) ) { |
|
| 1586 | + if (wpinv_get_option('vat_ip_country_default')) { |
|
| 1587 | 1587 | $country = ''; |
| 1588 | 1588 | } |
| 1589 | 1589 | |
| 1590 | - $country = empty( $user_address ) || !isset( $user_address['country'] ) || empty( $user_address['country'] ) ? $country : $user_address['country']; |
|
| 1591 | - $result = apply_filters( 'wpinv_get_user_country', $country, $user_id ); |
|
| 1590 | + $country = empty($user_address) || !isset($user_address['country']) || empty($user_address['country']) ? $country : $user_address['country']; |
|
| 1591 | + $result = apply_filters('wpinv_get_user_country', $country, $user_id); |
|
| 1592 | 1592 | |
| 1593 | - if ( empty( $result ) ) { |
|
| 1593 | + if (empty($result)) { |
|
| 1594 | 1594 | $result = self::get_country_by_ip(); |
| 1595 | 1595 | } |
| 1596 | 1596 | |
| 1597 | 1597 | return $result; |
| 1598 | 1598 | } |
| 1599 | 1599 | |
| 1600 | - public static function set_user_country( $country = '', $user_id = 0 ) { |
|
| 1600 | + public static function set_user_country($country = '', $user_id = 0) { |
|
| 1601 | 1601 | global $wpi_userID; |
| 1602 | 1602 | |
| 1603 | - if ( empty($country) && !empty($wpi_userID) && get_current_user_id() != $wpi_userID ) { |
|
| 1603 | + if (empty($country) && !empty($wpi_userID) && get_current_user_id() != $wpi_userID) { |
|
| 1604 | 1604 | $country = wpinv_get_default_country(); |
| 1605 | 1605 | } |
| 1606 | 1606 | |
| 1607 | 1607 | return $country; |
| 1608 | 1608 | } |
| 1609 | 1609 | |
| 1610 | - public static function get_user_vat_number( $vat_number = '', $user_id = 0, $is_valid = false ) { |
|
| 1610 | + public static function get_user_vat_number($vat_number = '', $user_id = 0, $is_valid = false) { |
|
| 1611 | 1611 | global $wpi_current_id, $wpi_userID; |
| 1612 | 1612 | |
| 1613 | - if ( !empty( $_POST['new_user'] ) ) { |
|
| 1613 | + if (!empty($_POST['new_user'])) { |
|
| 1614 | 1614 | return ''; |
| 1615 | 1615 | } |
| 1616 | 1616 | |
| 1617 | - if ( empty( $user_id ) ) { |
|
| 1618 | - $user_id = !empty( $wpi_userID ) ? $wpi_userID : ( $wpi_current_id ? wpinv_get_user_id( $wpi_current_id ) : get_current_user_id() ); |
|
| 1617 | + if (empty($user_id)) { |
|
| 1618 | + $user_id = !empty($wpi_userID) ? $wpi_userID : ($wpi_current_id ? wpinv_get_user_id($wpi_current_id) : get_current_user_id()); |
|
| 1619 | 1619 | } |
| 1620 | 1620 | |
| 1621 | - $vat_number = empty( $user_id ) ? '' : get_user_meta( $user_id, '_wpinv_vat_number', true ); |
|
| 1621 | + $vat_number = empty($user_id) ? '' : get_user_meta($user_id, '_wpinv_vat_number', true); |
|
| 1622 | 1622 | |
| 1623 | 1623 | /* TODO |
| 1624 | 1624 | if ( $is_valid && $vat_number ) { |
@@ -1629,38 +1629,38 @@ discard block |
||
| 1629 | 1629 | } |
| 1630 | 1630 | */ |
| 1631 | 1631 | |
| 1632 | - return apply_filters('wpinv_get_user_vat_number', $vat_number, $user_id, $is_valid ); |
|
| 1632 | + return apply_filters('wpinv_get_user_vat_number', $vat_number, $user_id, $is_valid); |
|
| 1633 | 1633 | } |
| 1634 | 1634 | |
| 1635 | - public static function get_user_company( $company = '', $user_id = 0 ) { |
|
| 1635 | + public static function get_user_company($company = '', $user_id = 0) { |
|
| 1636 | 1636 | global $wpi_current_id, $wpi_userID; |
| 1637 | 1637 | |
| 1638 | - if ( empty( $user_id ) ) { |
|
| 1639 | - $user_id = !empty( $wpi_userID ) ? $wpi_userID : ( $wpi_current_id ? wpinv_get_user_id( $wpi_current_id ) : get_current_user_id() ); |
|
| 1638 | + if (empty($user_id)) { |
|
| 1639 | + $user_id = !empty($wpi_userID) ? $wpi_userID : ($wpi_current_id ? wpinv_get_user_id($wpi_current_id) : get_current_user_id()); |
|
| 1640 | 1640 | } |
| 1641 | 1641 | |
| 1642 | - $company = empty( $user_id ) ? "" : get_user_meta( $user_id, '_wpinv_company', true ); |
|
| 1642 | + $company = empty($user_id) ? "" : get_user_meta($user_id, '_wpinv_company', true); |
|
| 1643 | 1643 | |
| 1644 | - return apply_filters( 'wpinv_user_company', $company, $user_id ); |
|
| 1644 | + return apply_filters('wpinv_user_company', $company, $user_id); |
|
| 1645 | 1645 | } |
| 1646 | 1646 | |
| 1647 | - public static function save_user_vat_details( $company = '', $vat_number = '' ) { |
|
| 1648 | - $save = apply_filters( 'wpinv_allow_save_user_vat_details', true ); |
|
| 1647 | + public static function save_user_vat_details($company = '', $vat_number = '') { |
|
| 1648 | + $save = apply_filters('wpinv_allow_save_user_vat_details', true); |
|
| 1649 | 1649 | |
| 1650 | - if ( is_user_logged_in() && $save ) { |
|
| 1650 | + if (is_user_logged_in() && $save) { |
|
| 1651 | 1651 | $user_id = get_current_user_id(); |
| 1652 | 1652 | |
| 1653 | - if ( !empty( $vat_number ) ) { |
|
| 1654 | - update_user_meta( $user_id, '_wpinv_vat_number', $vat_number ); |
|
| 1653 | + if (!empty($vat_number)) { |
|
| 1654 | + update_user_meta($user_id, '_wpinv_vat_number', $vat_number); |
|
| 1655 | 1655 | } else { |
| 1656 | - delete_user_meta( $user_id, '_wpinv_vat_number'); |
|
| 1656 | + delete_user_meta($user_id, '_wpinv_vat_number'); |
|
| 1657 | 1657 | } |
| 1658 | 1658 | |
| 1659 | - if ( !empty( $company ) ) { |
|
| 1660 | - update_user_meta( $user_id, '_wpinv_company', $company ); |
|
| 1659 | + if (!empty($company)) { |
|
| 1660 | + update_user_meta($user_id, '_wpinv_company', $company); |
|
| 1661 | 1661 | } else { |
| 1662 | - delete_user_meta( $user_id, '_wpinv_company'); |
|
| 1663 | - delete_user_meta( $user_id, '_wpinv_vat_number'); |
|
| 1662 | + delete_user_meta($user_id, '_wpinv_company'); |
|
| 1663 | + delete_user_meta($user_id, '_wpinv_vat_number'); |
|
| 1664 | 1664 | } |
| 1665 | 1665 | } |
| 1666 | 1666 | |
@@ -1670,113 +1670,113 @@ discard block |
||
| 1670 | 1670 | public static function ajax_vat_validate() { |
| 1671 | 1671 | global $wpinv_options, $wpi_session; |
| 1672 | 1672 | |
| 1673 | - $is_checkout = ( !empty( $_POST['source'] ) && $_POST['source'] == 'checkout' ) ? true : false; |
|
| 1673 | + $is_checkout = (!empty($_POST['source']) && $_POST['source'] == 'checkout') ? true : false; |
|
| 1674 | 1674 | $response = array(); |
| 1675 | 1675 | $response['success'] = false; |
| 1676 | 1676 | |
| 1677 | - if ( empty( $_REQUEST['_wpi_nonce'] ) || ( !empty( $_REQUEST['_wpi_nonce'] ) && !wp_verify_nonce( $_REQUEST['_wpi_nonce'], 'vat_validation' ) ) ) { |
|
| 1678 | - $response['error'] = __( 'Invalid security nonce', 'invoicing' ); |
|
| 1679 | - wp_send_json( $response ); |
|
| 1677 | + if (empty($_REQUEST['_wpi_nonce']) || (!empty($_REQUEST['_wpi_nonce']) && !wp_verify_nonce($_REQUEST['_wpi_nonce'], 'vat_validation'))) { |
|
| 1678 | + $response['error'] = __('Invalid security nonce', 'invoicing'); |
|
| 1679 | + wp_send_json($response); |
|
| 1680 | 1680 | } |
| 1681 | 1681 | |
| 1682 | - $vat_name = self::get_vat_name(); |
|
| 1682 | + $vat_name = self::get_vat_name(); |
|
| 1683 | 1683 | |
| 1684 | - if ( $is_checkout ) { |
|
| 1684 | + if ($is_checkout) { |
|
| 1685 | 1685 | $invoice = wpinv_get_invoice_cart(); |
| 1686 | 1686 | |
| 1687 | - if ( !self::requires_vat( false, 0, self::invoice_has_digital_rule( $invoice ) ) ) { |
|
| 1687 | + if (!self::requires_vat(false, 0, self::invoice_has_digital_rule($invoice))) { |
|
| 1688 | 1688 | $vat_info = array(); |
| 1689 | - $wpi_session->set( 'user_vat_data', $vat_info ); |
|
| 1689 | + $wpi_session->set('user_vat_data', $vat_info); |
|
| 1690 | 1690 | |
| 1691 | 1691 | self::save_user_vat_details(); |
| 1692 | 1692 | |
| 1693 | 1693 | $response['success'] = true; |
| 1694 | - $response['message'] = wp_sprintf( __( 'Ignore %s', 'invoicing' ), $vat_name ); |
|
| 1695 | - wp_send_json( $response ); |
|
| 1694 | + $response['message'] = wp_sprintf(__('Ignore %s', 'invoicing'), $vat_name); |
|
| 1695 | + wp_send_json($response); |
|
| 1696 | 1696 | } |
| 1697 | 1697 | } |
| 1698 | 1698 | |
| 1699 | - $company = !empty( $_POST['company'] ) ? sanitize_text_field( $_POST['company'] ) : ''; |
|
| 1700 | - $vat_number = !empty( $_POST['number'] ) ? sanitize_text_field( $_POST['number'] ) : ''; |
|
| 1699 | + $company = !empty($_POST['company']) ? sanitize_text_field($_POST['company']) : ''; |
|
| 1700 | + $vat_number = !empty($_POST['number']) ? sanitize_text_field($_POST['number']) : ''; |
|
| 1701 | 1701 | |
| 1702 | - $vat_info = $wpi_session->get( 'user_vat_data' ); |
|
| 1703 | - if ( !is_array( $vat_info ) || empty( $vat_info ) ) { |
|
| 1704 | - $vat_info = array( 'company'=> $company, 'number' => '', 'valid' => true ); |
|
| 1702 | + $vat_info = $wpi_session->get('user_vat_data'); |
|
| 1703 | + if (!is_array($vat_info) || empty($vat_info)) { |
|
| 1704 | + $vat_info = array('company'=> $company, 'number' => '', 'valid' => true); |
|
| 1705 | 1705 | } |
| 1706 | 1706 | |
| 1707 | - if ( empty( $vat_number ) ) { |
|
| 1708 | - if ( $is_checkout ) { |
|
| 1707 | + if (empty($vat_number)) { |
|
| 1708 | + if ($is_checkout) { |
|
| 1709 | 1709 | $response['success'] = true; |
| 1710 | - $response['message'] = wp_sprintf( __( 'No %s number has been applied. %s will be added to invoice totals', 'invoicing' ), $vat_name, $vat_name ); |
|
| 1710 | + $response['message'] = wp_sprintf(__('No %s number has been applied. %s will be added to invoice totals', 'invoicing'), $vat_name, $vat_name); |
|
| 1711 | 1711 | |
| 1712 | - $vat_info = $wpi_session->get( 'user_vat_data' ); |
|
| 1712 | + $vat_info = $wpi_session->get('user_vat_data'); |
|
| 1713 | 1713 | $vat_info['number'] = ""; |
| 1714 | 1714 | $vat_info['valid'] = true; |
| 1715 | 1715 | |
| 1716 | - self::save_user_vat_details( $company ); |
|
| 1716 | + self::save_user_vat_details($company); |
|
| 1717 | 1717 | } else { |
| 1718 | - $response['error'] = wp_sprintf( __( 'Please enter your %s number!', 'invoicing' ), $vat_name ); |
|
| 1718 | + $response['error'] = wp_sprintf(__('Please enter your %s number!', 'invoicing'), $vat_name); |
|
| 1719 | 1719 | |
| 1720 | 1720 | $vat_info['valid'] = false; |
| 1721 | 1721 | } |
| 1722 | 1722 | |
| 1723 | - $wpi_session->set( 'user_vat_data', $vat_info ); |
|
| 1724 | - wp_send_json( $response ); |
|
| 1723 | + $wpi_session->set('user_vat_data', $vat_info); |
|
| 1724 | + wp_send_json($response); |
|
| 1725 | 1725 | } |
| 1726 | 1726 | |
| 1727 | - if ( empty( $company ) ) { |
|
| 1727 | + if (empty($company)) { |
|
| 1728 | 1728 | $vat_info['valid'] = false; |
| 1729 | - $wpi_session->set( 'user_vat_data', $vat_info ); |
|
| 1729 | + $wpi_session->set('user_vat_data', $vat_info); |
|
| 1730 | 1730 | |
| 1731 | - $response['error'] = __( 'Please enter your registered company name!', 'invoicing' ); |
|
| 1732 | - wp_send_json( $response ); |
|
| 1731 | + $response['error'] = __('Please enter your registered company name!', 'invoicing'); |
|
| 1732 | + wp_send_json($response); |
|
| 1733 | 1733 | } |
| 1734 | 1734 | |
| 1735 | - if ( !empty( $wpinv_options['vat_vies_check'] ) ) { |
|
| 1736 | - if ( empty( $wpinv_options['vat_offline_check'] ) && !self::offline_check( $vat_number ) ) { |
|
| 1735 | + if (!empty($wpinv_options['vat_vies_check'])) { |
|
| 1736 | + if (empty($wpinv_options['vat_offline_check']) && !self::offline_check($vat_number)) { |
|
| 1737 | 1737 | $vat_info['valid'] = false; |
| 1738 | - $wpi_session->set( 'user_vat_data', $vat_info ); |
|
| 1738 | + $wpi_session->set('user_vat_data', $vat_info); |
|
| 1739 | 1739 | |
| 1740 | - $response['error'] = wp_sprintf( __( '%s number not validated', 'invoicing' ), $vat_name ); |
|
| 1741 | - wp_send_json( $response ); |
|
| 1740 | + $response['error'] = wp_sprintf(__('%s number not validated', 'invoicing'), $vat_name); |
|
| 1741 | + wp_send_json($response); |
|
| 1742 | 1742 | } |
| 1743 | 1743 | |
| 1744 | 1744 | $response['success'] = true; |
| 1745 | - $response['message'] = wp_sprintf( __( '%s number validated', 'invoicing' ), $vat_name ); |
|
| 1745 | + $response['message'] = wp_sprintf(__('%s number validated', 'invoicing'), $vat_name); |
|
| 1746 | 1746 | } else { |
| 1747 | - $result = self::check_vat( $vat_number ); |
|
| 1747 | + $result = self::check_vat($vat_number); |
|
| 1748 | 1748 | |
| 1749 | - if ( empty( $result['valid'] ) ) { |
|
| 1749 | + if (empty($result['valid'])) { |
|
| 1750 | 1750 | $response['error'] = $result['message']; |
| 1751 | - wp_send_json( $response ); |
|
| 1751 | + wp_send_json($response); |
|
| 1752 | 1752 | } |
| 1753 | 1753 | |
| 1754 | - $vies_company = !empty( $result['company'] ) ? $result['company'] : ''; |
|
| 1755 | - $vies_company = apply_filters( 'wpinv_vies_company_name', $vies_company ); |
|
| 1754 | + $vies_company = !empty($result['company']) ? $result['company'] : ''; |
|
| 1755 | + $vies_company = apply_filters('wpinv_vies_company_name', $vies_company); |
|
| 1756 | 1756 | |
| 1757 | - $valid_company = $vies_company && $company && ( $vies_company == '---' || strcasecmp( trim( $vies_company ), trim( $company ) ) == 0 ) ? true : false; |
|
| 1757 | + $valid_company = $vies_company && $company && ($vies_company == '---' || strcasecmp(trim($vies_company), trim($company)) == 0) ? true : false; |
|
| 1758 | 1758 | |
| 1759 | - if ( !empty( $wpinv_options['vat_disable_company_name_check'] ) || $valid_company ) { |
|
| 1759 | + if (!empty($wpinv_options['vat_disable_company_name_check']) || $valid_company) { |
|
| 1760 | 1760 | $response['success'] = true; |
| 1761 | - $response['message'] = wp_sprintf( __( '%s number validated', 'invoicing' ), $vat_name ); |
|
| 1761 | + $response['message'] = wp_sprintf(__('%s number validated', 'invoicing'), $vat_name); |
|
| 1762 | 1762 | } else { |
| 1763 | 1763 | $vat_info['valid'] = false; |
| 1764 | - $wpi_session->set( 'user_vat_data', $vat_info ); |
|
| 1764 | + $wpi_session->set('user_vat_data', $vat_info); |
|
| 1765 | 1765 | |
| 1766 | 1766 | $response['success'] = false; |
| 1767 | - $response['message'] = wp_sprintf( __( 'The company name associated with the %s number provided is not the same as the company name provided.', 'invoicing' ), $vat_name ); |
|
| 1768 | - wp_send_json( $response ); |
|
| 1767 | + $response['message'] = wp_sprintf(__('The company name associated with the %s number provided is not the same as the company name provided.', 'invoicing'), $vat_name); |
|
| 1768 | + wp_send_json($response); |
|
| 1769 | 1769 | } |
| 1770 | 1770 | } |
| 1771 | 1771 | |
| 1772 | - if ( $is_checkout ) { |
|
| 1773 | - self::save_user_vat_details( $company, $vat_number ); |
|
| 1772 | + if ($is_checkout) { |
|
| 1773 | + self::save_user_vat_details($company, $vat_number); |
|
| 1774 | 1774 | |
| 1775 | - $vat_info = array('company' => $company, 'number' => $vat_number, 'valid' => true ); |
|
| 1776 | - $wpi_session->set( 'user_vat_data', $vat_info ); |
|
| 1775 | + $vat_info = array('company' => $company, 'number' => $vat_number, 'valid' => true); |
|
| 1776 | + $wpi_session->set('user_vat_data', $vat_info); |
|
| 1777 | 1777 | } |
| 1778 | 1778 | |
| 1779 | - wp_send_json( $response ); |
|
| 1779 | + wp_send_json($response); |
|
| 1780 | 1780 | } |
| 1781 | 1781 | |
| 1782 | 1782 | public static function ajax_vat_reset() { |
@@ -1785,161 +1785,161 @@ discard block |
||
| 1785 | 1785 | $company = is_user_logged_in() ? self::get_user_company() : ''; |
| 1786 | 1786 | $vat_number = self::get_user_vat_number(); |
| 1787 | 1787 | |
| 1788 | - $vat_info = array('company' => $company, 'number' => $vat_number, 'valid' => false ); |
|
| 1789 | - $wpi_session->set( 'user_vat_data', $vat_info ); |
|
| 1788 | + $vat_info = array('company' => $company, 'number' => $vat_number, 'valid' => false); |
|
| 1789 | + $wpi_session->set('user_vat_data', $vat_info); |
|
| 1790 | 1790 | |
| 1791 | 1791 | $response = array(); |
| 1792 | 1792 | $response['success'] = true; |
| 1793 | 1793 | $response['data']['company'] = $company; |
| 1794 | 1794 | $response['data']['number'] = $vat_number; |
| 1795 | 1795 | |
| 1796 | - wp_send_json( $response ); |
|
| 1796 | + wp_send_json($response); |
|
| 1797 | 1797 | } |
| 1798 | 1798 | |
| 1799 | - public static function checkout_vat_validate( $valid_data, $post ) { |
|
| 1799 | + public static function checkout_vat_validate($valid_data, $post) { |
|
| 1800 | 1800 | global $wpinv_options, $wpi_session; |
| 1801 | 1801 | |
| 1802 | - $vat_name = __( self::get_vat_name(), 'invoicing' ); |
|
| 1802 | + $vat_name = __(self::get_vat_name(), 'invoicing'); |
|
| 1803 | 1803 | |
| 1804 | - if ( !isset( $_POST['_wpi_nonce'] ) || !wp_verify_nonce( $_POST['_wpi_nonce'], 'vat_validation' ) ) { |
|
| 1805 | - wpinv_set_error( 'vat_validation', wp_sprintf( __( "Invalid %s validation request.", 'invoicing' ), $vat_name ) ); |
|
| 1804 | + if (!isset($_POST['_wpi_nonce']) || !wp_verify_nonce($_POST['_wpi_nonce'], 'vat_validation')) { |
|
| 1805 | + wpinv_set_error('vat_validation', wp_sprintf(__("Invalid %s validation request.", 'invoicing'), $vat_name)); |
|
| 1806 | 1806 | return; |
| 1807 | 1807 | } |
| 1808 | 1808 | |
| 1809 | - $vat_saved = $wpi_session->get( 'user_vat_data' ); |
|
| 1810 | - $wpi_session->set( 'user_vat_data', null ); |
|
| 1809 | + $vat_saved = $wpi_session->get('user_vat_data'); |
|
| 1810 | + $wpi_session->set('user_vat_data', null); |
|
| 1811 | 1811 | |
| 1812 | 1812 | $invoice = wpinv_get_invoice_cart(); |
| 1813 | 1813 | $amount = $invoice->get_total(); |
| 1814 | - $is_digital = self::invoice_has_digital_rule( $invoice ); |
|
| 1815 | - $no_vat = !self::requires_vat( 0, false, $is_digital ); |
|
| 1814 | + $is_digital = self::invoice_has_digital_rule($invoice); |
|
| 1815 | + $no_vat = !self::requires_vat(0, false, $is_digital); |
|
| 1816 | 1816 | |
| 1817 | - $company = !empty( $_POST['wpinv_company'] ) ? $_POST['wpinv_company'] : null; |
|
| 1818 | - $vat_number = !empty( $_POST['wpinv_vat_number'] ) ? $_POST['wpinv_vat_number'] : null; |
|
| 1819 | - $country = !empty( $_POST['wpinv_country'] ) ? $_POST['wpinv_country'] : $invoice->country; |
|
| 1820 | - if ( empty( $country ) ) { |
|
| 1817 | + $company = !empty($_POST['wpinv_company']) ? $_POST['wpinv_company'] : null; |
|
| 1818 | + $vat_number = !empty($_POST['wpinv_vat_number']) ? $_POST['wpinv_vat_number'] : null; |
|
| 1819 | + $country = !empty($_POST['wpinv_country']) ? $_POST['wpinv_country'] : $invoice->country; |
|
| 1820 | + if (empty($country)) { |
|
| 1821 | 1821 | $country = wpinv_default_billing_country(); |
| 1822 | 1822 | } |
| 1823 | 1823 | |
| 1824 | - if ( !$is_digital && $no_vat ) { |
|
| 1824 | + if (!$is_digital && $no_vat) { |
|
| 1825 | 1825 | return; |
| 1826 | 1826 | } |
| 1827 | 1827 | |
| 1828 | - $vat_data = array( 'company' => '', 'number' => '', 'valid' => false ); |
|
| 1828 | + $vat_data = array('company' => '', 'number' => '', 'valid' => false); |
|
| 1829 | 1829 | |
| 1830 | 1830 | $ip_country_code = self::get_country_by_ip(); |
| 1831 | - $is_eu_state = self::is_eu_state( $country ); |
|
| 1832 | - $is_eu_state_ip = self::is_eu_state( $ip_country_code ); |
|
| 1831 | + $is_eu_state = self::is_eu_state($country); |
|
| 1832 | + $is_eu_state_ip = self::is_eu_state($ip_country_code); |
|
| 1833 | 1833 | $is_non_eu_user = !$is_eu_state && !$is_eu_state_ip; |
| 1834 | 1834 | |
| 1835 | - if ( $is_digital && !$is_non_eu_user && empty( $vat_number ) && apply_filters( 'wpinv_checkout_requires_country', true, $amount ) ) { |
|
| 1835 | + if ($is_digital && !$is_non_eu_user && empty($vat_number) && apply_filters('wpinv_checkout_requires_country', true, $amount)) { |
|
| 1836 | 1836 | $vat_data['adddress_confirmed'] = false; |
| 1837 | 1837 | |
| 1838 | - if ( !isset( $_POST['wpinv_adddress_confirmed'] ) ) { |
|
| 1839 | - if ( $ip_country_code != $country ) { |
|
| 1840 | - wpinv_set_error( 'vat_validation', sprintf( __( 'The country of your current location must be the same as the country of your billing location or you must %s confirm %s the billing address is your home country.', 'invoicing' ), '<a href="#wpinv_adddress_confirm">', '</a>' ) ); |
|
| 1838 | + if (!isset($_POST['wpinv_adddress_confirmed'])) { |
|
| 1839 | + if ($ip_country_code != $country) { |
|
| 1840 | + wpinv_set_error('vat_validation', sprintf(__('The country of your current location must be the same as the country of your billing location or you must %s confirm %s the billing address is your home country.', 'invoicing'), '<a href="#wpinv_adddress_confirm">', '</a>')); |
|
| 1841 | 1841 | } |
| 1842 | 1842 | } else { |
| 1843 | 1843 | $vat_data['adddress_confirmed'] = true; |
| 1844 | 1844 | } |
| 1845 | 1845 | } |
| 1846 | 1846 | |
| 1847 | - if ( !empty( $wpinv_options['vat_prevent_b2c_purchase'] ) && !$is_non_eu_user && ( empty( $vat_number ) || $no_vat ) ) { |
|
| 1848 | - if ( $is_eu_state ) { |
|
| 1849 | - wpinv_set_error( 'vat_validation', wp_sprintf( __( 'Please enter and validate your %s number to verify your purchase is by an EU business.', 'invoicing' ), $vat_name ) ); |
|
| 1850 | - } else if ( $is_digital && $is_eu_state_ip ) { |
|
| 1851 | - wpinv_set_error( 'vat_validation', wp_sprintf( __( 'Sales to non-EU countries cannot be completed because %s must be applied.', 'invoicing' ), $vat_name ) ); |
|
| 1847 | + if (!empty($wpinv_options['vat_prevent_b2c_purchase']) && !$is_non_eu_user && (empty($vat_number) || $no_vat)) { |
|
| 1848 | + if ($is_eu_state) { |
|
| 1849 | + wpinv_set_error('vat_validation', wp_sprintf(__('Please enter and validate your %s number to verify your purchase is by an EU business.', 'invoicing'), $vat_name)); |
|
| 1850 | + } else if ($is_digital && $is_eu_state_ip) { |
|
| 1851 | + wpinv_set_error('vat_validation', wp_sprintf(__('Sales to non-EU countries cannot be completed because %s must be applied.', 'invoicing'), $vat_name)); |
|
| 1852 | 1852 | } |
| 1853 | 1853 | } |
| 1854 | 1854 | |
| 1855 | - if ( !$is_eu_state || $no_vat || empty( $vat_number ) ) { |
|
| 1855 | + if (!$is_eu_state || $no_vat || empty($vat_number)) { |
|
| 1856 | 1856 | return; |
| 1857 | 1857 | } |
| 1858 | 1858 | |
| 1859 | - if ( !empty( $vat_saved ) && isset( $vat_saved['valid'] ) ) { |
|
| 1860 | - $vat_data['valid'] = $vat_saved['valid']; |
|
| 1859 | + if (!empty($vat_saved) && isset($vat_saved['valid'])) { |
|
| 1860 | + $vat_data['valid'] = $vat_saved['valid']; |
|
| 1861 | 1861 | } |
| 1862 | 1862 | |
| 1863 | - if ( $company !== null ) { |
|
| 1863 | + if ($company !== null) { |
|
| 1864 | 1864 | $vat_data['company'] = $company; |
| 1865 | 1865 | } |
| 1866 | 1866 | |
| 1867 | 1867 | $message = ''; |
| 1868 | - if ( $vat_number !== null ) { |
|
| 1868 | + if ($vat_number !== null) { |
|
| 1869 | 1869 | $vat_data['number'] = $vat_number; |
| 1870 | 1870 | |
| 1871 | - if ( !$vat_data['valid'] || ( $vat_saved['number'] !== $vat_data['number'] ) || ( $vat_saved['company'] !== $vat_data['company'] ) ) { |
|
| 1872 | - if ( !empty( $wpinv_options['vat_vies_check'] ) ) { |
|
| 1873 | - if ( empty( $wpinv_options['vat_offline_check'] ) && !self::offline_check( $vat_number ) ) { |
|
| 1871 | + if (!$vat_data['valid'] || ($vat_saved['number'] !== $vat_data['number']) || ($vat_saved['company'] !== $vat_data['company'])) { |
|
| 1872 | + if (!empty($wpinv_options['vat_vies_check'])) { |
|
| 1873 | + if (empty($wpinv_options['vat_offline_check']) && !self::offline_check($vat_number)) { |
|
| 1874 | 1874 | $vat_data['valid'] = false; |
| 1875 | 1875 | } |
| 1876 | 1876 | } else { |
| 1877 | - $result = self::check_vat( $vat_number ); |
|
| 1877 | + $result = self::check_vat($vat_number); |
|
| 1878 | 1878 | |
| 1879 | - if ( !empty( $result['valid'] ) ) { |
|
| 1879 | + if (!empty($result['valid'])) { |
|
| 1880 | 1880 | $vat_data['valid'] = true; |
| 1881 | - $vies_company = !empty( $result['company'] ) ? $result['company'] : ''; |
|
| 1882 | - $vies_company = apply_filters( 'wpinv_vies_company_name', $vies_company ); |
|
| 1881 | + $vies_company = !empty($result['company']) ? $result['company'] : ''; |
|
| 1882 | + $vies_company = apply_filters('wpinv_vies_company_name', $vies_company); |
|
| 1883 | 1883 | |
| 1884 | - $valid_company = $vies_company && $company && ( $vies_company == '---' || strcasecmp( trim( $vies_company ), trim( $company ) ) == 0 ) ? true : false; |
|
| 1884 | + $valid_company = $vies_company && $company && ($vies_company == '---' || strcasecmp(trim($vies_company), trim($company)) == 0) ? true : false; |
|
| 1885 | 1885 | |
| 1886 | - if ( !( !empty( $wpinv_options['vat_disable_company_name_check'] ) || $valid_company ) ) { |
|
| 1886 | + if (!(!empty($wpinv_options['vat_disable_company_name_check']) || $valid_company)) { |
|
| 1887 | 1887 | $vat_data['valid'] = false; |
| 1888 | 1888 | |
| 1889 | - $message = wp_sprintf( __( 'The company name associated with the %s number provided is not the same as the company name provided.', 'invoicing' ), $vat_name ); |
|
| 1889 | + $message = wp_sprintf(__('The company name associated with the %s number provided is not the same as the company name provided.', 'invoicing'), $vat_name); |
|
| 1890 | 1890 | } |
| 1891 | 1891 | } else { |
| 1892 | - $message = wp_sprintf( __( 'Fail to validate the %s number: EU Commission VAT server (VIES) check fails.', 'invoicing' ), $vat_name ); |
|
| 1892 | + $message = wp_sprintf(__('Fail to validate the %s number: EU Commission VAT server (VIES) check fails.', 'invoicing'), $vat_name); |
|
| 1893 | 1893 | } |
| 1894 | 1894 | } |
| 1895 | 1895 | |
| 1896 | - if ( !$vat_data['valid'] ) { |
|
| 1897 | - $error = wp_sprintf( __( 'The %s %s number %s you have entered has not been validated', 'invoicing' ), '<a href="#wpi-vat-details">', $vat_name, '</a>' ) . ( $message ? ' ( ' . $message . ' )' : '' ); |
|
| 1898 | - wpinv_set_error( 'vat_validation', $error ); |
|
| 1896 | + if (!$vat_data['valid']) { |
|
| 1897 | + $error = wp_sprintf(__('The %s %s number %s you have entered has not been validated', 'invoicing'), '<a href="#wpi-vat-details">', $vat_name, '</a>') . ($message ? ' ( ' . $message . ' )' : ''); |
|
| 1898 | + wpinv_set_error('vat_validation', $error); |
|
| 1899 | 1899 | } |
| 1900 | 1900 | } |
| 1901 | 1901 | } |
| 1902 | 1902 | |
| 1903 | - $wpi_session->set( 'user_vat_data', $vat_data ); |
|
| 1903 | + $wpi_session->set('user_vat_data', $vat_data); |
|
| 1904 | 1904 | } |
| 1905 | 1905 | |
| 1906 | - public static function checkout_vat_fields( $billing_details ) { |
|
| 1906 | + public static function checkout_vat_fields($billing_details) { |
|
| 1907 | 1907 | global $wpi_session, $wpinv_options, $wpi_country, $wpi_requires_vat; |
| 1908 | 1908 | |
| 1909 | 1909 | $ip_address = wpinv_get_ip(); |
| 1910 | 1910 | $ip_country_code = self::get_country_by_ip(); |
| 1911 | 1911 | |
| 1912 | - $tax_label = __( self::get_vat_name(), 'invoicing' ); |
|
| 1912 | + $tax_label = __(self::get_vat_name(), 'invoicing'); |
|
| 1913 | 1913 | $invoice = wpinv_get_invoice_cart(); |
| 1914 | - $is_digital = self::invoice_has_digital_rule( $invoice ); |
|
| 1914 | + $is_digital = self::invoice_has_digital_rule($invoice); |
|
| 1915 | 1915 | $wpi_country = $invoice->country; |
| 1916 | 1916 | |
| 1917 | - $requires_vat = !self::hide_vat_fields() && !$invoice->is_free() && self::requires_vat( 0, false, $is_digital ); |
|
| 1917 | + $requires_vat = !self::hide_vat_fields() && !$invoice->is_free() && self::requires_vat(0, false, $is_digital); |
|
| 1918 | 1918 | $wpi_requires_vat = $requires_vat; |
| 1919 | 1919 | |
| 1920 | 1920 | $company = self::get_user_company(); |
| 1921 | 1921 | $vat_number = self::get_user_vat_number(); |
| 1922 | 1922 | |
| 1923 | - $validated = $vat_number ? self::get_user_vat_number( '', 0, true ) : 1; |
|
| 1924 | - $vat_info = $wpi_session->get( 'user_vat_data' ); |
|
| 1923 | + $validated = $vat_number ? self::get_user_vat_number('', 0, true) : 1; |
|
| 1924 | + $vat_info = $wpi_session->get('user_vat_data'); |
|
| 1925 | 1925 | |
| 1926 | - if ( is_array( $vat_info ) ) { |
|
| 1927 | - $company = isset( $vat_info['company'] ) ? $vat_info['company'] : ''; |
|
| 1928 | - $vat_number = isset( $vat_info['number'] ) ? $vat_info['number'] : ''; |
|
| 1929 | - $validated = isset( $vat_info['valid'] ) ? $vat_info['valid'] : false; |
|
| 1926 | + if (is_array($vat_info)) { |
|
| 1927 | + $company = isset($vat_info['company']) ? $vat_info['company'] : ''; |
|
| 1928 | + $vat_number = isset($vat_info['number']) ? $vat_info['number'] : ''; |
|
| 1929 | + $validated = isset($vat_info['valid']) ? $vat_info['valid'] : false; |
|
| 1930 | 1930 | } |
| 1931 | 1931 | |
| 1932 | 1932 | $selected_country = $invoice->country ? $invoice->country : wpinv_default_billing_country(); |
| 1933 | 1933 | |
| 1934 | - if ( $ip_country_code == 'UK' ) { |
|
| 1934 | + if ($ip_country_code == 'UK') { |
|
| 1935 | 1935 | $ip_country_code = 'GB'; |
| 1936 | 1936 | } |
| 1937 | 1937 | |
| 1938 | - if ( $selected_country == 'UK' ) { |
|
| 1938 | + if ($selected_country == 'UK') { |
|
| 1939 | 1939 | $selected_country = 'GB'; |
| 1940 | 1940 | } |
| 1941 | 1941 | |
| 1942 | - if ( $requires_vat && ( self::same_country_rule() == 'no' && wpinv_is_base_country( $selected_country ) || !self::allow_vat_rules() ) ) { |
|
| 1942 | + if ($requires_vat && (self::same_country_rule() == 'no' && wpinv_is_base_country($selected_country) || !self::allow_vat_rules())) { |
|
| 1943 | 1943 | $requires_vat = false; |
| 1944 | 1944 | } |
| 1945 | 1945 | |
@@ -1947,52 +1947,52 @@ discard block |
||
| 1947 | 1947 | $display_validate_btn = 'none'; |
| 1948 | 1948 | $display_reset_btn = 'none'; |
| 1949 | 1949 | |
| 1950 | - if ( !empty( $vat_number ) && $validated ) { |
|
| 1951 | - $vat_vailidated_text = wp_sprintf( __( '%s number validated', 'invoicing' ), $tax_label ); |
|
| 1950 | + if (!empty($vat_number) && $validated) { |
|
| 1951 | + $vat_vailidated_text = wp_sprintf(__('%s number validated', 'invoicing'), $tax_label); |
|
| 1952 | 1952 | $vat_vailidated_class = 'wpinv-vat-stat-1'; |
| 1953 | 1953 | $display_reset_btn = 'block'; |
| 1954 | 1954 | } else { |
| 1955 | - $vat_vailidated_text = empty( $vat_number ) ? '' : wp_sprintf( __( '%s number not validated', 'invoicing' ), $tax_label ); |
|
| 1956 | - $vat_vailidated_class = empty( $vat_number ) ? '' : 'wpinv-vat-stat-0'; |
|
| 1955 | + $vat_vailidated_text = empty($vat_number) ? '' : wp_sprintf(__('%s number not validated', 'invoicing'), $tax_label); |
|
| 1956 | + $vat_vailidated_class = empty($vat_number) ? '' : 'wpinv-vat-stat-0'; |
|
| 1957 | 1957 | $display_validate_btn = 'block'; |
| 1958 | 1958 | } |
| 1959 | 1959 | |
| 1960 | - $show_ip_country = $is_digital && ( empty( $vat_number ) || !$requires_vat ) && $ip_country_code != $selected_country ? 'block' : 'none'; |
|
| 1960 | + $show_ip_country = $is_digital && (empty($vat_number) || !$requires_vat) && $ip_country_code != $selected_country ? 'block' : 'none'; |
|
| 1961 | 1961 | ?> |
| 1962 | 1962 | <div id="wpi-vat-details" class="wpi-vat-details clearfix" style="display:<?php echo $display_vat_details; ?>"> |
| 1963 | 1963 | <div id="wpi_vat_info" class="clearfix panel panel-default"> |
| 1964 | - <div class="panel-heading"><h3 class="panel-title"><?php echo wp_sprintf( __( '%s Details', 'invoicing' ), $tax_label );?></h3></div> |
|
| 1964 | + <div class="panel-heading"><h3 class="panel-title"><?php echo wp_sprintf(__('%s Details', 'invoicing'), $tax_label); ?></h3></div> |
|
| 1965 | 1965 | <div id="wpinv-fields-box" class="panel-body"> |
| 1966 | 1966 | <p id="wpi_show_vat_note"> |
| 1967 | - <?php echo wp_sprintf( __( 'Validate your registered %s number to exclude tax.', 'invoicing' ), $tax_label ); ?> |
|
| 1967 | + <?php echo wp_sprintf(__('Validate your registered %s number to exclude tax.', 'invoicing'), $tax_label); ?> |
|
| 1968 | 1968 | </p> |
| 1969 | 1969 | <div id="wpi_vat_fields" class="wpi_vat_info"> |
| 1970 | 1970 | <p class="wpi-cart-field wpi-col2 wpi-colf"> |
| 1971 | - <label for="wpinv_company" class="wpi-label"><?php _e( 'Company Name', 'invoicing' );?></label> |
|
| 1971 | + <label for="wpinv_company" class="wpi-label"><?php _e('Company Name', 'invoicing'); ?></label> |
|
| 1972 | 1972 | <?php |
| 1973 | - echo wpinv_html_text( array( |
|
| 1973 | + echo wpinv_html_text(array( |
|
| 1974 | 1974 | 'id' => 'wpinv_company', |
| 1975 | 1975 | 'name' => 'wpinv_company', |
| 1976 | 1976 | 'value' => $company, |
| 1977 | 1977 | 'class' => 'wpi-input form-control', |
| 1978 | - 'placeholder' => __( 'Company name', 'invoicing' ), |
|
| 1979 | - ) ); |
|
| 1978 | + 'placeholder' => __('Company name', 'invoicing'), |
|
| 1979 | + )); |
|
| 1980 | 1980 | ?> |
| 1981 | 1981 | </p> |
| 1982 | 1982 | <p class="wpi-cart-field wpi-col2 wpi-coll wpi-cart-field-vat"> |
| 1983 | - <label for="wpinv_vat_number" class="wpi-label"><?php echo wp_sprintf( __( '%s Number', 'invoicing' ), $tax_label );?></label> |
|
| 1983 | + <label for="wpinv_vat_number" class="wpi-label"><?php echo wp_sprintf(__('%s Number', 'invoicing'), $tax_label); ?></label> |
|
| 1984 | 1984 | <span id="wpinv_vat_number-wrap"> |
| 1985 | 1985 | <label for="wpinv_vat_number" class="wpinv-label"></label> |
| 1986 | - <input type="text" class="wpi-input form-control" placeholder="<?php echo esc_attr( wp_sprintf( __( '%s number', 'invoicing' ), $tax_label ) );?>" value="<?php esc_attr_e( $vat_number );?>" id="wpinv_vat_number" name="wpinv_vat_number"> |
|
| 1987 | - <span class="wpinv-vat-stat <?php echo $vat_vailidated_class;?>"><i class="fa"></i> <font><?php echo $vat_vailidated_text;?></font></span> |
|
| 1986 | + <input type="text" class="wpi-input form-control" placeholder="<?php echo esc_attr(wp_sprintf(__('%s number', 'invoicing'), $tax_label)); ?>" value="<?php esc_attr_e($vat_number); ?>" id="wpinv_vat_number" name="wpinv_vat_number"> |
|
| 1987 | + <span class="wpinv-vat-stat <?php echo $vat_vailidated_class; ?>"><i class="fa"></i> <font><?php echo $vat_vailidated_text; ?></font></span> |
|
| 1988 | 1988 | </span> |
| 1989 | 1989 | </p> |
| 1990 | 1990 | <p class="wpi-cart-field wpi-col wpi-colf wpi-cart-field-actions"> |
| 1991 | - <button class="btn btn-success btn-sm wpinv-vat-validate" type="button" id="wpinv_vat_validate" style="display:<?php echo $display_validate_btn; ?>"><?php echo wp_sprintf( __("Validate %s Number", 'invoicing'), $tax_label ); ?></button> |
|
| 1992 | - <button class="btn btn-danger btn-sm wpinv-vat-reset" type="button" id="wpinv_vat_reset" style="display:<?php echo $display_reset_btn; ?>"><?php echo wp_sprintf( __("Reset %s", 'invoicing'), $tax_label ); ?></button> |
|
| 1991 | + <button class="btn btn-success btn-sm wpinv-vat-validate" type="button" id="wpinv_vat_validate" style="display:<?php echo $display_validate_btn; ?>"><?php echo wp_sprintf(__("Validate %s Number", 'invoicing'), $tax_label); ?></button> |
|
| 1992 | + <button class="btn btn-danger btn-sm wpinv-vat-reset" type="button" id="wpinv_vat_reset" style="display:<?php echo $display_reset_btn; ?>"><?php echo wp_sprintf(__("Reset %s", 'invoicing'), $tax_label); ?></button> |
|
| 1993 | 1993 | <span class="wpi-vat-box wpi-vat-box-info"><span id="text"></span></span> |
| 1994 | 1994 | <span class="wpi-vat-box wpi-vat-box-error"><span id="text"></span></span> |
| 1995 | - <input type="hidden" name="_wpi_nonce" value="<?php echo wp_create_nonce( 'vat_validation' ) ?>" /> |
|
| 1995 | + <input type="hidden" name="_wpi_nonce" value="<?php echo wp_create_nonce('vat_validation') ?>" /> |
|
| 1996 | 1996 | </p> |
| 1997 | 1997 | </div> |
| 1998 | 1998 | </div> |
@@ -2006,32 +2006,32 @@ discard block |
||
| 2006 | 2006 | </span> |
| 2007 | 2007 | </div> |
| 2008 | 2008 | </div> |
| 2009 | - <?php if ( empty( $wpinv_options['hide_ip_address'] ) ) { |
|
| 2010 | - $ip_link = '<a title="' . esc_attr( __( 'View more details on map', 'invoicing' ) ) . '" target="_blank" href="' . esc_url( admin_url( 'admin-ajax.php?action=wpinv_ip_geolocation&ip=' . $ip_address ) ) . '" class="wpi-ip-address-link">' . $ip_address . ' <i class="fa fa-external-link-square" aria-hidden="true"></i></a>'; |
|
| 2009 | + <?php if (empty($wpinv_options['hide_ip_address'])) { |
|
| 2010 | + $ip_link = '<a title="' . esc_attr(__('View more details on map', 'invoicing')) . '" target="_blank" href="' . esc_url(admin_url('admin-ajax.php?action=wpinv_ip_geolocation&ip=' . $ip_address)) . '" class="wpi-ip-address-link">' . $ip_address . ' <i class="fa fa-external-link-square" aria-hidden="true"></i></a>'; |
|
| 2011 | 2011 | ?> |
| 2012 | 2012 | <div class="wpi-ip-info clearfix panel panel-info"> |
| 2013 | 2013 | <div id="wpinv-fields-box" class="panel-body"> |
| 2014 | - <span><?php echo wp_sprintf( __( "Your IP address is: %s", 'invoicing' ), $ip_link ); ?></span> |
|
| 2014 | + <span><?php echo wp_sprintf(__("Your IP address is: %s", 'invoicing'), $ip_link); ?></span> |
|
| 2015 | 2015 | </div> |
| 2016 | 2016 | </div> |
| 2017 | 2017 | <?php } |
| 2018 | 2018 | } |
| 2019 | 2019 | |
| 2020 | - public static function show_vat_notice( $invoice ) { |
|
| 2021 | - if ( empty( $invoice ) ) { |
|
| 2020 | + public static function show_vat_notice($invoice) { |
|
| 2021 | + if (empty($invoice)) { |
|
| 2022 | 2022 | return NULL; |
| 2023 | 2023 | } |
| 2024 | 2024 | |
| 2025 | - $label = wpinv_get_option( 'vat_invoice_notice_label' ); |
|
| 2026 | - $notice = wpinv_get_option( 'vat_invoice_notice' ); |
|
| 2027 | - if ( $label || $notice ) { |
|
| 2025 | + $label = wpinv_get_option('vat_invoice_notice_label'); |
|
| 2026 | + $notice = wpinv_get_option('vat_invoice_notice'); |
|
| 2027 | + if ($label || $notice) { |
|
| 2028 | 2028 | ?> |
| 2029 | 2029 | <div class="row wpinv-vat-notice"> |
| 2030 | 2030 | <div class="col-sm-12"> |
| 2031 | - <?php if ( $label ) { ?> |
|
| 2032 | - <strong><?php _e( $label, 'invoicing' ); ?></strong> |
|
| 2033 | - <?php } if ( $notice ) { ?> |
|
| 2034 | - <?php echo wpautop( wptexturize( __( $notice, 'invoicing' ) ) ) ?> |
|
| 2031 | + <?php if ($label) { ?> |
|
| 2032 | + <strong><?php _e($label, 'invoicing'); ?></strong> |
|
| 2033 | + <?php } if ($notice) { ?> |
|
| 2034 | + <?php echo wpautop(wptexturize(__($notice, 'invoicing'))) ?> |
|
| 2035 | 2035 | <?php } ?> |
| 2036 | 2036 | </div> |
| 2037 | 2037 | </div> |
@@ -1,6 +1,8 @@ discard block |
||
| 1 | 1 | <?php |
| 2 | 2 | // Exit if accessed directly. |
| 3 | -if (!defined( 'ABSPATH' ) ) exit; |
|
| 3 | +if (!defined( 'ABSPATH' ) ) { |
|
| 4 | + exit; |
|
| 5 | +} |
|
| 4 | 6 | |
| 5 | 7 | class WPInv_EUVat { |
| 6 | 8 | private static $is_ajax = false; |
@@ -672,7 +674,7 @@ discard block |
||
| 672 | 674 | if ( !empty( $load_xml ) && !empty( $load_xml->geoplugin_countryCode ) ) { |
| 673 | 675 | $wpinv_ip_address_country = (string)$load_xml->geoplugin_countryCode; |
| 674 | 676 | } |
| 675 | - }elseif(!empty( $ip )){ |
|
| 677 | + } elseif(!empty( $ip )){ |
|
| 676 | 678 | $url = 'http://ip-api.com/json/' . $ip; |
| 677 | 679 | $response = wp_remote_get($url); |
| 678 | 680 | |
@@ -1468,16 +1470,18 @@ discard block |
||
| 1468 | 1470 | |
| 1469 | 1471 | if ( !empty( $tax_rates ) ) { |
| 1470 | 1472 | foreach ( $tax_rates as $key => $tax_rate ) { |
| 1471 | - if ( $country != $tax_rate['country'] ) |
|
| 1472 | - continue; |
|
| 1473 | + if ( $country != $tax_rate['country'] ) { |
|
| 1474 | + continue; |
|
| 1475 | + } |
|
| 1473 | 1476 | |
| 1474 | 1477 | if ( !empty( $tax_rate['global'] ) ) { |
| 1475 | 1478 | if ( 0 !== $tax_rate['rate'] || !empty( $tax_rate['rate'] ) ) { |
| 1476 | 1479 | $rate = number_format( $tax_rate['rate'], 4 ); |
| 1477 | 1480 | } |
| 1478 | 1481 | } else { |
| 1479 | - if ( empty( $tax_rate['state'] ) || strtolower( $state ) != strtolower( $tax_rate['state'] ) ) |
|
| 1480 | - continue; |
|
| 1482 | + if ( empty( $tax_rate['state'] ) || strtolower( $state ) != strtolower( $tax_rate['state'] ) ) { |
|
| 1483 | + continue; |
|
| 1484 | + } |
|
| 1481 | 1485 | |
| 1482 | 1486 | $state_rate = $tax_rate['rate']; |
| 1483 | 1487 | if ( 0 !== $state_rate || !empty( $state_rate ) ) { |
@@ -1,243 +1,243 @@ discard block |
||
| 1 | 1 | <?php |
| 2 | 2 | if ( ! defined( 'ABSPATH' ) ) { |
| 3 | - exit; |
|
| 3 | + exit; |
|
| 4 | 4 | } |
| 5 | 5 | |
| 6 | 6 | if ( ! class_exists( 'WP_Super_Duper' ) ) { |
| 7 | 7 | |
| 8 | 8 | |
| 9 | - /** |
|
| 10 | - * A Class to be able to create a Widget, Shortcode or Block to be able to output content for WordPress. |
|
| 11 | - * |
|
| 12 | - * Should not be called direct but extended instead. |
|
| 13 | - * |
|
| 14 | - * Class WP_Super_Duper |
|
| 15 | - * @since 1.0.16 change log moved to file change-log.txt - CHANGED |
|
| 16 | - * @ver 1.0.16 |
|
| 17 | - */ |
|
| 18 | - class WP_Super_Duper extends WP_Widget { |
|
| 19 | - |
|
| 20 | - public $version = "1.0.16"; |
|
| 21 | - public $font_awesome_icon_version = "5.11.2"; |
|
| 22 | - public $block_code; |
|
| 23 | - public $options; |
|
| 24 | - public $base_id; |
|
| 25 | - public $arguments = array(); |
|
| 26 | - public $instance = array(); |
|
| 27 | - private $class_name; |
|
| 28 | - |
|
| 29 | - /** |
|
| 30 | - * The relative url to the current folder. |
|
| 31 | - * |
|
| 32 | - * @var string |
|
| 33 | - */ |
|
| 34 | - public $url = ''; |
|
| 35 | - |
|
| 36 | - /** |
|
| 37 | - * Take the array options and use them to build. |
|
| 38 | - */ |
|
| 39 | - public function __construct( $options ) { |
|
| 40 | - global $sd_widgets; |
|
| 41 | - |
|
| 42 | - $sd_widgets[ $options['base_id'] ] = array( |
|
| 43 | - 'name' => $options['name'], |
|
| 44 | - 'class_name' => $options['class_name'] |
|
| 45 | - ); |
|
| 46 | - $this->base_id = $options['base_id']; |
|
| 47 | - // lets filter the options before we do anything |
|
| 48 | - $options = apply_filters( "wp_super_duper_options", $options ); |
|
| 49 | - $options = apply_filters( "wp_super_duper_options_{$this->base_id}", $options ); |
|
| 50 | - $options = $this->add_name_from_key( $options ); |
|
| 51 | - $this->options = $options; |
|
| 52 | - |
|
| 53 | - $this->base_id = $options['base_id']; |
|
| 54 | - $this->arguments = isset( $options['arguments'] ) ? $options['arguments'] : array(); |
|
| 55 | - |
|
| 56 | - // init parent |
|
| 57 | - parent::__construct( $options['base_id'], $options['name'], $options['widget_ops'] ); |
|
| 58 | - |
|
| 59 | - if ( isset( $options['class_name'] ) ) { |
|
| 60 | - // register widget |
|
| 61 | - $this->class_name = $options['class_name']; |
|
| 62 | - |
|
| 63 | - // register shortcode |
|
| 64 | - $this->register_shortcode(); |
|
| 65 | - |
|
| 66 | - // Fusion Builder (avada) support |
|
| 67 | - if( function_exists('fusion_builder_map') ){ $this->register_fusion_element(); } |
|
| 68 | - |
|
| 69 | - // register block |
|
| 70 | - add_action( 'admin_enqueue_scripts', array( $this, 'register_block' ) ); |
|
| 71 | - } |
|
| 72 | - |
|
| 73 | - // add the CSS and JS we need ONCE |
|
| 74 | - global $sd_widget_scripts; |
|
| 75 | - |
|
| 76 | - if ( ! $sd_widget_scripts ) { |
|
| 77 | - wp_add_inline_script( 'admin-widgets', $this->widget_js() ); |
|
| 78 | - wp_add_inline_script( 'customize-controls', $this->widget_js() ); |
|
| 79 | - wp_add_inline_style( 'widgets', $this->widget_css() ); |
|
| 80 | - |
|
| 81 | - $sd_widget_scripts = true; |
|
| 82 | - |
|
| 83 | - // add shortcode insert button once |
|
| 84 | - add_action( 'media_buttons', array( $this, 'shortcode_insert_button' ) ); |
|
| 85 | - // generatepress theme sections compatibility |
|
| 86 | - if ( function_exists( 'generate_sections_sections_metabox' ) ) { |
|
| 87 | - add_action( 'generate_sections_metabox', array( $this, 'shortcode_insert_button_script' ) ); |
|
| 88 | - } |
|
| 89 | - if ( $this->is_preview() ) { |
|
| 90 | - add_action( 'wp_footer', array( $this, 'shortcode_insert_button_script' ) ); |
|
| 91 | - // this makes the insert button work for elementor |
|
| 92 | - add_action( 'elementor/editor/after_enqueue_scripts', array( |
|
| 93 | - $this, |
|
| 94 | - 'shortcode_insert_button_script' |
|
| 95 | - ) ); // for elementor |
|
| 96 | - } |
|
| 97 | - // this makes the insert button work for cornerstone |
|
| 98 | - add_action('wp_print_footer_scripts',array( __CLASS__, 'maybe_cornerstone_builder' )); |
|
| 99 | - |
|
| 100 | - add_action( 'wp_ajax_super_duper_get_widget_settings', array( __CLASS__, 'get_widget_settings' ) ); |
|
| 101 | - add_action( 'wp_ajax_super_duper_get_picker', array( __CLASS__, 'get_picker' ) ); |
|
| 102 | - |
|
| 103 | - // add generator text to admin head |
|
| 104 | - add_action( 'admin_head', array( $this, 'generator' ) ); |
|
| 105 | - } |
|
| 106 | - |
|
| 107 | - do_action( 'wp_super_duper_widget_init', $options, $this ); |
|
| 108 | - } |
|
| 109 | - |
|
| 110 | - public function register_fusion_element(){ |
|
| 111 | - |
|
| 112 | - $options = $this->options; |
|
| 113 | - |
|
| 114 | - if($this->base_id){ |
|
| 115 | - |
|
| 116 | - $params = $this->get_fusion_params(); |
|
| 117 | - |
|
| 118 | - $args = array( |
|
| 119 | - 'name' => $options['name'], |
|
| 120 | - 'shortcode' => $this->base_id, |
|
| 121 | - 'icon' => $options['block-icon'] ? $options['block-icon'] : 'far fa-square', |
|
| 122 | - 'allow_generator' => true, |
|
| 123 | - ); |
|
| 124 | - |
|
| 125 | - if(!empty($params)){ |
|
| 126 | - $args['params'] = $params; |
|
| 127 | - } |
|
| 128 | - |
|
| 129 | - fusion_builder_map($args); |
|
| 130 | - } |
|
| 131 | - |
|
| 132 | - } |
|
| 133 | - |
|
| 134 | - public function get_fusion_params(){ |
|
| 135 | - $params = array(); |
|
| 136 | - $arguments = $this->get_arguments(); |
|
| 137 | - |
|
| 138 | - if(!empty($arguments)){ |
|
| 139 | - foreach($arguments as $key => $val){ |
|
| 140 | - $param = array(); |
|
| 141 | - // type |
|
| 142 | - $param['type'] = str_replace( |
|
| 143 | - array( |
|
| 144 | - "text", |
|
| 145 | - "number", |
|
| 146 | - "email", |
|
| 147 | - "color", |
|
| 148 | - "checkbox" |
|
| 149 | - ), |
|
| 150 | - array( |
|
| 151 | - "textfield", |
|
| 152 | - "textfield", |
|
| 153 | - "textfield", |
|
| 154 | - "colorpicker", |
|
| 155 | - "select", |
|
| 156 | - |
|
| 157 | - ), |
|
| 158 | - $val['type']); |
|
| 159 | - |
|
| 160 | - // heading |
|
| 161 | - $param['heading'] = $val['title']; |
|
| 162 | - |
|
| 163 | - // description |
|
| 164 | - $param['description'] = isset($val['desc']) ? $val['desc'] : ''; |
|
| 165 | - |
|
| 166 | - // param_name |
|
| 167 | - $param['param_name'] = $key; |
|
| 168 | - |
|
| 169 | - // Default |
|
| 170 | - $param['default'] = isset($val['default']) ? $val['default'] : ''; |
|
| 171 | - |
|
| 172 | - // Group |
|
| 173 | - if(isset($val['group'])){ |
|
| 174 | - $param['group'] = $val['group']; |
|
| 175 | - } |
|
| 176 | - |
|
| 177 | - // value |
|
| 178 | - if($val['type'] == 'checkbox'){ |
|
| 179 | - if(isset($val['default']) && $val['default'] == '0'){ |
|
| 180 | - unset($param['default']); |
|
| 181 | - } |
|
| 182 | - $param['value'] = array(''=>__("No"),'1'=>__("Yes")); |
|
| 183 | - }elseif($param['type'] == 'select'){ |
|
| 184 | - $param['value'] = isset($val['options']) ? $val['options'] : array(); |
|
| 185 | - }else{ |
|
| 186 | - $param['value'] = isset($val['default']) ? $val['default'] : ''; |
|
| 187 | - } |
|
| 188 | - |
|
| 189 | - // setup the param |
|
| 190 | - $params[] = $param; |
|
| 191 | - |
|
| 192 | - } |
|
| 193 | - } |
|
| 194 | - |
|
| 195 | - |
|
| 196 | - return $params; |
|
| 197 | - } |
|
| 198 | - |
|
| 199 | - /** |
|
| 200 | - * Maybe insert the shortcode inserter button in the footer if we are in the cornerstone builder |
|
| 201 | - */ |
|
| 202 | - public static function maybe_cornerstone_builder(){ |
|
| 203 | - if(did_action('cornerstone_before_boot_app')){ |
|
| 204 | - self::shortcode_insert_button_script(); |
|
| 205 | - } |
|
| 206 | - } |
|
| 207 | - |
|
| 208 | - /** |
|
| 209 | - * A function to ge the shortcode builder picker html. |
|
| 210 | - * |
|
| 211 | - * @param string $editor_id |
|
| 212 | - * |
|
| 213 | - * @return string |
|
| 214 | - */ |
|
| 215 | - public static function get_picker( $editor_id = '' ) { |
|
| 216 | - |
|
| 217 | - ob_start(); |
|
| 218 | - if ( isset( $_POST['editor_id'] ) ) { |
|
| 219 | - $editor_id = esc_attr( $_POST['editor_id'] ); |
|
| 220 | - } elseif ( isset( $_REQUEST['et_fb'] ) ) { |
|
| 221 | - $editor_id = 'main_content_content_vb_tiny_mce'; |
|
| 222 | - } |
|
| 223 | - |
|
| 224 | - global $sd_widgets; |
|
| 225 | - ?> |
|
| 9 | + /** |
|
| 10 | + * A Class to be able to create a Widget, Shortcode or Block to be able to output content for WordPress. |
|
| 11 | + * |
|
| 12 | + * Should not be called direct but extended instead. |
|
| 13 | + * |
|
| 14 | + * Class WP_Super_Duper |
|
| 15 | + * @since 1.0.16 change log moved to file change-log.txt - CHANGED |
|
| 16 | + * @ver 1.0.16 |
|
| 17 | + */ |
|
| 18 | + class WP_Super_Duper extends WP_Widget { |
|
| 19 | + |
|
| 20 | + public $version = "1.0.16"; |
|
| 21 | + public $font_awesome_icon_version = "5.11.2"; |
|
| 22 | + public $block_code; |
|
| 23 | + public $options; |
|
| 24 | + public $base_id; |
|
| 25 | + public $arguments = array(); |
|
| 26 | + public $instance = array(); |
|
| 27 | + private $class_name; |
|
| 28 | + |
|
| 29 | + /** |
|
| 30 | + * The relative url to the current folder. |
|
| 31 | + * |
|
| 32 | + * @var string |
|
| 33 | + */ |
|
| 34 | + public $url = ''; |
|
| 35 | + |
|
| 36 | + /** |
|
| 37 | + * Take the array options and use them to build. |
|
| 38 | + */ |
|
| 39 | + public function __construct( $options ) { |
|
| 40 | + global $sd_widgets; |
|
| 41 | + |
|
| 42 | + $sd_widgets[ $options['base_id'] ] = array( |
|
| 43 | + 'name' => $options['name'], |
|
| 44 | + 'class_name' => $options['class_name'] |
|
| 45 | + ); |
|
| 46 | + $this->base_id = $options['base_id']; |
|
| 47 | + // lets filter the options before we do anything |
|
| 48 | + $options = apply_filters( "wp_super_duper_options", $options ); |
|
| 49 | + $options = apply_filters( "wp_super_duper_options_{$this->base_id}", $options ); |
|
| 50 | + $options = $this->add_name_from_key( $options ); |
|
| 51 | + $this->options = $options; |
|
| 52 | + |
|
| 53 | + $this->base_id = $options['base_id']; |
|
| 54 | + $this->arguments = isset( $options['arguments'] ) ? $options['arguments'] : array(); |
|
| 55 | + |
|
| 56 | + // init parent |
|
| 57 | + parent::__construct( $options['base_id'], $options['name'], $options['widget_ops'] ); |
|
| 58 | + |
|
| 59 | + if ( isset( $options['class_name'] ) ) { |
|
| 60 | + // register widget |
|
| 61 | + $this->class_name = $options['class_name']; |
|
| 62 | + |
|
| 63 | + // register shortcode |
|
| 64 | + $this->register_shortcode(); |
|
| 65 | + |
|
| 66 | + // Fusion Builder (avada) support |
|
| 67 | + if( function_exists('fusion_builder_map') ){ $this->register_fusion_element(); } |
|
| 68 | + |
|
| 69 | + // register block |
|
| 70 | + add_action( 'admin_enqueue_scripts', array( $this, 'register_block' ) ); |
|
| 71 | + } |
|
| 72 | + |
|
| 73 | + // add the CSS and JS we need ONCE |
|
| 74 | + global $sd_widget_scripts; |
|
| 75 | + |
|
| 76 | + if ( ! $sd_widget_scripts ) { |
|
| 77 | + wp_add_inline_script( 'admin-widgets', $this->widget_js() ); |
|
| 78 | + wp_add_inline_script( 'customize-controls', $this->widget_js() ); |
|
| 79 | + wp_add_inline_style( 'widgets', $this->widget_css() ); |
|
| 80 | + |
|
| 81 | + $sd_widget_scripts = true; |
|
| 82 | + |
|
| 83 | + // add shortcode insert button once |
|
| 84 | + add_action( 'media_buttons', array( $this, 'shortcode_insert_button' ) ); |
|
| 85 | + // generatepress theme sections compatibility |
|
| 86 | + if ( function_exists( 'generate_sections_sections_metabox' ) ) { |
|
| 87 | + add_action( 'generate_sections_metabox', array( $this, 'shortcode_insert_button_script' ) ); |
|
| 88 | + } |
|
| 89 | + if ( $this->is_preview() ) { |
|
| 90 | + add_action( 'wp_footer', array( $this, 'shortcode_insert_button_script' ) ); |
|
| 91 | + // this makes the insert button work for elementor |
|
| 92 | + add_action( 'elementor/editor/after_enqueue_scripts', array( |
|
| 93 | + $this, |
|
| 94 | + 'shortcode_insert_button_script' |
|
| 95 | + ) ); // for elementor |
|
| 96 | + } |
|
| 97 | + // this makes the insert button work for cornerstone |
|
| 98 | + add_action('wp_print_footer_scripts',array( __CLASS__, 'maybe_cornerstone_builder' )); |
|
| 99 | + |
|
| 100 | + add_action( 'wp_ajax_super_duper_get_widget_settings', array( __CLASS__, 'get_widget_settings' ) ); |
|
| 101 | + add_action( 'wp_ajax_super_duper_get_picker', array( __CLASS__, 'get_picker' ) ); |
|
| 102 | + |
|
| 103 | + // add generator text to admin head |
|
| 104 | + add_action( 'admin_head', array( $this, 'generator' ) ); |
|
| 105 | + } |
|
| 106 | + |
|
| 107 | + do_action( 'wp_super_duper_widget_init', $options, $this ); |
|
| 108 | + } |
|
| 109 | + |
|
| 110 | + public function register_fusion_element(){ |
|
| 111 | + |
|
| 112 | + $options = $this->options; |
|
| 113 | + |
|
| 114 | + if($this->base_id){ |
|
| 115 | + |
|
| 116 | + $params = $this->get_fusion_params(); |
|
| 117 | + |
|
| 118 | + $args = array( |
|
| 119 | + 'name' => $options['name'], |
|
| 120 | + 'shortcode' => $this->base_id, |
|
| 121 | + 'icon' => $options['block-icon'] ? $options['block-icon'] : 'far fa-square', |
|
| 122 | + 'allow_generator' => true, |
|
| 123 | + ); |
|
| 124 | + |
|
| 125 | + if(!empty($params)){ |
|
| 126 | + $args['params'] = $params; |
|
| 127 | + } |
|
| 128 | + |
|
| 129 | + fusion_builder_map($args); |
|
| 130 | + } |
|
| 131 | + |
|
| 132 | + } |
|
| 133 | + |
|
| 134 | + public function get_fusion_params(){ |
|
| 135 | + $params = array(); |
|
| 136 | + $arguments = $this->get_arguments(); |
|
| 137 | + |
|
| 138 | + if(!empty($arguments)){ |
|
| 139 | + foreach($arguments as $key => $val){ |
|
| 140 | + $param = array(); |
|
| 141 | + // type |
|
| 142 | + $param['type'] = str_replace( |
|
| 143 | + array( |
|
| 144 | + "text", |
|
| 145 | + "number", |
|
| 146 | + "email", |
|
| 147 | + "color", |
|
| 148 | + "checkbox" |
|
| 149 | + ), |
|
| 150 | + array( |
|
| 151 | + "textfield", |
|
| 152 | + "textfield", |
|
| 153 | + "textfield", |
|
| 154 | + "colorpicker", |
|
| 155 | + "select", |
|
| 156 | + |
|
| 157 | + ), |
|
| 158 | + $val['type']); |
|
| 159 | + |
|
| 160 | + // heading |
|
| 161 | + $param['heading'] = $val['title']; |
|
| 162 | + |
|
| 163 | + // description |
|
| 164 | + $param['description'] = isset($val['desc']) ? $val['desc'] : ''; |
|
| 165 | + |
|
| 166 | + // param_name |
|
| 167 | + $param['param_name'] = $key; |
|
| 168 | + |
|
| 169 | + // Default |
|
| 170 | + $param['default'] = isset($val['default']) ? $val['default'] : ''; |
|
| 171 | + |
|
| 172 | + // Group |
|
| 173 | + if(isset($val['group'])){ |
|
| 174 | + $param['group'] = $val['group']; |
|
| 175 | + } |
|
| 176 | + |
|
| 177 | + // value |
|
| 178 | + if($val['type'] == 'checkbox'){ |
|
| 179 | + if(isset($val['default']) && $val['default'] == '0'){ |
|
| 180 | + unset($param['default']); |
|
| 181 | + } |
|
| 182 | + $param['value'] = array(''=>__("No"),'1'=>__("Yes")); |
|
| 183 | + }elseif($param['type'] == 'select'){ |
|
| 184 | + $param['value'] = isset($val['options']) ? $val['options'] : array(); |
|
| 185 | + }else{ |
|
| 186 | + $param['value'] = isset($val['default']) ? $val['default'] : ''; |
|
| 187 | + } |
|
| 188 | + |
|
| 189 | + // setup the param |
|
| 190 | + $params[] = $param; |
|
| 191 | + |
|
| 192 | + } |
|
| 193 | + } |
|
| 194 | + |
|
| 195 | + |
|
| 196 | + return $params; |
|
| 197 | + } |
|
| 198 | + |
|
| 199 | + /** |
|
| 200 | + * Maybe insert the shortcode inserter button in the footer if we are in the cornerstone builder |
|
| 201 | + */ |
|
| 202 | + public static function maybe_cornerstone_builder(){ |
|
| 203 | + if(did_action('cornerstone_before_boot_app')){ |
|
| 204 | + self::shortcode_insert_button_script(); |
|
| 205 | + } |
|
| 206 | + } |
|
| 207 | + |
|
| 208 | + /** |
|
| 209 | + * A function to ge the shortcode builder picker html. |
|
| 210 | + * |
|
| 211 | + * @param string $editor_id |
|
| 212 | + * |
|
| 213 | + * @return string |
|
| 214 | + */ |
|
| 215 | + public static function get_picker( $editor_id = '' ) { |
|
| 216 | + |
|
| 217 | + ob_start(); |
|
| 218 | + if ( isset( $_POST['editor_id'] ) ) { |
|
| 219 | + $editor_id = esc_attr( $_POST['editor_id'] ); |
|
| 220 | + } elseif ( isset( $_REQUEST['et_fb'] ) ) { |
|
| 221 | + $editor_id = 'main_content_content_vb_tiny_mce'; |
|
| 222 | + } |
|
| 223 | + |
|
| 224 | + global $sd_widgets; |
|
| 225 | + ?> |
|
| 226 | 226 | |
| 227 | 227 | <div class="sd-shortcode-left-wrap"> |
| 228 | 228 | <?php |
| 229 | - ksort( $sd_widgets ); |
|
| 230 | - // print_r($sd_widgets);exit; |
|
| 231 | - if ( ! empty( $sd_widgets ) ) { |
|
| 232 | - echo '<select class="widefat" onchange="sd_get_shortcode_options(this);">'; |
|
| 233 | - echo "<option>" . __( 'Select shortcode' ) . "</option>"; |
|
| 234 | - foreach ( $sd_widgets as $shortcode => $class ) { |
|
| 235 | - echo "<option value='" . esc_attr( $shortcode ) . "'>" . esc_attr( $shortcode ) . " (" . esc_attr( $class['name'] ) . ")</option>"; |
|
| 236 | - } |
|
| 237 | - echo "</select>"; |
|
| 238 | - |
|
| 239 | - } |
|
| 240 | - ?> |
|
| 229 | + ksort( $sd_widgets ); |
|
| 230 | + // print_r($sd_widgets);exit; |
|
| 231 | + if ( ! empty( $sd_widgets ) ) { |
|
| 232 | + echo '<select class="widefat" onchange="sd_get_shortcode_options(this);">'; |
|
| 233 | + echo "<option>" . __( 'Select shortcode' ) . "</option>"; |
|
| 234 | + foreach ( $sd_widgets as $shortcode => $class ) { |
|
| 235 | + echo "<option value='" . esc_attr( $shortcode ) . "'>" . esc_attr( $shortcode ) . " (" . esc_attr( $class['name'] ) . ")</option>"; |
|
| 236 | + } |
|
| 237 | + echo "</select>"; |
|
| 238 | + |
|
| 239 | + } |
|
| 240 | + ?> |
|
| 241 | 241 | <div class="sd-shortcode-settings"></div> |
| 242 | 242 | |
| 243 | 243 | </div> |
@@ -248,8 +248,8 @@ discard block |
||
| 248 | 248 | <?php if ( $editor_id != '' ) { ?> |
| 249 | 249 | <button class="button sd-insert-shortcode-button" |
| 250 | 250 | onclick="sd_insert_shortcode(<?php if ( ! empty( $editor_id ) ) { |
| 251 | - echo "'" . $editor_id . "'"; |
|
| 252 | - } ?>)"><?php _e( 'Insert shortcode' ); ?></button> |
|
| 251 | + echo "'" . $editor_id . "'"; |
|
| 252 | + } ?>)"><?php _e( 'Insert shortcode' ); ?></button> |
|
| 253 | 253 | <?php } ?> |
| 254 | 254 | <button class="button" |
| 255 | 255 | onclick="sd_copy_to_clipboard()"><?php _e( 'Copy shortcode' ); ?></button> |
@@ -257,134 +257,134 @@ discard block |
||
| 257 | 257 | </div> |
| 258 | 258 | <?php |
| 259 | 259 | |
| 260 | - $html = ob_get_clean(); |
|
| 261 | - |
|
| 262 | - if ( wp_doing_ajax() ) { |
|
| 263 | - echo $html; |
|
| 264 | - $should_die = true; |
|
| 265 | - |
|
| 266 | - // some builder get the editor via ajax so we should not die on those ocasions |
|
| 267 | - $dont_die = array( |
|
| 268 | - 'parent_tag',// WP Bakery |
|
| 269 | - 'avia_request' // enfold |
|
| 270 | - ); |
|
| 271 | - |
|
| 272 | - foreach ( $dont_die as $request ) { |
|
| 273 | - if ( isset( $_REQUEST[ $request ] ) ) { |
|
| 274 | - $should_die = false; |
|
| 275 | - } |
|
| 276 | - } |
|
| 277 | - |
|
| 278 | - if ( $should_die ) { |
|
| 279 | - wp_die(); |
|
| 280 | - } |
|
| 281 | - |
|
| 282 | - } else { |
|
| 283 | - return $html; |
|
| 284 | - } |
|
| 285 | - |
|
| 286 | - return ''; |
|
| 287 | - |
|
| 288 | - } |
|
| 289 | - |
|
| 290 | - /** |
|
| 291 | - * Output the version in the admin header. |
|
| 292 | - */ |
|
| 293 | - public function generator() { |
|
| 294 | - echo '<meta name="generator" content="WP Super Duper v' . $this->version . '" />'; |
|
| 295 | - } |
|
| 296 | - |
|
| 297 | - /** |
|
| 298 | - * Get widget settings. |
|
| 299 | - * |
|
| 300 | - * @since 1.0.0 |
|
| 301 | - */ |
|
| 302 | - public static function get_widget_settings() { |
|
| 303 | - global $sd_widgets; |
|
| 304 | - |
|
| 305 | - $shortcode = isset( $_REQUEST['shortcode'] ) && $_REQUEST['shortcode'] ? sanitize_title_with_dashes( $_REQUEST['shortcode'] ) : ''; |
|
| 306 | - if ( ! $shortcode ) { |
|
| 307 | - wp_die(); |
|
| 308 | - } |
|
| 309 | - $widget_args = isset( $sd_widgets[ $shortcode ] ) ? $sd_widgets[ $shortcode ] : ''; |
|
| 310 | - if ( ! $widget_args ) { |
|
| 311 | - wp_die(); |
|
| 312 | - } |
|
| 313 | - $class_name = isset( $widget_args['class_name'] ) && $widget_args['class_name'] ? $widget_args['class_name'] : ''; |
|
| 314 | - if ( ! $class_name ) { |
|
| 315 | - wp_die(); |
|
| 316 | - } |
|
| 317 | - |
|
| 318 | - // invoke an instance method |
|
| 319 | - $widget = new $class_name; |
|
| 320 | - |
|
| 321 | - ob_start(); |
|
| 322 | - $widget->form( array() ); |
|
| 323 | - $form = ob_get_clean(); |
|
| 324 | - echo "<form id='$shortcode'>" . $form . "<div class=\"widget-control-save\"></div></form>"; |
|
| 325 | - echo "<style>" . $widget->widget_css() . "</style>"; |
|
| 326 | - echo "<script>" . $widget->widget_js() . "</script>"; |
|
| 327 | - ?> |
|
| 260 | + $html = ob_get_clean(); |
|
| 261 | + |
|
| 262 | + if ( wp_doing_ajax() ) { |
|
| 263 | + echo $html; |
|
| 264 | + $should_die = true; |
|
| 265 | + |
|
| 266 | + // some builder get the editor via ajax so we should not die on those ocasions |
|
| 267 | + $dont_die = array( |
|
| 268 | + 'parent_tag',// WP Bakery |
|
| 269 | + 'avia_request' // enfold |
|
| 270 | + ); |
|
| 271 | + |
|
| 272 | + foreach ( $dont_die as $request ) { |
|
| 273 | + if ( isset( $_REQUEST[ $request ] ) ) { |
|
| 274 | + $should_die = false; |
|
| 275 | + } |
|
| 276 | + } |
|
| 277 | + |
|
| 278 | + if ( $should_die ) { |
|
| 279 | + wp_die(); |
|
| 280 | + } |
|
| 281 | + |
|
| 282 | + } else { |
|
| 283 | + return $html; |
|
| 284 | + } |
|
| 285 | + |
|
| 286 | + return ''; |
|
| 287 | + |
|
| 288 | + } |
|
| 289 | + |
|
| 290 | + /** |
|
| 291 | + * Output the version in the admin header. |
|
| 292 | + */ |
|
| 293 | + public function generator() { |
|
| 294 | + echo '<meta name="generator" content="WP Super Duper v' . $this->version . '" />'; |
|
| 295 | + } |
|
| 296 | + |
|
| 297 | + /** |
|
| 298 | + * Get widget settings. |
|
| 299 | + * |
|
| 300 | + * @since 1.0.0 |
|
| 301 | + */ |
|
| 302 | + public static function get_widget_settings() { |
|
| 303 | + global $sd_widgets; |
|
| 304 | + |
|
| 305 | + $shortcode = isset( $_REQUEST['shortcode'] ) && $_REQUEST['shortcode'] ? sanitize_title_with_dashes( $_REQUEST['shortcode'] ) : ''; |
|
| 306 | + if ( ! $shortcode ) { |
|
| 307 | + wp_die(); |
|
| 308 | + } |
|
| 309 | + $widget_args = isset( $sd_widgets[ $shortcode ] ) ? $sd_widgets[ $shortcode ] : ''; |
|
| 310 | + if ( ! $widget_args ) { |
|
| 311 | + wp_die(); |
|
| 312 | + } |
|
| 313 | + $class_name = isset( $widget_args['class_name'] ) && $widget_args['class_name'] ? $widget_args['class_name'] : ''; |
|
| 314 | + if ( ! $class_name ) { |
|
| 315 | + wp_die(); |
|
| 316 | + } |
|
| 317 | + |
|
| 318 | + // invoke an instance method |
|
| 319 | + $widget = new $class_name; |
|
| 320 | + |
|
| 321 | + ob_start(); |
|
| 322 | + $widget->form( array() ); |
|
| 323 | + $form = ob_get_clean(); |
|
| 324 | + echo "<form id='$shortcode'>" . $form . "<div class=\"widget-control-save\"></div></form>"; |
|
| 325 | + echo "<style>" . $widget->widget_css() . "</style>"; |
|
| 326 | + echo "<script>" . $widget->widget_js() . "</script>"; |
|
| 327 | + ?> |
|
| 328 | 328 | <?php |
| 329 | - wp_die(); |
|
| 330 | - } |
|
| 331 | - |
|
| 332 | - /** |
|
| 333 | - * Insert shortcode builder button to classic editor (not inside Gutenberg, not needed). |
|
| 334 | - * |
|
| 335 | - * @since 1.0.0 |
|
| 336 | - * |
|
| 337 | - * @param string $editor_id Optional. Shortcode editor id. Default null. |
|
| 338 | - * @param string $insert_shortcode_function Optional. Insert shotcode function. Default null. |
|
| 339 | - */ |
|
| 340 | - public static function shortcode_insert_button( $editor_id = '', $insert_shortcode_function = '' ) { |
|
| 341 | - global $sd_widgets, $shortcode_insert_button_once; |
|
| 342 | - if ( $shortcode_insert_button_once ) { |
|
| 343 | - return; |
|
| 344 | - } |
|
| 345 | - add_thickbox(); |
|
| 346 | - |
|
| 347 | - |
|
| 348 | - /** |
|
| 349 | - * Cornerstone makes us play dirty tricks :/ |
|
| 350 | - * All media_buttons are removed via JS unless they are two specific id's so we wrap our content in this ID so it is not removed. |
|
| 351 | - */ |
|
| 352 | - if ( function_exists( 'cornerstone_plugin_init' ) && ! is_admin() ) { |
|
| 353 | - echo '<span id="insert-media-button">'; |
|
| 354 | - } |
|
| 355 | - |
|
| 356 | - echo self::shortcode_button( 'this', 'true' ); |
|
| 357 | - |
|
| 358 | - // see opening note |
|
| 359 | - if ( function_exists( 'cornerstone_plugin_init' ) && ! is_admin() ) { |
|
| 360 | - echo '</span>'; // end #insert-media-button |
|
| 361 | - } |
|
| 362 | - |
|
| 363 | - // Add separate script for generatepress theme sections |
|
| 364 | - if ( function_exists( 'generate_sections_sections_metabox' ) && did_action( 'generate_sections_metabox' ) ) { |
|
| 365 | - } else { |
|
| 366 | - self::shortcode_insert_button_script( $editor_id, $insert_shortcode_function ); |
|
| 367 | - } |
|
| 368 | - |
|
| 369 | - $shortcode_insert_button_once = true; |
|
| 370 | - } |
|
| 371 | - |
|
| 372 | - /** |
|
| 373 | - * Gets the shortcode insert button html. |
|
| 374 | - * |
|
| 375 | - * @param string $id |
|
| 376 | - * @param string $search_for_id |
|
| 377 | - * |
|
| 378 | - * @return mixed |
|
| 379 | - */ |
|
| 380 | - public static function shortcode_button( $id = '', $search_for_id = '' ) { |
|
| 381 | - ob_start(); |
|
| 382 | - ?> |
|
| 329 | + wp_die(); |
|
| 330 | + } |
|
| 331 | + |
|
| 332 | + /** |
|
| 333 | + * Insert shortcode builder button to classic editor (not inside Gutenberg, not needed). |
|
| 334 | + * |
|
| 335 | + * @since 1.0.0 |
|
| 336 | + * |
|
| 337 | + * @param string $editor_id Optional. Shortcode editor id. Default null. |
|
| 338 | + * @param string $insert_shortcode_function Optional. Insert shotcode function. Default null. |
|
| 339 | + */ |
|
| 340 | + public static function shortcode_insert_button( $editor_id = '', $insert_shortcode_function = '' ) { |
|
| 341 | + global $sd_widgets, $shortcode_insert_button_once; |
|
| 342 | + if ( $shortcode_insert_button_once ) { |
|
| 343 | + return; |
|
| 344 | + } |
|
| 345 | + add_thickbox(); |
|
| 346 | + |
|
| 347 | + |
|
| 348 | + /** |
|
| 349 | + * Cornerstone makes us play dirty tricks :/ |
|
| 350 | + * All media_buttons are removed via JS unless they are two specific id's so we wrap our content in this ID so it is not removed. |
|
| 351 | + */ |
|
| 352 | + if ( function_exists( 'cornerstone_plugin_init' ) && ! is_admin() ) { |
|
| 353 | + echo '<span id="insert-media-button">'; |
|
| 354 | + } |
|
| 355 | + |
|
| 356 | + echo self::shortcode_button( 'this', 'true' ); |
|
| 357 | + |
|
| 358 | + // see opening note |
|
| 359 | + if ( function_exists( 'cornerstone_plugin_init' ) && ! is_admin() ) { |
|
| 360 | + echo '</span>'; // end #insert-media-button |
|
| 361 | + } |
|
| 362 | + |
|
| 363 | + // Add separate script for generatepress theme sections |
|
| 364 | + if ( function_exists( 'generate_sections_sections_metabox' ) && did_action( 'generate_sections_metabox' ) ) { |
|
| 365 | + } else { |
|
| 366 | + self::shortcode_insert_button_script( $editor_id, $insert_shortcode_function ); |
|
| 367 | + } |
|
| 368 | + |
|
| 369 | + $shortcode_insert_button_once = true; |
|
| 370 | + } |
|
| 371 | + |
|
| 372 | + /** |
|
| 373 | + * Gets the shortcode insert button html. |
|
| 374 | + * |
|
| 375 | + * @param string $id |
|
| 376 | + * @param string $search_for_id |
|
| 377 | + * |
|
| 378 | + * @return mixed |
|
| 379 | + */ |
|
| 380 | + public static function shortcode_button( $id = '', $search_for_id = '' ) { |
|
| 381 | + ob_start(); |
|
| 382 | + ?> |
|
| 383 | 383 | <span class="sd-lable-shortcode-inserter"> |
| 384 | 384 | <a onclick="sd_ajax_get_picker(<?php echo $id; |
| 385 | - if ( $search_for_id ) { |
|
| 386 | - echo "," . $search_for_id; |
|
| 387 | - } ?>);" href="#TB_inline?width=100%&height=550&inlineId=super-duper-content-ajaxed" |
|
| 385 | + if ( $search_for_id ) { |
|
| 386 | + echo "," . $search_for_id; |
|
| 387 | + } ?>);" href="#TB_inline?width=100%&height=550&inlineId=super-duper-content-ajaxed" |
|
| 388 | 388 | class="thickbox button super-duper-content-open" title="Add Shortcode"> |
| 389 | 389 | <span style="vertical-align: middle;line-height: 18px;font-size: 20px;" |
| 390 | 390 | class="dashicons dashicons-screenoptions"></span> |
@@ -395,21 +395,21 @@ discard block |
||
| 395 | 395 | </span> |
| 396 | 396 | |
| 397 | 397 | <?php |
| 398 | - $html = ob_get_clean(); |
|
| 399 | - |
|
| 400 | - // remove line breaks so we can use it in js |
|
| 401 | - return preg_replace( "/\r|\n/", "", trim( $html ) ); |
|
| 402 | - } |
|
| 403 | - |
|
| 404 | - /** |
|
| 405 | - * Makes SD work with the siteOrigin page builder. |
|
| 406 | - * |
|
| 407 | - * @since 1.0.6 |
|
| 408 | - * @return mixed |
|
| 409 | - */ |
|
| 410 | - public static function siteorigin_js() { |
|
| 411 | - ob_start(); |
|
| 412 | - ?> |
|
| 398 | + $html = ob_get_clean(); |
|
| 399 | + |
|
| 400 | + // remove line breaks so we can use it in js |
|
| 401 | + return preg_replace( "/\r|\n/", "", trim( $html ) ); |
|
| 402 | + } |
|
| 403 | + |
|
| 404 | + /** |
|
| 405 | + * Makes SD work with the siteOrigin page builder. |
|
| 406 | + * |
|
| 407 | + * @since 1.0.6 |
|
| 408 | + * @return mixed |
|
| 409 | + */ |
|
| 410 | + public static function siteorigin_js() { |
|
| 411 | + ob_start(); |
|
| 412 | + ?> |
|
| 413 | 413 | <script> |
| 414 | 414 | /** |
| 415 | 415 | * Check a form to see what items shoudl be shown or hidden. |
@@ -487,28 +487,28 @@ discard block |
||
| 487 | 487 | }); |
| 488 | 488 | </script> |
| 489 | 489 | <?php |
| 490 | - $output = ob_get_clean(); |
|
| 490 | + $output = ob_get_clean(); |
|
| 491 | 491 | |
| 492 | - /* |
|
| 492 | + /* |
|
| 493 | 493 | * We only add the <script> tags for code highlighting, so we strip them from the output. |
| 494 | 494 | */ |
| 495 | 495 | |
| 496 | - return str_replace( array( |
|
| 497 | - '<script>', |
|
| 498 | - '</script>' |
|
| 499 | - ), '', $output ); |
|
| 500 | - } |
|
| 501 | - |
|
| 502 | - /** |
|
| 503 | - * Output the JS and CSS for the shortcode insert button. |
|
| 504 | - * |
|
| 505 | - * @since 1.0.6 |
|
| 506 | - * |
|
| 507 | - * @param string $editor_id |
|
| 508 | - * @param string $insert_shortcode_function |
|
| 509 | - */ |
|
| 510 | - public static function shortcode_insert_button_script( $editor_id = '', $insert_shortcode_function = '' ) { |
|
| 511 | - ?> |
|
| 496 | + return str_replace( array( |
|
| 497 | + '<script>', |
|
| 498 | + '</script>' |
|
| 499 | + ), '', $output ); |
|
| 500 | + } |
|
| 501 | + |
|
| 502 | + /** |
|
| 503 | + * Output the JS and CSS for the shortcode insert button. |
|
| 504 | + * |
|
| 505 | + * @since 1.0.6 |
|
| 506 | + * |
|
| 507 | + * @param string $editor_id |
|
| 508 | + * @param string $insert_shortcode_function |
|
| 509 | + */ |
|
| 510 | + public static function shortcode_insert_button_script( $editor_id = '', $insert_shortcode_function = '' ) { |
|
| 511 | + ?> |
|
| 512 | 512 | <style> |
| 513 | 513 | .sd-shortcode-left-wrap { |
| 514 | 514 | float: left; |
@@ -632,35 +632,35 @@ discard block |
||
| 632 | 632 | <?php } ?> |
| 633 | 633 | </style> |
| 634 | 634 | <?php |
| 635 | - if ( class_exists( 'SiteOrigin_Panels' ) ) { |
|
| 636 | - echo "<script>" . self::siteorigin_js() . "</script>"; |
|
| 637 | - } |
|
| 638 | - ?> |
|
| 635 | + if ( class_exists( 'SiteOrigin_Panels' ) ) { |
|
| 636 | + echo "<script>" . self::siteorigin_js() . "</script>"; |
|
| 637 | + } |
|
| 638 | + ?> |
|
| 639 | 639 | <script> |
| 640 | 640 | <?php |
| 641 | - if(! empty( $insert_shortcode_function )){ |
|
| 642 | - echo $insert_shortcode_function; |
|
| 643 | - }else{ |
|
| 644 | - |
|
| 645 | - /** |
|
| 646 | - * Function for super duper insert shortcode. |
|
| 647 | - * |
|
| 648 | - * @since 1.0.0 |
|
| 649 | - */ |
|
| 650 | - ?> |
|
| 641 | + if(! empty( $insert_shortcode_function )){ |
|
| 642 | + echo $insert_shortcode_function; |
|
| 643 | + }else{ |
|
| 644 | + |
|
| 645 | + /** |
|
| 646 | + * Function for super duper insert shortcode. |
|
| 647 | + * |
|
| 648 | + * @since 1.0.0 |
|
| 649 | + */ |
|
| 650 | + ?> |
|
| 651 | 651 | function sd_insert_shortcode($editor_id) { |
| 652 | 652 | $shortcode = jQuery('#TB_ajaxContent #sd-shortcode-output').val(); |
| 653 | 653 | if ($shortcode) { |
| 654 | 654 | if (!$editor_id) { |
| 655 | 655 | <?php |
| 656 | - if ( isset( $_REQUEST['et_fb'] ) ) { |
|
| 657 | - echo '$editor_id = "#main_content_content_vb_tiny_mce";'; |
|
| 658 | - } elseif ( isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'elementor' ) { |
|
| 659 | - echo '$editor_id = "#elementor-controls .wp-editor-container textarea";'; |
|
| 660 | - } else { |
|
| 661 | - echo '$editor_id = "#wp-content-editor-container textarea";'; |
|
| 662 | - } |
|
| 663 | - ?> |
|
| 656 | + if ( isset( $_REQUEST['et_fb'] ) ) { |
|
| 657 | + echo '$editor_id = "#main_content_content_vb_tiny_mce";'; |
|
| 658 | + } elseif ( isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'elementor' ) { |
|
| 659 | + echo '$editor_id = "#elementor-controls .wp-editor-container textarea";'; |
|
| 660 | + } else { |
|
| 661 | + echo '$editor_id = "#wp-content-editor-container textarea";'; |
|
| 662 | + } |
|
| 663 | + ?> |
|
| 664 | 664 | } else { |
| 665 | 665 | $editor_id = '#' + $editor_id; |
| 666 | 666 | } |
@@ -986,16 +986,16 @@ discard block |
||
| 986 | 986 | |
| 987 | 987 | </script> |
| 988 | 988 | <?php |
| 989 | - } |
|
| 990 | - |
|
| 991 | - /** |
|
| 992 | - * Gets some CSS for the widgets screen. |
|
| 993 | - * |
|
| 994 | - * @return mixed |
|
| 995 | - */ |
|
| 996 | - public function widget_css() { |
|
| 997 | - ob_start(); |
|
| 998 | - ?> |
|
| 989 | + } |
|
| 990 | + |
|
| 991 | + /** |
|
| 992 | + * Gets some CSS for the widgets screen. |
|
| 993 | + * |
|
| 994 | + * @return mixed |
|
| 995 | + */ |
|
| 996 | + public function widget_css() { |
|
| 997 | + ob_start(); |
|
| 998 | + ?> |
|
| 999 | 999 | <style> |
| 1000 | 1000 | .sd-advanced-setting { |
| 1001 | 1001 | display: none; |
@@ -1030,26 +1030,26 @@ discard block |
||
| 1030 | 1030 | } |
| 1031 | 1031 | </style> |
| 1032 | 1032 | <?php |
| 1033 | - $output = ob_get_clean(); |
|
| 1033 | + $output = ob_get_clean(); |
|
| 1034 | 1034 | |
| 1035 | - /* |
|
| 1035 | + /* |
|
| 1036 | 1036 | * We only add the <script> tags for code highlighting, so we strip them from the output. |
| 1037 | 1037 | */ |
| 1038 | 1038 | |
| 1039 | - return str_replace( array( |
|
| 1040 | - '<style>', |
|
| 1041 | - '</style>' |
|
| 1042 | - ), '', $output ); |
|
| 1043 | - } |
|
| 1044 | - |
|
| 1045 | - /** |
|
| 1046 | - * Gets some JS for the widgets screen. |
|
| 1047 | - * |
|
| 1048 | - * @return mixed |
|
| 1049 | - */ |
|
| 1050 | - public function widget_js() { |
|
| 1051 | - ob_start(); |
|
| 1052 | - ?> |
|
| 1039 | + return str_replace( array( |
|
| 1040 | + '<style>', |
|
| 1041 | + '</style>' |
|
| 1042 | + ), '', $output ); |
|
| 1043 | + } |
|
| 1044 | + |
|
| 1045 | + /** |
|
| 1046 | + * Gets some JS for the widgets screen. |
|
| 1047 | + * |
|
| 1048 | + * @return mixed |
|
| 1049 | + */ |
|
| 1050 | + public function widget_js() { |
|
| 1051 | + ob_start(); |
|
| 1052 | + ?> |
|
| 1053 | 1053 | <script> |
| 1054 | 1054 | |
| 1055 | 1055 | /** |
@@ -1204,397 +1204,397 @@ discard block |
||
| 1204 | 1204 | <?php do_action( 'wp_super_duper_widget_js', $this ); ?> |
| 1205 | 1205 | </script> |
| 1206 | 1206 | <?php |
| 1207 | - $output = ob_get_clean(); |
|
| 1207 | + $output = ob_get_clean(); |
|
| 1208 | 1208 | |
| 1209 | - /* |
|
| 1209 | + /* |
|
| 1210 | 1210 | * We only add the <script> tags for code highlighting, so we strip them from the output. |
| 1211 | 1211 | */ |
| 1212 | 1212 | |
| 1213 | - return str_replace( array( |
|
| 1214 | - '<script>', |
|
| 1215 | - '</script>' |
|
| 1216 | - ), '', $output ); |
|
| 1217 | - } |
|
| 1218 | - |
|
| 1219 | - |
|
| 1220 | - /** |
|
| 1221 | - * Set the name from the argument key. |
|
| 1222 | - * |
|
| 1223 | - * @param $options |
|
| 1224 | - * |
|
| 1225 | - * @return mixed |
|
| 1226 | - */ |
|
| 1227 | - private function add_name_from_key( $options, $arguments = false ) { |
|
| 1228 | - if ( ! empty( $options['arguments'] ) ) { |
|
| 1229 | - foreach ( $options['arguments'] as $key => $val ) { |
|
| 1230 | - $options['arguments'][ $key ]['name'] = $key; |
|
| 1231 | - } |
|
| 1232 | - } elseif ( $arguments && is_array( $options ) && ! empty( $options ) ) { |
|
| 1233 | - foreach ( $options as $key => $val ) { |
|
| 1234 | - $options[ $key ]['name'] = $key; |
|
| 1235 | - } |
|
| 1236 | - } |
|
| 1237 | - |
|
| 1238 | - return $options; |
|
| 1239 | - } |
|
| 1240 | - |
|
| 1241 | - /** |
|
| 1242 | - * Register the parent shortcode. |
|
| 1243 | - * |
|
| 1244 | - * @since 1.0.0 |
|
| 1245 | - */ |
|
| 1246 | - public function register_shortcode() { |
|
| 1247 | - add_shortcode( $this->base_id, array( $this, 'shortcode_output' ) ); |
|
| 1248 | - add_action( 'wp_ajax_super_duper_output_shortcode', array( __CLASS__, 'render_shortcode' ) ); |
|
| 1249 | - } |
|
| 1250 | - |
|
| 1251 | - /** |
|
| 1252 | - * Render the shortcode via ajax so we can return it to Gutenberg. |
|
| 1253 | - * |
|
| 1254 | - * @since 1.0.0 |
|
| 1255 | - */ |
|
| 1256 | - public static function render_shortcode() { |
|
| 1257 | - |
|
| 1258 | - check_ajax_referer( 'super_duper_output_shortcode', '_ajax_nonce', true ); |
|
| 1259 | - if ( ! current_user_can( 'manage_options' ) ) { |
|
| 1260 | - wp_die(); |
|
| 1261 | - } |
|
| 1262 | - |
|
| 1263 | - // we might need the $post value here so lets set it. |
|
| 1264 | - if ( isset( $_POST['post_id'] ) && $_POST['post_id'] ) { |
|
| 1265 | - $post_obj = get_post( absint( $_POST['post_id'] ) ); |
|
| 1266 | - if ( ! empty( $post_obj ) && empty( $post ) ) { |
|
| 1267 | - global $post; |
|
| 1268 | - $post = $post_obj; |
|
| 1269 | - } |
|
| 1270 | - } |
|
| 1271 | - |
|
| 1272 | - if ( isset( $_POST['shortcode'] ) && $_POST['shortcode'] ) { |
|
| 1273 | - $shortcode_name = sanitize_title_with_dashes( $_POST['shortcode'] ); |
|
| 1274 | - $attributes_array = isset( $_POST['attributes'] ) && $_POST['attributes'] ? $_POST['attributes'] : array(); |
|
| 1275 | - $attributes = ''; |
|
| 1276 | - if ( ! empty( $attributes_array ) ) { |
|
| 1277 | - foreach ( $attributes_array as $key => $value ) { |
|
| 1278 | - $attributes .= " " . sanitize_title_with_dashes( $key ) . "='" . wp_slash( $value ) . "' "; |
|
| 1279 | - } |
|
| 1280 | - } |
|
| 1281 | - |
|
| 1282 | - $shortcode = "[" . $shortcode_name . " " . $attributes . "]"; |
|
| 1283 | - |
|
| 1284 | - echo do_shortcode( $shortcode ); |
|
| 1285 | - |
|
| 1286 | - } |
|
| 1287 | - wp_die(); |
|
| 1288 | - } |
|
| 1289 | - |
|
| 1290 | - /** |
|
| 1291 | - * Output the shortcode. |
|
| 1292 | - * |
|
| 1293 | - * @param array $args |
|
| 1294 | - * @param string $content |
|
| 1295 | - * |
|
| 1296 | - * @return string |
|
| 1297 | - */ |
|
| 1298 | - public function shortcode_output( $args = array(), $content = '' ) { |
|
| 1299 | - $args = self::argument_values( $args ); |
|
| 1300 | - |
|
| 1301 | - // add extra argument so we know its a output to gutenberg |
|
| 1302 | - //$args |
|
| 1303 | - $args = $this->string_to_bool( $args ); |
|
| 1304 | - |
|
| 1305 | - // if we have a enclosed shortcode we add it to the special `html` argument |
|
| 1306 | - if(!empty($content)){ |
|
| 1307 | - $args['html'] = $content; |
|
| 1308 | - } |
|
| 1309 | - |
|
| 1310 | - $class = isset( $this->options['widget_ops']['classname'] ) ? esc_attr( $this->options['widget_ops']['classname'] ) : ''; |
|
| 1311 | - |
|
| 1312 | - $class = apply_filters( 'wp_super_duper_div_classname', $class, $args, $this ); |
|
| 1313 | - $class = apply_filters( 'wp_super_duper_div_classname_' . $this->base_id, $class, $args, $this ); |
|
| 1314 | - |
|
| 1315 | - $attrs = apply_filters( 'wp_super_duper_div_attrs', '', $args, $this ); |
|
| 1316 | - $attrs = apply_filters( 'wp_super_duper_div_attrs_' . $this->base_id, '', $args, $this ); //@todo this does not seem right @kiran? |
|
| 1317 | - |
|
| 1318 | - $shortcode_args = array(); |
|
| 1319 | - $output = ''; |
|
| 1320 | - $no_wrap = isset( $this->options['no_wrap'] ) && $this->options['no_wrap'] ? true : false; |
|
| 1321 | - if( isset( $args['no_wrap'] ) && $args['no_wrap'] ){ $no_wrap = true; } |
|
| 1322 | - $main_content = $this->output( $args, $shortcode_args, $content ); |
|
| 1323 | - if ( $main_content && ! $no_wrap ) { |
|
| 1324 | - // wrap the shortcode in a div with the same class as the widget |
|
| 1325 | - $output .= '<div class="' . $class . '" ' . $attrs . '>'; |
|
| 1326 | - if ( ! empty( $args['title'] ) ) { |
|
| 1327 | - // if its a shortcode and there is a title try to grab the title wrappers |
|
| 1328 | - $shortcode_args = array( 'before_title' => '', 'after_title' => '' ); |
|
| 1329 | - if ( empty( $instance ) ) { |
|
| 1330 | - global $wp_registered_sidebars; |
|
| 1331 | - if ( ! empty( $wp_registered_sidebars ) ) { |
|
| 1332 | - foreach ( $wp_registered_sidebars as $sidebar ) { |
|
| 1333 | - if ( ! empty( $sidebar['before_title'] ) ) { |
|
| 1334 | - $shortcode_args['before_title'] = $sidebar['before_title']; |
|
| 1335 | - $shortcode_args['after_title'] = $sidebar['after_title']; |
|
| 1336 | - break; |
|
| 1337 | - } |
|
| 1338 | - } |
|
| 1339 | - } |
|
| 1340 | - } |
|
| 1341 | - $output .= $this->output_title( $shortcode_args, $args ); |
|
| 1342 | - } |
|
| 1343 | - $output .= $main_content; |
|
| 1344 | - $output .= '</div>'; |
|
| 1345 | - } elseif ( $main_content && $no_wrap ) { |
|
| 1346 | - $output .= $main_content; |
|
| 1347 | - } |
|
| 1348 | - |
|
| 1349 | - // if preview show a placeholder if empty |
|
| 1350 | - if ( $this->is_preview() && $output == '' ) { |
|
| 1351 | - $output = $this->preview_placeholder_text( "[{" . $this->base_id . "}]" ); |
|
| 1352 | - } |
|
| 1353 | - |
|
| 1354 | - return apply_filters( 'wp_super_duper_widget_output', $output, $args, $shortcode_args, $this ); |
|
| 1355 | - } |
|
| 1356 | - |
|
| 1357 | - /** |
|
| 1358 | - * Placeholder text to show if output is empty and we are on a preview/builder page. |
|
| 1359 | - * |
|
| 1360 | - * @param string $name |
|
| 1361 | - * |
|
| 1362 | - * @return string |
|
| 1363 | - */ |
|
| 1364 | - public function preview_placeholder_text( $name = '' ) { |
|
| 1365 | - return "<div style='background:#0185ba33;padding: 10px;border: 4px #ccc dashed;'>" . sprintf( __( 'Placeholder for: %s' ), $name ) . "</div>"; |
|
| 1366 | - } |
|
| 1367 | - |
|
| 1368 | - /** |
|
| 1369 | - * Sometimes booleans values can be turned to strings, so we fix that. |
|
| 1370 | - * |
|
| 1371 | - * @param $options |
|
| 1372 | - * |
|
| 1373 | - * @return mixed |
|
| 1374 | - */ |
|
| 1375 | - public function string_to_bool( $options ) { |
|
| 1376 | - // convert bool strings to booleans |
|
| 1377 | - foreach ( $options as $key => $val ) { |
|
| 1378 | - if ( $val == 'false' ) { |
|
| 1379 | - $options[ $key ] = false; |
|
| 1380 | - } elseif ( $val == 'true' ) { |
|
| 1381 | - $options[ $key ] = true; |
|
| 1382 | - } |
|
| 1383 | - } |
|
| 1384 | - |
|
| 1385 | - return $options; |
|
| 1386 | - } |
|
| 1387 | - |
|
| 1388 | - /** |
|
| 1389 | - * Get the argument values that are also filterable. |
|
| 1390 | - * |
|
| 1391 | - * @param $instance |
|
| 1392 | - * |
|
| 1393 | - * @since 1.0.12 Don't set checkbox default value if the value is empty. |
|
| 1394 | - * |
|
| 1395 | - * @return array |
|
| 1396 | - */ |
|
| 1397 | - public function argument_values( $instance ) { |
|
| 1398 | - $argument_values = array(); |
|
| 1399 | - |
|
| 1400 | - // set widget instance |
|
| 1401 | - $this->instance = $instance; |
|
| 1402 | - |
|
| 1403 | - if ( empty( $this->arguments ) ) { |
|
| 1404 | - $this->arguments = $this->get_arguments(); |
|
| 1405 | - } |
|
| 1406 | - |
|
| 1407 | - if ( ! empty( $this->arguments ) ) { |
|
| 1408 | - foreach ( $this->arguments as $key => $args ) { |
|
| 1409 | - // set the input name from the key |
|
| 1410 | - $args['name'] = $key; |
|
| 1411 | - // |
|
| 1412 | - $argument_values[ $key ] = isset( $instance[ $key ] ) ? $instance[ $key ] : ''; |
|
| 1413 | - if($args['type']=='checkbox' && $argument_values[ $key ] == ''){ |
|
| 1414 | - // don't set default for an empty checkbox |
|
| 1415 | - } |
|
| 1416 | - elseif ( $argument_values[ $key ] == '' && isset( $args['default'] ) ) { |
|
| 1417 | - $argument_values[ $key ] = $args['default']; |
|
| 1418 | - } |
|
| 1419 | - } |
|
| 1420 | - } |
|
| 1421 | - |
|
| 1422 | - return $argument_values; |
|
| 1423 | - } |
|
| 1424 | - |
|
| 1425 | - /** |
|
| 1426 | - * Set arguments in super duper. |
|
| 1427 | - * |
|
| 1428 | - * @since 1.0.0 |
|
| 1429 | - * |
|
| 1430 | - * @return array Set arguments. |
|
| 1431 | - */ |
|
| 1432 | - public function set_arguments() { |
|
| 1433 | - return $this->arguments; |
|
| 1434 | - } |
|
| 1435 | - |
|
| 1436 | - /** |
|
| 1437 | - * Get arguments in super duper. |
|
| 1438 | - * |
|
| 1439 | - * @since 1.0.0 |
|
| 1440 | - * |
|
| 1441 | - * @return array Get arguments. |
|
| 1442 | - */ |
|
| 1443 | - public function get_arguments() { |
|
| 1444 | - if ( empty( $this->arguments ) ) { |
|
| 1445 | - $this->arguments = $this->set_arguments(); |
|
| 1446 | - } |
|
| 1447 | - |
|
| 1448 | - $this->arguments = apply_filters( 'wp_super_duper_arguments', $this->arguments, $this->options, $this->instance ); |
|
| 1449 | - $this->arguments = $this->add_name_from_key( $this->arguments, true ); |
|
| 1450 | - |
|
| 1451 | - return $this->arguments; |
|
| 1452 | - } |
|
| 1453 | - |
|
| 1454 | - /** |
|
| 1455 | - * This is the main output class for all 3 items, widget, shortcode and block, it is extended in the calling class. |
|
| 1456 | - * |
|
| 1457 | - * @param array $args |
|
| 1458 | - * @param array $widget_args |
|
| 1459 | - * @param string $content |
|
| 1460 | - */ |
|
| 1461 | - public function output( $args = array(), $widget_args = array(), $content = '' ) { |
|
| 1462 | - |
|
| 1463 | - } |
|
| 1464 | - |
|
| 1465 | - /** |
|
| 1466 | - * Add the dynamic block code inline when the wp-block in enqueued. |
|
| 1467 | - */ |
|
| 1468 | - public function register_block() { |
|
| 1469 | - wp_add_inline_script( 'wp-blocks', $this->block() ); |
|
| 1470 | - if ( class_exists( 'SiteOrigin_Panels' ) ) { |
|
| 1471 | - |
|
| 1472 | - wp_add_inline_script( 'wp-blocks', $this->siteorigin_js() ); |
|
| 1473 | - |
|
| 1474 | - } |
|
| 1475 | - } |
|
| 1476 | - |
|
| 1477 | - /** |
|
| 1478 | - * Check if we need to show advanced options. |
|
| 1479 | - * |
|
| 1480 | - * @return bool |
|
| 1481 | - */ |
|
| 1482 | - public function block_show_advanced() { |
|
| 1483 | - |
|
| 1484 | - $show = false; |
|
| 1485 | - $arguments = $this->arguments; |
|
| 1486 | - |
|
| 1487 | - if ( empty( $arguments ) ) { |
|
| 1488 | - $arguments = $this->get_arguments(); |
|
| 1489 | - } |
|
| 1490 | - |
|
| 1491 | - if ( ! empty( $arguments ) ) { |
|
| 1492 | - foreach ( $arguments as $argument ) { |
|
| 1493 | - if ( isset( $argument['advanced'] ) && $argument['advanced'] ) { |
|
| 1494 | - $show = true; |
|
| 1495 | - break; // no need to continue if we know we have it |
|
| 1496 | - } |
|
| 1497 | - } |
|
| 1498 | - } |
|
| 1499 | - |
|
| 1500 | - return $show; |
|
| 1501 | - } |
|
| 1502 | - |
|
| 1503 | - /** |
|
| 1504 | - * Get the url path to the current folder. |
|
| 1505 | - * |
|
| 1506 | - * @return string |
|
| 1507 | - */ |
|
| 1508 | - public function get_url() { |
|
| 1509 | - |
|
| 1510 | - $url = $this->url; |
|
| 1511 | - |
|
| 1512 | - if(!$url){ |
|
| 1513 | - // check if we are inside a plugin |
|
| 1514 | - $file_dir = str_replace("/includes","", dirname( __FILE__ )); |
|
| 1515 | - |
|
| 1516 | - $dir_parts = explode("/wp-content/",$file_dir); |
|
| 1517 | - $url_parts = explode("/wp-content/",plugins_url()); |
|
| 1518 | - |
|
| 1519 | - if(!empty($url_parts[0]) && !empty($dir_parts[1])){ |
|
| 1520 | - $url = trailingslashit( $url_parts[0]."/wp-content/".$dir_parts[1] ); |
|
| 1521 | - $this->url = $url; |
|
| 1522 | - } |
|
| 1523 | - } |
|
| 1524 | - |
|
| 1525 | - |
|
| 1526 | - return $url; |
|
| 1527 | - } |
|
| 1528 | - |
|
| 1529 | - /** |
|
| 1530 | - * Generate the block icon. |
|
| 1531 | - * |
|
| 1532 | - * Enables the use of Font Awesome icons. |
|
| 1533 | - * |
|
| 1534 | - * @note xlink:href is actually deprecated but href is not supported by all so we use both. |
|
| 1535 | - * @param $icon |
|
| 1536 | - * @since 1.1.0 |
|
| 1537 | - * @return string |
|
| 1538 | - */ |
|
| 1539 | - public function get_block_icon($icon){ |
|
| 1540 | - |
|
| 1541 | - // check if we have a Font Awesome icon |
|
| 1542 | - $fa_type = ''; |
|
| 1543 | - if(substr( $icon, 0, 7 ) === "fas fa-"){ |
|
| 1544 | - $fa_type = 'solid'; |
|
| 1545 | - }elseif(substr( $icon, 0, 7 ) === "far fa-"){ |
|
| 1546 | - $fa_type = 'regular'; |
|
| 1547 | - }elseif(substr( $icon, 0, 7 ) === "fab fa-"){ |
|
| 1548 | - $fa_type = 'brands'; |
|
| 1549 | - }else{ |
|
| 1550 | - $icon = "'".$icon."'"; |
|
| 1551 | - } |
|
| 1552 | - |
|
| 1553 | - // set the icon if we found one |
|
| 1554 | - if($fa_type){ |
|
| 1555 | - $fa_icon = str_replace(array("fas fa-","far fa-","fab fa-"),"",$icon); |
|
| 1556 | - $icon = "el('svg',{width: 20, height: 20, viewBox: '0 0 20 20'},el('use', {'xlink:href': '".$this->get_url()."icons/".$fa_type.".svg#".$fa_icon."','href': '".$this->get_url()."icons/".$fa_type.".svg#".$fa_icon."'}))"; |
|
| 1557 | - } |
|
| 1558 | - |
|
| 1559 | - return $icon; |
|
| 1560 | - } |
|
| 1561 | - |
|
| 1562 | - public function group_arguments($arguments){ |
|
| 1213 | + return str_replace( array( |
|
| 1214 | + '<script>', |
|
| 1215 | + '</script>' |
|
| 1216 | + ), '', $output ); |
|
| 1217 | + } |
|
| 1218 | + |
|
| 1219 | + |
|
| 1220 | + /** |
|
| 1221 | + * Set the name from the argument key. |
|
| 1222 | + * |
|
| 1223 | + * @param $options |
|
| 1224 | + * |
|
| 1225 | + * @return mixed |
|
| 1226 | + */ |
|
| 1227 | + private function add_name_from_key( $options, $arguments = false ) { |
|
| 1228 | + if ( ! empty( $options['arguments'] ) ) { |
|
| 1229 | + foreach ( $options['arguments'] as $key => $val ) { |
|
| 1230 | + $options['arguments'][ $key ]['name'] = $key; |
|
| 1231 | + } |
|
| 1232 | + } elseif ( $arguments && is_array( $options ) && ! empty( $options ) ) { |
|
| 1233 | + foreach ( $options as $key => $val ) { |
|
| 1234 | + $options[ $key ]['name'] = $key; |
|
| 1235 | + } |
|
| 1236 | + } |
|
| 1237 | + |
|
| 1238 | + return $options; |
|
| 1239 | + } |
|
| 1240 | + |
|
| 1241 | + /** |
|
| 1242 | + * Register the parent shortcode. |
|
| 1243 | + * |
|
| 1244 | + * @since 1.0.0 |
|
| 1245 | + */ |
|
| 1246 | + public function register_shortcode() { |
|
| 1247 | + add_shortcode( $this->base_id, array( $this, 'shortcode_output' ) ); |
|
| 1248 | + add_action( 'wp_ajax_super_duper_output_shortcode', array( __CLASS__, 'render_shortcode' ) ); |
|
| 1249 | + } |
|
| 1250 | + |
|
| 1251 | + /** |
|
| 1252 | + * Render the shortcode via ajax so we can return it to Gutenberg. |
|
| 1253 | + * |
|
| 1254 | + * @since 1.0.0 |
|
| 1255 | + */ |
|
| 1256 | + public static function render_shortcode() { |
|
| 1257 | + |
|
| 1258 | + check_ajax_referer( 'super_duper_output_shortcode', '_ajax_nonce', true ); |
|
| 1259 | + if ( ! current_user_can( 'manage_options' ) ) { |
|
| 1260 | + wp_die(); |
|
| 1261 | + } |
|
| 1262 | + |
|
| 1263 | + // we might need the $post value here so lets set it. |
|
| 1264 | + if ( isset( $_POST['post_id'] ) && $_POST['post_id'] ) { |
|
| 1265 | + $post_obj = get_post( absint( $_POST['post_id'] ) ); |
|
| 1266 | + if ( ! empty( $post_obj ) && empty( $post ) ) { |
|
| 1267 | + global $post; |
|
| 1268 | + $post = $post_obj; |
|
| 1269 | + } |
|
| 1270 | + } |
|
| 1271 | + |
|
| 1272 | + if ( isset( $_POST['shortcode'] ) && $_POST['shortcode'] ) { |
|
| 1273 | + $shortcode_name = sanitize_title_with_dashes( $_POST['shortcode'] ); |
|
| 1274 | + $attributes_array = isset( $_POST['attributes'] ) && $_POST['attributes'] ? $_POST['attributes'] : array(); |
|
| 1275 | + $attributes = ''; |
|
| 1276 | + if ( ! empty( $attributes_array ) ) { |
|
| 1277 | + foreach ( $attributes_array as $key => $value ) { |
|
| 1278 | + $attributes .= " " . sanitize_title_with_dashes( $key ) . "='" . wp_slash( $value ) . "' "; |
|
| 1279 | + } |
|
| 1280 | + } |
|
| 1281 | + |
|
| 1282 | + $shortcode = "[" . $shortcode_name . " " . $attributes . "]"; |
|
| 1283 | + |
|
| 1284 | + echo do_shortcode( $shortcode ); |
|
| 1285 | + |
|
| 1286 | + } |
|
| 1287 | + wp_die(); |
|
| 1288 | + } |
|
| 1289 | + |
|
| 1290 | + /** |
|
| 1291 | + * Output the shortcode. |
|
| 1292 | + * |
|
| 1293 | + * @param array $args |
|
| 1294 | + * @param string $content |
|
| 1295 | + * |
|
| 1296 | + * @return string |
|
| 1297 | + */ |
|
| 1298 | + public function shortcode_output( $args = array(), $content = '' ) { |
|
| 1299 | + $args = self::argument_values( $args ); |
|
| 1300 | + |
|
| 1301 | + // add extra argument so we know its a output to gutenberg |
|
| 1302 | + //$args |
|
| 1303 | + $args = $this->string_to_bool( $args ); |
|
| 1304 | + |
|
| 1305 | + // if we have a enclosed shortcode we add it to the special `html` argument |
|
| 1306 | + if(!empty($content)){ |
|
| 1307 | + $args['html'] = $content; |
|
| 1308 | + } |
|
| 1309 | + |
|
| 1310 | + $class = isset( $this->options['widget_ops']['classname'] ) ? esc_attr( $this->options['widget_ops']['classname'] ) : ''; |
|
| 1311 | + |
|
| 1312 | + $class = apply_filters( 'wp_super_duper_div_classname', $class, $args, $this ); |
|
| 1313 | + $class = apply_filters( 'wp_super_duper_div_classname_' . $this->base_id, $class, $args, $this ); |
|
| 1314 | + |
|
| 1315 | + $attrs = apply_filters( 'wp_super_duper_div_attrs', '', $args, $this ); |
|
| 1316 | + $attrs = apply_filters( 'wp_super_duper_div_attrs_' . $this->base_id, '', $args, $this ); //@todo this does not seem right @kiran? |
|
| 1317 | + |
|
| 1318 | + $shortcode_args = array(); |
|
| 1319 | + $output = ''; |
|
| 1320 | + $no_wrap = isset( $this->options['no_wrap'] ) && $this->options['no_wrap'] ? true : false; |
|
| 1321 | + if( isset( $args['no_wrap'] ) && $args['no_wrap'] ){ $no_wrap = true; } |
|
| 1322 | + $main_content = $this->output( $args, $shortcode_args, $content ); |
|
| 1323 | + if ( $main_content && ! $no_wrap ) { |
|
| 1324 | + // wrap the shortcode in a div with the same class as the widget |
|
| 1325 | + $output .= '<div class="' . $class . '" ' . $attrs . '>'; |
|
| 1326 | + if ( ! empty( $args['title'] ) ) { |
|
| 1327 | + // if its a shortcode and there is a title try to grab the title wrappers |
|
| 1328 | + $shortcode_args = array( 'before_title' => '', 'after_title' => '' ); |
|
| 1329 | + if ( empty( $instance ) ) { |
|
| 1330 | + global $wp_registered_sidebars; |
|
| 1331 | + if ( ! empty( $wp_registered_sidebars ) ) { |
|
| 1332 | + foreach ( $wp_registered_sidebars as $sidebar ) { |
|
| 1333 | + if ( ! empty( $sidebar['before_title'] ) ) { |
|
| 1334 | + $shortcode_args['before_title'] = $sidebar['before_title']; |
|
| 1335 | + $shortcode_args['after_title'] = $sidebar['after_title']; |
|
| 1336 | + break; |
|
| 1337 | + } |
|
| 1338 | + } |
|
| 1339 | + } |
|
| 1340 | + } |
|
| 1341 | + $output .= $this->output_title( $shortcode_args, $args ); |
|
| 1342 | + } |
|
| 1343 | + $output .= $main_content; |
|
| 1344 | + $output .= '</div>'; |
|
| 1345 | + } elseif ( $main_content && $no_wrap ) { |
|
| 1346 | + $output .= $main_content; |
|
| 1347 | + } |
|
| 1348 | + |
|
| 1349 | + // if preview show a placeholder if empty |
|
| 1350 | + if ( $this->is_preview() && $output == '' ) { |
|
| 1351 | + $output = $this->preview_placeholder_text( "[{" . $this->base_id . "}]" ); |
|
| 1352 | + } |
|
| 1353 | + |
|
| 1354 | + return apply_filters( 'wp_super_duper_widget_output', $output, $args, $shortcode_args, $this ); |
|
| 1355 | + } |
|
| 1356 | + |
|
| 1357 | + /** |
|
| 1358 | + * Placeholder text to show if output is empty and we are on a preview/builder page. |
|
| 1359 | + * |
|
| 1360 | + * @param string $name |
|
| 1361 | + * |
|
| 1362 | + * @return string |
|
| 1363 | + */ |
|
| 1364 | + public function preview_placeholder_text( $name = '' ) { |
|
| 1365 | + return "<div style='background:#0185ba33;padding: 10px;border: 4px #ccc dashed;'>" . sprintf( __( 'Placeholder for: %s' ), $name ) . "</div>"; |
|
| 1366 | + } |
|
| 1367 | + |
|
| 1368 | + /** |
|
| 1369 | + * Sometimes booleans values can be turned to strings, so we fix that. |
|
| 1370 | + * |
|
| 1371 | + * @param $options |
|
| 1372 | + * |
|
| 1373 | + * @return mixed |
|
| 1374 | + */ |
|
| 1375 | + public function string_to_bool( $options ) { |
|
| 1376 | + // convert bool strings to booleans |
|
| 1377 | + foreach ( $options as $key => $val ) { |
|
| 1378 | + if ( $val == 'false' ) { |
|
| 1379 | + $options[ $key ] = false; |
|
| 1380 | + } elseif ( $val == 'true' ) { |
|
| 1381 | + $options[ $key ] = true; |
|
| 1382 | + } |
|
| 1383 | + } |
|
| 1384 | + |
|
| 1385 | + return $options; |
|
| 1386 | + } |
|
| 1387 | + |
|
| 1388 | + /** |
|
| 1389 | + * Get the argument values that are also filterable. |
|
| 1390 | + * |
|
| 1391 | + * @param $instance |
|
| 1392 | + * |
|
| 1393 | + * @since 1.0.12 Don't set checkbox default value if the value is empty. |
|
| 1394 | + * |
|
| 1395 | + * @return array |
|
| 1396 | + */ |
|
| 1397 | + public function argument_values( $instance ) { |
|
| 1398 | + $argument_values = array(); |
|
| 1399 | + |
|
| 1400 | + // set widget instance |
|
| 1401 | + $this->instance = $instance; |
|
| 1402 | + |
|
| 1403 | + if ( empty( $this->arguments ) ) { |
|
| 1404 | + $this->arguments = $this->get_arguments(); |
|
| 1405 | + } |
|
| 1406 | + |
|
| 1407 | + if ( ! empty( $this->arguments ) ) { |
|
| 1408 | + foreach ( $this->arguments as $key => $args ) { |
|
| 1409 | + // set the input name from the key |
|
| 1410 | + $args['name'] = $key; |
|
| 1411 | + // |
|
| 1412 | + $argument_values[ $key ] = isset( $instance[ $key ] ) ? $instance[ $key ] : ''; |
|
| 1413 | + if($args['type']=='checkbox' && $argument_values[ $key ] == ''){ |
|
| 1414 | + // don't set default for an empty checkbox |
|
| 1415 | + } |
|
| 1416 | + elseif ( $argument_values[ $key ] == '' && isset( $args['default'] ) ) { |
|
| 1417 | + $argument_values[ $key ] = $args['default']; |
|
| 1418 | + } |
|
| 1419 | + } |
|
| 1420 | + } |
|
| 1421 | + |
|
| 1422 | + return $argument_values; |
|
| 1423 | + } |
|
| 1424 | + |
|
| 1425 | + /** |
|
| 1426 | + * Set arguments in super duper. |
|
| 1427 | + * |
|
| 1428 | + * @since 1.0.0 |
|
| 1429 | + * |
|
| 1430 | + * @return array Set arguments. |
|
| 1431 | + */ |
|
| 1432 | + public function set_arguments() { |
|
| 1433 | + return $this->arguments; |
|
| 1434 | + } |
|
| 1435 | + |
|
| 1436 | + /** |
|
| 1437 | + * Get arguments in super duper. |
|
| 1438 | + * |
|
| 1439 | + * @since 1.0.0 |
|
| 1440 | + * |
|
| 1441 | + * @return array Get arguments. |
|
| 1442 | + */ |
|
| 1443 | + public function get_arguments() { |
|
| 1444 | + if ( empty( $this->arguments ) ) { |
|
| 1445 | + $this->arguments = $this->set_arguments(); |
|
| 1446 | + } |
|
| 1447 | + |
|
| 1448 | + $this->arguments = apply_filters( 'wp_super_duper_arguments', $this->arguments, $this->options, $this->instance ); |
|
| 1449 | + $this->arguments = $this->add_name_from_key( $this->arguments, true ); |
|
| 1450 | + |
|
| 1451 | + return $this->arguments; |
|
| 1452 | + } |
|
| 1453 | + |
|
| 1454 | + /** |
|
| 1455 | + * This is the main output class for all 3 items, widget, shortcode and block, it is extended in the calling class. |
|
| 1456 | + * |
|
| 1457 | + * @param array $args |
|
| 1458 | + * @param array $widget_args |
|
| 1459 | + * @param string $content |
|
| 1460 | + */ |
|
| 1461 | + public function output( $args = array(), $widget_args = array(), $content = '' ) { |
|
| 1462 | + |
|
| 1463 | + } |
|
| 1464 | + |
|
| 1465 | + /** |
|
| 1466 | + * Add the dynamic block code inline when the wp-block in enqueued. |
|
| 1467 | + */ |
|
| 1468 | + public function register_block() { |
|
| 1469 | + wp_add_inline_script( 'wp-blocks', $this->block() ); |
|
| 1470 | + if ( class_exists( 'SiteOrigin_Panels' ) ) { |
|
| 1471 | + |
|
| 1472 | + wp_add_inline_script( 'wp-blocks', $this->siteorigin_js() ); |
|
| 1473 | + |
|
| 1474 | + } |
|
| 1475 | + } |
|
| 1476 | + |
|
| 1477 | + /** |
|
| 1478 | + * Check if we need to show advanced options. |
|
| 1479 | + * |
|
| 1480 | + * @return bool |
|
| 1481 | + */ |
|
| 1482 | + public function block_show_advanced() { |
|
| 1483 | + |
|
| 1484 | + $show = false; |
|
| 1485 | + $arguments = $this->arguments; |
|
| 1486 | + |
|
| 1487 | + if ( empty( $arguments ) ) { |
|
| 1488 | + $arguments = $this->get_arguments(); |
|
| 1489 | + } |
|
| 1490 | + |
|
| 1491 | + if ( ! empty( $arguments ) ) { |
|
| 1492 | + foreach ( $arguments as $argument ) { |
|
| 1493 | + if ( isset( $argument['advanced'] ) && $argument['advanced'] ) { |
|
| 1494 | + $show = true; |
|
| 1495 | + break; // no need to continue if we know we have it |
|
| 1496 | + } |
|
| 1497 | + } |
|
| 1498 | + } |
|
| 1499 | + |
|
| 1500 | + return $show; |
|
| 1501 | + } |
|
| 1502 | + |
|
| 1503 | + /** |
|
| 1504 | + * Get the url path to the current folder. |
|
| 1505 | + * |
|
| 1506 | + * @return string |
|
| 1507 | + */ |
|
| 1508 | + public function get_url() { |
|
| 1509 | + |
|
| 1510 | + $url = $this->url; |
|
| 1511 | + |
|
| 1512 | + if(!$url){ |
|
| 1513 | + // check if we are inside a plugin |
|
| 1514 | + $file_dir = str_replace("/includes","", dirname( __FILE__ )); |
|
| 1515 | + |
|
| 1516 | + $dir_parts = explode("/wp-content/",$file_dir); |
|
| 1517 | + $url_parts = explode("/wp-content/",plugins_url()); |
|
| 1518 | + |
|
| 1519 | + if(!empty($url_parts[0]) && !empty($dir_parts[1])){ |
|
| 1520 | + $url = trailingslashit( $url_parts[0]."/wp-content/".$dir_parts[1] ); |
|
| 1521 | + $this->url = $url; |
|
| 1522 | + } |
|
| 1523 | + } |
|
| 1524 | + |
|
| 1525 | + |
|
| 1526 | + return $url; |
|
| 1527 | + } |
|
| 1528 | + |
|
| 1529 | + /** |
|
| 1530 | + * Generate the block icon. |
|
| 1531 | + * |
|
| 1532 | + * Enables the use of Font Awesome icons. |
|
| 1533 | + * |
|
| 1534 | + * @note xlink:href is actually deprecated but href is not supported by all so we use both. |
|
| 1535 | + * @param $icon |
|
| 1536 | + * @since 1.1.0 |
|
| 1537 | + * @return string |
|
| 1538 | + */ |
|
| 1539 | + public function get_block_icon($icon){ |
|
| 1540 | + |
|
| 1541 | + // check if we have a Font Awesome icon |
|
| 1542 | + $fa_type = ''; |
|
| 1543 | + if(substr( $icon, 0, 7 ) === "fas fa-"){ |
|
| 1544 | + $fa_type = 'solid'; |
|
| 1545 | + }elseif(substr( $icon, 0, 7 ) === "far fa-"){ |
|
| 1546 | + $fa_type = 'regular'; |
|
| 1547 | + }elseif(substr( $icon, 0, 7 ) === "fab fa-"){ |
|
| 1548 | + $fa_type = 'brands'; |
|
| 1549 | + }else{ |
|
| 1550 | + $icon = "'".$icon."'"; |
|
| 1551 | + } |
|
| 1552 | + |
|
| 1553 | + // set the icon if we found one |
|
| 1554 | + if($fa_type){ |
|
| 1555 | + $fa_icon = str_replace(array("fas fa-","far fa-","fab fa-"),"",$icon); |
|
| 1556 | + $icon = "el('svg',{width: 20, height: 20, viewBox: '0 0 20 20'},el('use', {'xlink:href': '".$this->get_url()."icons/".$fa_type.".svg#".$fa_icon."','href': '".$this->get_url()."icons/".$fa_type.".svg#".$fa_icon."'}))"; |
|
| 1557 | + } |
|
| 1558 | + |
|
| 1559 | + return $icon; |
|
| 1560 | + } |
|
| 1561 | + |
|
| 1562 | + public function group_arguments($arguments){ |
|
| 1563 | 1563 | // echo '###';print_r($arguments); |
| 1564 | - if(!empty($arguments)){ |
|
| 1565 | - $temp_arguments = array(); |
|
| 1566 | - $general = __("General"); |
|
| 1567 | - $add_sections = false; |
|
| 1568 | - foreach($arguments as $key => $args){ |
|
| 1569 | - if(isset($args['group'])){ |
|
| 1570 | - $temp_arguments[$args['group']][$key] = $args; |
|
| 1571 | - $add_sections = true; |
|
| 1572 | - }else{ |
|
| 1573 | - $temp_arguments[$general][$key] = $args; |
|
| 1574 | - } |
|
| 1575 | - } |
|
| 1576 | - |
|
| 1577 | - // only add sections if more than one |
|
| 1578 | - if($add_sections){ |
|
| 1579 | - $arguments = $temp_arguments; |
|
| 1580 | - } |
|
| 1581 | - } |
|
| 1564 | + if(!empty($arguments)){ |
|
| 1565 | + $temp_arguments = array(); |
|
| 1566 | + $general = __("General"); |
|
| 1567 | + $add_sections = false; |
|
| 1568 | + foreach($arguments as $key => $args){ |
|
| 1569 | + if(isset($args['group'])){ |
|
| 1570 | + $temp_arguments[$args['group']][$key] = $args; |
|
| 1571 | + $add_sections = true; |
|
| 1572 | + }else{ |
|
| 1573 | + $temp_arguments[$general][$key] = $args; |
|
| 1574 | + } |
|
| 1575 | + } |
|
| 1576 | + |
|
| 1577 | + // only add sections if more than one |
|
| 1578 | + if($add_sections){ |
|
| 1579 | + $arguments = $temp_arguments; |
|
| 1580 | + } |
|
| 1581 | + } |
|
| 1582 | 1582 | // echo '###';print_r($arguments); |
| 1583 | - return $arguments; |
|
| 1584 | - } |
|
| 1585 | - |
|
| 1586 | - |
|
| 1587 | - /** |
|
| 1588 | - * Output the JS for building the dynamic Guntenberg block. |
|
| 1589 | - * |
|
| 1590 | - * @since 1.0.4 Added block_wrap property which will set the block wrapping output element ie: div, span, p or empty for no wrap. |
|
| 1591 | - * @since 1.0.9 Save numbers as numbers and not strings. |
|
| 1592 | - * @since 1.1.0 Font Awesome classes can be used for icons. |
|
| 1593 | - * @return mixed |
|
| 1594 | - */ |
|
| 1595 | - public function block() { |
|
| 1596 | - ob_start(); |
|
| 1597 | - ?> |
|
| 1583 | + return $arguments; |
|
| 1584 | + } |
|
| 1585 | + |
|
| 1586 | + |
|
| 1587 | + /** |
|
| 1588 | + * Output the JS for building the dynamic Guntenberg block. |
|
| 1589 | + * |
|
| 1590 | + * @since 1.0.4 Added block_wrap property which will set the block wrapping output element ie: div, span, p or empty for no wrap. |
|
| 1591 | + * @since 1.0.9 Save numbers as numbers and not strings. |
|
| 1592 | + * @since 1.1.0 Font Awesome classes can be used for icons. |
|
| 1593 | + * @return mixed |
|
| 1594 | + */ |
|
| 1595 | + public function block() { |
|
| 1596 | + ob_start(); |
|
| 1597 | + ?> |
|
| 1598 | 1598 | <script> |
| 1599 | 1599 | /** |
| 1600 | 1600 | * BLOCK: Basic |
@@ -1633,93 +1633,93 @@ discard block |
||
| 1633 | 1633 | icon: <?php echo $this->get_block_icon($this->options['block-icon']);?>,//'<?php echo isset( $this->options['block-icon'] ) ? esc_attr( $this->options['block-icon'] ) : 'shield-alt';?>', // Block icon from Dashicons → https://developer.wordpress.org/resource/dashicons/. |
| 1634 | 1634 | supports: { |
| 1635 | 1635 | <?php |
| 1636 | - if(isset($this->options['block-supports'])){ |
|
| 1637 | - echo $this->array_to_attributes( $this->options['block-supports'] ); |
|
| 1638 | - } |
|
| 1639 | - ?> |
|
| 1636 | + if(isset($this->options['block-supports'])){ |
|
| 1637 | + echo $this->array_to_attributes( $this->options['block-supports'] ); |
|
| 1638 | + } |
|
| 1639 | + ?> |
|
| 1640 | 1640 | }, |
| 1641 | 1641 | category: '<?php echo isset( $this->options['block-category'] ) ? esc_attr( $this->options['block-category'] ) : 'common';?>', // Block category — Group blocks together based on common traits E.g. common, formatting, layout widgets, embed. |
| 1642 | 1642 | <?php if ( isset( $this->options['block-keywords'] ) ) { |
| 1643 | - echo "keywords : " . $this->options['block-keywords'] . ","; |
|
| 1644 | - }?> |
|
| 1643 | + echo "keywords : " . $this->options['block-keywords'] . ","; |
|
| 1644 | + }?> |
|
| 1645 | 1645 | |
| 1646 | 1646 | <?php |
| 1647 | 1647 | |
| 1648 | - // maybe set no_wrap |
|
| 1649 | - $no_wrap = isset( $this->options['no_wrap'] ) && $this->options['no_wrap'] ? true : false; |
|
| 1650 | - if( isset( $this->arguments['no_wrap'] ) && $this->arguments['no_wrap'] ){ $no_wrap = true; } |
|
| 1651 | - if( $no_wrap ){ $this->options['block-wrap'] = ''; } |
|
| 1648 | + // maybe set no_wrap |
|
| 1649 | + $no_wrap = isset( $this->options['no_wrap'] ) && $this->options['no_wrap'] ? true : false; |
|
| 1650 | + if( isset( $this->arguments['no_wrap'] ) && $this->arguments['no_wrap'] ){ $no_wrap = true; } |
|
| 1651 | + if( $no_wrap ){ $this->options['block-wrap'] = ''; } |
|
| 1652 | 1652 | |
| 1653 | - $show_advanced = $this->block_show_advanced(); |
|
| 1653 | + $show_advanced = $this->block_show_advanced(); |
|
| 1654 | 1654 | |
| 1655 | - $show_alignment = false; |
|
| 1656 | - // align feature |
|
| 1657 | - /*echo "supports: {"; |
|
| 1655 | + $show_alignment = false; |
|
| 1656 | + // align feature |
|
| 1657 | + /*echo "supports: {"; |
|
| 1658 | 1658 | echo " align: true,"; |
| 1659 | 1659 | echo " html: false"; |
| 1660 | 1660 | echo "},";*/ |
| 1661 | 1661 | |
| 1662 | - if ( ! empty( $this->arguments ) ) { |
|
| 1663 | - echo "attributes : {"; |
|
| 1664 | - |
|
| 1665 | - if ( $show_advanced ) { |
|
| 1666 | - echo "show_advanced: {"; |
|
| 1667 | - echo " type: 'boolean',"; |
|
| 1668 | - echo " default: false,"; |
|
| 1669 | - echo "},"; |
|
| 1670 | - } |
|
| 1671 | - |
|
| 1672 | - // block wrap element |
|
| 1673 | - if ( !empty( $this->options['block-wrap'] ) ) { //@todo we should validate this? |
|
| 1674 | - echo "block_wrap: {"; |
|
| 1675 | - echo " type: 'string',"; |
|
| 1676 | - echo " default: '" . esc_attr( $this->options['block-wrap'] ) . "',"; |
|
| 1677 | - echo "},"; |
|
| 1678 | - } |
|
| 1679 | - |
|
| 1680 | - foreach ( $this->arguments as $key => $args ) { |
|
| 1681 | - |
|
| 1682 | - // set if we should show alignment |
|
| 1683 | - if ( $key == 'alignment' ) { |
|
| 1684 | - $show_alignment = true; |
|
| 1685 | - } |
|
| 1686 | - |
|
| 1687 | - $extra = ''; |
|
| 1688 | - |
|
| 1689 | - if ( $args['type'] == 'checkbox' ) { |
|
| 1690 | - $type = 'boolean'; |
|
| 1691 | - $default = isset( $args['default'] ) && $args['default'] ? 'true' : 'false'; |
|
| 1692 | - } elseif ( $args['type'] == 'number' ) { |
|
| 1693 | - $type = 'number'; |
|
| 1694 | - $default = isset( $args['default'] ) ? "'" . $args['default'] . "'" : "''"; |
|
| 1695 | - } elseif ( $args['type'] == 'select' && ! empty( $args['multiple'] ) ) { |
|
| 1696 | - $type = 'array'; |
|
| 1697 | - if ( is_array( $args['default'] ) ) { |
|
| 1698 | - $default = isset( $args['default'] ) ? "['" . implode( "','", $args['default'] ) . "']" : "[]"; |
|
| 1699 | - } else { |
|
| 1700 | - $default = isset( $args['default'] ) ? "'" . $args['default'] . "'" : "''"; |
|
| 1701 | - } |
|
| 1702 | - } elseif ( $args['type'] == 'multiselect' ) { |
|
| 1703 | - $type = 'array'; |
|
| 1704 | - $default = isset( $args['default'] ) ? "'" . $args['default'] . "'" : "''"; |
|
| 1705 | - } else { |
|
| 1706 | - $type = 'string'; |
|
| 1707 | - $default = isset( $args['default'] ) ? "'" . $args['default'] . "'" : "''"; |
|
| 1708 | - } |
|
| 1709 | - echo $key . " : {"; |
|
| 1710 | - echo "type : '$type',"; |
|
| 1711 | - echo "default : $default,"; |
|
| 1712 | - echo "},"; |
|
| 1713 | - } |
|
| 1714 | - |
|
| 1715 | - echo "content : {type : 'string',default: 'Please select the attributes in the block settings'},"; |
|
| 1716 | - echo "className: { type: 'string', default: '' },"; |
|
| 1717 | - |
|
| 1718 | - echo "},"; |
|
| 1719 | - |
|
| 1720 | - } |
|
| 1721 | - |
|
| 1722 | - ?> |
|
| 1662 | + if ( ! empty( $this->arguments ) ) { |
|
| 1663 | + echo "attributes : {"; |
|
| 1664 | + |
|
| 1665 | + if ( $show_advanced ) { |
|
| 1666 | + echo "show_advanced: {"; |
|
| 1667 | + echo " type: 'boolean',"; |
|
| 1668 | + echo " default: false,"; |
|
| 1669 | + echo "},"; |
|
| 1670 | + } |
|
| 1671 | + |
|
| 1672 | + // block wrap element |
|
| 1673 | + if ( !empty( $this->options['block-wrap'] ) ) { //@todo we should validate this? |
|
| 1674 | + echo "block_wrap: {"; |
|
| 1675 | + echo " type: 'string',"; |
|
| 1676 | + echo " default: '" . esc_attr( $this->options['block-wrap'] ) . "',"; |
|
| 1677 | + echo "},"; |
|
| 1678 | + } |
|
| 1679 | + |
|
| 1680 | + foreach ( $this->arguments as $key => $args ) { |
|
| 1681 | + |
|
| 1682 | + // set if we should show alignment |
|
| 1683 | + if ( $key == 'alignment' ) { |
|
| 1684 | + $show_alignment = true; |
|
| 1685 | + } |
|
| 1686 | + |
|
| 1687 | + $extra = ''; |
|
| 1688 | + |
|
| 1689 | + if ( $args['type'] == 'checkbox' ) { |
|
| 1690 | + $type = 'boolean'; |
|
| 1691 | + $default = isset( $args['default'] ) && $args['default'] ? 'true' : 'false'; |
|
| 1692 | + } elseif ( $args['type'] == 'number' ) { |
|
| 1693 | + $type = 'number'; |
|
| 1694 | + $default = isset( $args['default'] ) ? "'" . $args['default'] . "'" : "''"; |
|
| 1695 | + } elseif ( $args['type'] == 'select' && ! empty( $args['multiple'] ) ) { |
|
| 1696 | + $type = 'array'; |
|
| 1697 | + if ( is_array( $args['default'] ) ) { |
|
| 1698 | + $default = isset( $args['default'] ) ? "['" . implode( "','", $args['default'] ) . "']" : "[]"; |
|
| 1699 | + } else { |
|
| 1700 | + $default = isset( $args['default'] ) ? "'" . $args['default'] . "'" : "''"; |
|
| 1701 | + } |
|
| 1702 | + } elseif ( $args['type'] == 'multiselect' ) { |
|
| 1703 | + $type = 'array'; |
|
| 1704 | + $default = isset( $args['default'] ) ? "'" . $args['default'] . "'" : "''"; |
|
| 1705 | + } else { |
|
| 1706 | + $type = 'string'; |
|
| 1707 | + $default = isset( $args['default'] ) ? "'" . $args['default'] . "'" : "''"; |
|
| 1708 | + } |
|
| 1709 | + echo $key . " : {"; |
|
| 1710 | + echo "type : '$type',"; |
|
| 1711 | + echo "default : $default,"; |
|
| 1712 | + echo "},"; |
|
| 1713 | + } |
|
| 1714 | + |
|
| 1715 | + echo "content : {type : 'string',default: 'Please select the attributes in the block settings'},"; |
|
| 1716 | + echo "className: { type: 'string', default: '' },"; |
|
| 1717 | + |
|
| 1718 | + echo "},"; |
|
| 1719 | + |
|
| 1720 | + } |
|
| 1721 | + |
|
| 1722 | + ?> |
|
| 1723 | 1723 | |
| 1724 | 1724 | // The "edit" property must be a valid function. |
| 1725 | 1725 | edit: function (props) { |
@@ -1738,8 +1738,8 @@ discard block |
||
| 1738 | 1738 | 'shortcode': '<?php echo $this->options['base_id'];?>', |
| 1739 | 1739 | 'attributes': props.attributes, |
| 1740 | 1740 | 'post_id': <?php global $post; if ( isset( $post->ID ) ) { |
| 1741 | - echo $post->ID; |
|
| 1742 | - }?>, |
|
| 1741 | + echo $post->ID; |
|
| 1742 | + }?>, |
|
| 1743 | 1743 | '_ajax_nonce': '<?php echo wp_create_nonce( 'super_duper_output_shortcode' );?>' |
| 1744 | 1744 | }; |
| 1745 | 1745 | |
@@ -1786,10 +1786,10 @@ discard block |
||
| 1786 | 1786 | |
| 1787 | 1787 | <?php |
| 1788 | 1788 | |
| 1789 | - if(! empty( $this->arguments )){ |
|
| 1789 | + if(! empty( $this->arguments )){ |
|
| 1790 | 1790 | |
| 1791 | - if ( $show_advanced ) { |
|
| 1792 | - ?> |
|
| 1791 | + if ( $show_advanced ) { |
|
| 1792 | + ?> |
|
| 1793 | 1793 | el( |
| 1794 | 1794 | wp.components.ToggleControl, |
| 1795 | 1795 | { |
@@ -1802,61 +1802,61 @@ discard block |
||
| 1802 | 1802 | ), |
| 1803 | 1803 | <?php |
| 1804 | 1804 | |
| 1805 | - } |
|
| 1805 | + } |
|
| 1806 | 1806 | |
| 1807 | - $arguments = $this->group_arguments($this->arguments); |
|
| 1807 | + $arguments = $this->group_arguments($this->arguments); |
|
| 1808 | 1808 | |
| 1809 | - // Do we have sections? |
|
| 1810 | - $has_sections = $arguments == $this->arguments ? false : true; |
|
| 1809 | + // Do we have sections? |
|
| 1810 | + $has_sections = $arguments == $this->arguments ? false : true; |
|
| 1811 | 1811 | |
| 1812 | 1812 | |
| 1813 | - if($has_sections){ |
|
| 1814 | - $panel_count = 0; |
|
| 1815 | - foreach($arguments as $key => $args){ |
|
| 1816 | - ?> |
|
| 1813 | + if($has_sections){ |
|
| 1814 | + $panel_count = 0; |
|
| 1815 | + foreach($arguments as $key => $args){ |
|
| 1816 | + ?> |
|
| 1817 | 1817 | el(wp.components.PanelBody, { |
| 1818 | 1818 | title: '<?php esc_attr_e($key); ?>', |
| 1819 | 1819 | initialOpen: <?php if($panel_count){echo "false";}else{echo "true";}?> |
| 1820 | 1820 | }, |
| 1821 | 1821 | <?php |
| 1822 | 1822 | |
| 1823 | - foreach($args as $k => $a){ |
|
| 1824 | - $this->build_block_arguments($k, $a); |
|
| 1825 | - } |
|
| 1826 | - ?> |
|
| 1823 | + foreach($args as $k => $a){ |
|
| 1824 | + $this->build_block_arguments($k, $a); |
|
| 1825 | + } |
|
| 1826 | + ?> |
|
| 1827 | 1827 | ), |
| 1828 | 1828 | <?php |
| 1829 | - $panel_count++; |
|
| 1829 | + $panel_count++; |
|
| 1830 | 1830 | |
| 1831 | - } |
|
| 1832 | - }else{ |
|
| 1833 | - foreach($this->arguments as $key => $args){ |
|
| 1834 | - $this->build_block_arguments($key, $args); |
|
| 1835 | - } |
|
| 1836 | - } |
|
| 1831 | + } |
|
| 1832 | + }else{ |
|
| 1833 | + foreach($this->arguments as $key => $args){ |
|
| 1834 | + $this->build_block_arguments($key, $args); |
|
| 1835 | + } |
|
| 1836 | + } |
|
| 1837 | 1837 | |
| 1838 | 1838 | |
| 1839 | 1839 | |
| 1840 | - } |
|
| 1841 | - ?> |
|
| 1840 | + } |
|
| 1841 | + ?> |
|
| 1842 | 1842 | |
| 1843 | 1843 | ), |
| 1844 | 1844 | |
| 1845 | 1845 | <?php |
| 1846 | - // If the user sets block-output array then build it |
|
| 1847 | - if ( ! empty( $this->options['block-output'] ) ) { |
|
| 1848 | - $this->block_element( $this->options['block-output'] ); |
|
| 1849 | - }else{ |
|
| 1850 | - // if no block-output is set then we try and get the shortcode html output via ajax. |
|
| 1851 | - ?> |
|
| 1846 | + // If the user sets block-output array then build it |
|
| 1847 | + if ( ! empty( $this->options['block-output'] ) ) { |
|
| 1848 | + $this->block_element( $this->options['block-output'] ); |
|
| 1849 | + }else{ |
|
| 1850 | + // if no block-output is set then we try and get the shortcode html output via ajax. |
|
| 1851 | + ?> |
|
| 1852 | 1852 | el('div', { |
| 1853 | 1853 | dangerouslySetInnerHTML: {__html: onChangeContent()}, |
| 1854 | 1854 | className: props.className, |
| 1855 | 1855 | style: {'min-height': '30px'} |
| 1856 | 1856 | }) |
| 1857 | 1857 | <?php |
| 1858 | - } |
|
| 1859 | - ?> |
|
| 1858 | + } |
|
| 1859 | + ?> |
|
| 1860 | 1860 | ]; // end return |
| 1861 | 1861 | }, |
| 1862 | 1862 | |
@@ -1874,10 +1874,10 @@ discard block |
||
| 1874 | 1874 | $html = ''; |
| 1875 | 1875 | <?php |
| 1876 | 1876 | |
| 1877 | - if(! empty( $this->arguments )){ |
|
| 1877 | + if(! empty( $this->arguments )){ |
|
| 1878 | 1878 | |
| 1879 | - foreach($this->arguments as $key => $args){ |
|
| 1880 | - ?> |
|
| 1879 | + foreach($this->arguments as $key => $args){ |
|
| 1880 | + ?> |
|
| 1881 | 1881 | if (attr.hasOwnProperty("<?php echo esc_attr( $key );?>")) { |
| 1882 | 1882 | if('<?php echo esc_attr( $key );?>' == 'html'){ |
| 1883 | 1883 | $html = attr.<?php echo esc_attr( $key );?>; |
@@ -1886,10 +1886,10 @@ discard block |
||
| 1886 | 1886 | } |
| 1887 | 1887 | } |
| 1888 | 1888 | <?php |
| 1889 | - } |
|
| 1890 | - } |
|
| 1889 | + } |
|
| 1890 | + } |
|
| 1891 | 1891 | |
| 1892 | - ?> |
|
| 1892 | + ?> |
|
| 1893 | 1893 | content += "]"; |
| 1894 | 1894 | |
| 1895 | 1895 | // if has html element |
@@ -1912,20 +1912,20 @@ discard block |
||
| 1912 | 1912 | } |
| 1913 | 1913 | |
| 1914 | 1914 | <?php |
| 1915 | - if(isset( $this->options['block-wrap'] ) && $this->options['block-wrap'] == ''){ |
|
| 1916 | - ?> |
|
| 1915 | + if(isset( $this->options['block-wrap'] ) && $this->options['block-wrap'] == ''){ |
|
| 1916 | + ?> |
|
| 1917 | 1917 | return content; |
| 1918 | 1918 | <?php |
| 1919 | - }else{ |
|
| 1920 | - ?> |
|
| 1919 | + }else{ |
|
| 1920 | + ?> |
|
| 1921 | 1921 | var block_wrap = 'div'; |
| 1922 | 1922 | if (attr.hasOwnProperty("block_wrap")) { |
| 1923 | 1923 | block_wrap = attr.block_wrap; |
| 1924 | 1924 | } |
| 1925 | 1925 | return el(block_wrap, {dangerouslySetInnerHTML: {__html: content}, className: align}); |
| 1926 | 1926 | <?php |
| 1927 | - } |
|
| 1928 | - ?> |
|
| 1927 | + } |
|
| 1928 | + ?> |
|
| 1929 | 1929 | |
| 1930 | 1930 | |
| 1931 | 1931 | } |
@@ -1933,89 +1933,89 @@ discard block |
||
| 1933 | 1933 | })(); |
| 1934 | 1934 | </script> |
| 1935 | 1935 | <?php |
| 1936 | - $output = ob_get_clean(); |
|
| 1936 | + $output = ob_get_clean(); |
|
| 1937 | 1937 | |
| 1938 | - /* |
|
| 1938 | + /* |
|
| 1939 | 1939 | * We only add the <script> tags for code highlighting, so we strip them from the output. |
| 1940 | 1940 | */ |
| 1941 | 1941 | |
| 1942 | - return str_replace( array( |
|
| 1943 | - '<script>', |
|
| 1944 | - '</script>' |
|
| 1945 | - ), '', $output ); |
|
| 1946 | - } |
|
| 1947 | - |
|
| 1948 | - public function build_block_arguments($key,$args){ |
|
| 1949 | - $custom_attributes = ! empty( $args['custom_attributes'] ) ? $this->array_to_attributes( $args['custom_attributes'] ) : ''; |
|
| 1950 | - $options = ''; |
|
| 1951 | - $extra = ''; |
|
| 1952 | - $require = ''; |
|
| 1953 | - |
|
| 1954 | - // `content` is a protected and special argument |
|
| 1955 | - if($key == 'content'){return;} |
|
| 1956 | - |
|
| 1957 | - $onchange = "props.setAttributes({ $key: $key } )"; |
|
| 1958 | - $value = "props.attributes.$key"; |
|
| 1959 | - $text_type = array( 'text', 'password', 'number', 'email', 'tel', 'url', 'color' ); |
|
| 1960 | - if ( in_array( $args['type'], $text_type ) ) { |
|
| 1961 | - $type = 'TextControl'; |
|
| 1962 | - // Save numbers as numbers and not strings |
|
| 1963 | - if ( $args['type'] == 'number' ) { |
|
| 1964 | - $onchange = "props.setAttributes({ $key: Number($key) } )"; |
|
| 1965 | - } |
|
| 1966 | - } |
|
| 1967 | - // elseif ( $args['type'] == 'color' ) { //@todo ColorPicker labels are not shown yet, we use html5 color input for now https://github.com/WordPress/gutenberg/issues/14378 |
|
| 1968 | - // $type = 'ColorPicker'; |
|
| 1969 | - // } |
|
| 1970 | - elseif ( $args['type'] == 'checkbox' ) { |
|
| 1971 | - $type = 'CheckboxControl'; |
|
| 1972 | - $extra .= "checked: props.attributes.$key,"; |
|
| 1973 | - $onchange = "props.setAttributes({ $key: ! props.attributes.$key } )"; |
|
| 1974 | - }elseif ( $args['type'] == 'textarea' ) { |
|
| 1975 | - $type = 'TextareaControl'; |
|
| 1976 | - } elseif ( $args['type'] == 'select' || $args['type'] == 'multiselect' ) { |
|
| 1977 | - $type = 'SelectControl'; |
|
| 1978 | - if ( ! empty( $args['options'] ) ) { |
|
| 1979 | - $options .= "options : ["; |
|
| 1980 | - foreach ( $args['options'] as $option_val => $option_label ) { |
|
| 1981 | - $options .= "{ value : '" . esc_attr( $option_val ) . "', label : '" . esc_attr( $option_label ) . "' },"; |
|
| 1982 | - } |
|
| 1983 | - $options .= "],"; |
|
| 1984 | - } |
|
| 1985 | - if ( isset( $args['multiple'] ) && $args['multiple'] ) { //@todo multiselect does not work at the moment: https://github.com/WordPress/gutenberg/issues/5550 |
|
| 1986 | - $extra .= ' multiple: true, '; |
|
| 1987 | - //$onchange = "props.setAttributes({ $key: ['edit'] } )"; |
|
| 1988 | - //$value = "['edit', 'delete']"; |
|
| 1989 | - } |
|
| 1990 | - } elseif ( $args['type'] == 'alignment' ) { |
|
| 1991 | - $type = 'AlignmentToolbar'; // @todo this does not seem to work but cant find a example |
|
| 1992 | - } else { |
|
| 1993 | - return;// if we have not implemented the control then don't break the JS. |
|
| 1994 | - } |
|
| 1995 | - |
|
| 1996 | - // add show only if advanced |
|
| 1997 | - if ( ! empty( $args['advanced'] ) ) { |
|
| 1998 | - echo "props.attributes.show_advanced && "; |
|
| 1999 | - } |
|
| 2000 | - // add setting require if defined |
|
| 2001 | - if ( ! empty( $args['element_require'] ) ) { |
|
| 2002 | - echo $this->block_props_replace( $args['element_require'], true ) . " && "; |
|
| 2003 | - } |
|
| 2004 | - ?> |
|
| 1942 | + return str_replace( array( |
|
| 1943 | + '<script>', |
|
| 1944 | + '</script>' |
|
| 1945 | + ), '', $output ); |
|
| 1946 | + } |
|
| 1947 | + |
|
| 1948 | + public function build_block_arguments($key,$args){ |
|
| 1949 | + $custom_attributes = ! empty( $args['custom_attributes'] ) ? $this->array_to_attributes( $args['custom_attributes'] ) : ''; |
|
| 1950 | + $options = ''; |
|
| 1951 | + $extra = ''; |
|
| 1952 | + $require = ''; |
|
| 1953 | + |
|
| 1954 | + // `content` is a protected and special argument |
|
| 1955 | + if($key == 'content'){return;} |
|
| 1956 | + |
|
| 1957 | + $onchange = "props.setAttributes({ $key: $key } )"; |
|
| 1958 | + $value = "props.attributes.$key"; |
|
| 1959 | + $text_type = array( 'text', 'password', 'number', 'email', 'tel', 'url', 'color' ); |
|
| 1960 | + if ( in_array( $args['type'], $text_type ) ) { |
|
| 1961 | + $type = 'TextControl'; |
|
| 1962 | + // Save numbers as numbers and not strings |
|
| 1963 | + if ( $args['type'] == 'number' ) { |
|
| 1964 | + $onchange = "props.setAttributes({ $key: Number($key) } )"; |
|
| 1965 | + } |
|
| 1966 | + } |
|
| 1967 | + // elseif ( $args['type'] == 'color' ) { //@todo ColorPicker labels are not shown yet, we use html5 color input for now https://github.com/WordPress/gutenberg/issues/14378 |
|
| 1968 | + // $type = 'ColorPicker'; |
|
| 1969 | + // } |
|
| 1970 | + elseif ( $args['type'] == 'checkbox' ) { |
|
| 1971 | + $type = 'CheckboxControl'; |
|
| 1972 | + $extra .= "checked: props.attributes.$key,"; |
|
| 1973 | + $onchange = "props.setAttributes({ $key: ! props.attributes.$key } )"; |
|
| 1974 | + }elseif ( $args['type'] == 'textarea' ) { |
|
| 1975 | + $type = 'TextareaControl'; |
|
| 1976 | + } elseif ( $args['type'] == 'select' || $args['type'] == 'multiselect' ) { |
|
| 1977 | + $type = 'SelectControl'; |
|
| 1978 | + if ( ! empty( $args['options'] ) ) { |
|
| 1979 | + $options .= "options : ["; |
|
| 1980 | + foreach ( $args['options'] as $option_val => $option_label ) { |
|
| 1981 | + $options .= "{ value : '" . esc_attr( $option_val ) . "', label : '" . esc_attr( $option_label ) . "' },"; |
|
| 1982 | + } |
|
| 1983 | + $options .= "],"; |
|
| 1984 | + } |
|
| 1985 | + if ( isset( $args['multiple'] ) && $args['multiple'] ) { //@todo multiselect does not work at the moment: https://github.com/WordPress/gutenberg/issues/5550 |
|
| 1986 | + $extra .= ' multiple: true, '; |
|
| 1987 | + //$onchange = "props.setAttributes({ $key: ['edit'] } )"; |
|
| 1988 | + //$value = "['edit', 'delete']"; |
|
| 1989 | + } |
|
| 1990 | + } elseif ( $args['type'] == 'alignment' ) { |
|
| 1991 | + $type = 'AlignmentToolbar'; // @todo this does not seem to work but cant find a example |
|
| 1992 | + } else { |
|
| 1993 | + return;// if we have not implemented the control then don't break the JS. |
|
| 1994 | + } |
|
| 1995 | + |
|
| 1996 | + // add show only if advanced |
|
| 1997 | + if ( ! empty( $args['advanced'] ) ) { |
|
| 1998 | + echo "props.attributes.show_advanced && "; |
|
| 1999 | + } |
|
| 2000 | + // add setting require if defined |
|
| 2001 | + if ( ! empty( $args['element_require'] ) ) { |
|
| 2002 | + echo $this->block_props_replace( $args['element_require'], true ) . " && "; |
|
| 2003 | + } |
|
| 2004 | + ?> |
|
| 2005 | 2005 | el( |
| 2006 | 2006 | wp.components.<?php echo esc_attr( $type );?>, |
| 2007 | 2007 | { |
| 2008 | 2008 | label: '<?php echo esc_attr( $args['title'] );?>', |
| 2009 | 2009 | help: '<?php if ( isset( $args['desc'] ) ) { |
| 2010 | - echo esc_attr( $args['desc'] ); |
|
| 2011 | - }?>', |
|
| 2010 | + echo esc_attr( $args['desc'] ); |
|
| 2011 | + }?>', |
|
| 2012 | 2012 | value: <?php echo $value;?>, |
| 2013 | 2013 | <?php if ( $type == 'TextControl' && $args['type'] != 'text' ) { |
| 2014 | - echo "type: '" . esc_attr( $args['type'] ) . "',"; |
|
| 2015 | - }?> |
|
| 2014 | + echo "type: '" . esc_attr( $args['type'] ) . "',"; |
|
| 2015 | + }?> |
|
| 2016 | 2016 | <?php if ( ! empty( $args['placeholder'] ) ) { |
| 2017 | - echo "placeholder: '" . esc_attr( $args['placeholder'] ) . "',"; |
|
| 2018 | - }?> |
|
| 2017 | + echo "placeholder: '" . esc_attr( $args['placeholder'] ) . "',"; |
|
| 2018 | + }?> |
|
| 2019 | 2019 | <?php echo $options;?> |
| 2020 | 2020 | <?php echo $extra;?> |
| 2021 | 2021 | <?php echo $custom_attributes;?> |
@@ -2025,508 +2025,508 @@ discard block |
||
| 2025 | 2025 | } |
| 2026 | 2026 | ), |
| 2027 | 2027 | <?php |
| 2028 | - } |
|
| 2029 | - |
|
| 2030 | - /** |
|
| 2031 | - * Convert an array of attributes to block string. |
|
| 2032 | - * |
|
| 2033 | - * @todo there is prob a faster way to do this, also we could add some validation here. |
|
| 2034 | - * |
|
| 2035 | - * @param $custom_attributes |
|
| 2036 | - * |
|
| 2037 | - * @return string |
|
| 2038 | - */ |
|
| 2039 | - public function array_to_attributes( $custom_attributes, $html = false ) { |
|
| 2040 | - $attributes = ''; |
|
| 2041 | - if ( ! empty( $custom_attributes ) ) { |
|
| 2042 | - |
|
| 2043 | - if ( $html ) { |
|
| 2044 | - foreach ( $custom_attributes as $key => $val ) { |
|
| 2045 | - $attributes .= " $key='$val' "; |
|
| 2046 | - } |
|
| 2047 | - } else { |
|
| 2048 | - foreach ( $custom_attributes as $key => $val ) { |
|
| 2049 | - $attributes .= "'$key': '$val',"; |
|
| 2050 | - } |
|
| 2051 | - } |
|
| 2052 | - } |
|
| 2053 | - |
|
| 2054 | - return $attributes; |
|
| 2055 | - } |
|
| 2056 | - |
|
| 2057 | - /** |
|
| 2058 | - * A self looping function to create the output for JS block elements. |
|
| 2059 | - * |
|
| 2060 | - * This is what is output in the WP Editor visual view. |
|
| 2061 | - * |
|
| 2062 | - * @param $args |
|
| 2063 | - */ |
|
| 2064 | - public function block_element( $args ) { |
|
| 2065 | - |
|
| 2066 | - |
|
| 2067 | - if ( ! empty( $args ) ) { |
|
| 2068 | - foreach ( $args as $element => $new_args ) { |
|
| 2069 | - |
|
| 2070 | - if ( is_array( $new_args ) ) { // its an element |
|
| 2071 | - |
|
| 2072 | - |
|
| 2073 | - if ( isset( $new_args['element'] ) ) { |
|
| 2074 | - |
|
| 2075 | - if ( isset( $new_args['element_require'] ) ) { |
|
| 2076 | - echo str_replace( array( |
|
| 2077 | - "'+", |
|
| 2078 | - "+'" |
|
| 2079 | - ), '', $this->block_props_replace( $new_args['element_require'] ) ) . " && "; |
|
| 2080 | - unset( $new_args['element_require'] ); |
|
| 2081 | - } |
|
| 2082 | - |
|
| 2083 | - echo "\n el( '" . $new_args['element'] . "', {"; |
|
| 2084 | - |
|
| 2085 | - // get the attributes |
|
| 2086 | - foreach ( $new_args as $new_key => $new_value ) { |
|
| 2087 | - |
|
| 2088 | - |
|
| 2089 | - if ( $new_key == 'element' || $new_key == 'content' || $new_key == 'element_require' || $new_key == 'element_repeat' || is_array( $new_value ) ) { |
|
| 2090 | - // do nothing |
|
| 2091 | - } else { |
|
| 2092 | - echo $this->block_element( array( $new_key => $new_value ) ); |
|
| 2093 | - } |
|
| 2094 | - } |
|
| 2095 | - |
|
| 2096 | - echo "},";// end attributes |
|
| 2097 | - |
|
| 2098 | - // get the content |
|
| 2099 | - $first_item = 0; |
|
| 2100 | - foreach ( $new_args as $new_key => $new_value ) { |
|
| 2101 | - if ( $new_key === 'content' || is_array( $new_value ) ) { |
|
| 2102 | - |
|
| 2103 | - if ( $new_key === 'content' ) { |
|
| 2104 | - echo "'" . $this->block_props_replace( wp_slash( $new_value ) ) . "'"; |
|
| 2105 | - } |
|
| 2106 | - |
|
| 2107 | - if ( is_array( $new_value ) ) { |
|
| 2108 | - |
|
| 2109 | - if ( isset( $new_value['element_require'] ) ) { |
|
| 2110 | - echo str_replace( array( |
|
| 2111 | - "'+", |
|
| 2112 | - "+'" |
|
| 2113 | - ), '', $this->block_props_replace( $new_value['element_require'] ) ) . " && "; |
|
| 2114 | - unset( $new_value['element_require'] ); |
|
| 2115 | - } |
|
| 2116 | - |
|
| 2117 | - if ( isset( $new_value['element_repeat'] ) ) { |
|
| 2118 | - $x = 1; |
|
| 2119 | - while ( $x <= absint( $new_value['element_repeat'] ) ) { |
|
| 2120 | - $this->block_element( array( '' => $new_value ) ); |
|
| 2121 | - $x ++; |
|
| 2122 | - } |
|
| 2123 | - } else { |
|
| 2124 | - $this->block_element( array( '' => $new_value ) ); |
|
| 2125 | - } |
|
| 2126 | - } |
|
| 2127 | - $first_item ++; |
|
| 2128 | - } |
|
| 2129 | - } |
|
| 2130 | - |
|
| 2131 | - echo ")";// end content |
|
| 2132 | - |
|
| 2133 | - echo ", \n"; |
|
| 2134 | - |
|
| 2135 | - } |
|
| 2136 | - } else { |
|
| 2137 | - |
|
| 2138 | - if ( substr( $element, 0, 3 ) === "if_" ) { |
|
| 2139 | - echo str_replace( "if_", "", $element ) . ": " . $this->block_props_replace( $new_args, true ) . ","; |
|
| 2140 | - } elseif ( $element == 'style' ) { |
|
| 2141 | - echo $element . ": " . $this->block_props_replace( $new_args ) . ","; |
|
| 2142 | - } else { |
|
| 2143 | - echo $element . ": '" . $this->block_props_replace( $new_args ) . "',"; |
|
| 2144 | - } |
|
| 2145 | - |
|
| 2146 | - } |
|
| 2147 | - } |
|
| 2148 | - } |
|
| 2149 | - } |
|
| 2150 | - |
|
| 2151 | - /** |
|
| 2152 | - * Replace block attributes placeholders with the proper naming. |
|
| 2153 | - * |
|
| 2154 | - * @param $string |
|
| 2155 | - * |
|
| 2156 | - * @return mixed |
|
| 2157 | - */ |
|
| 2158 | - public function block_props_replace( $string, $no_wrap = false ) { |
|
| 2159 | - |
|
| 2160 | - if ( $no_wrap ) { |
|
| 2161 | - $string = str_replace( array( "[%", "%]" ), array( "props.attributes.", "" ), $string ); |
|
| 2162 | - } else { |
|
| 2163 | - $string = str_replace( array( "[%", "%]" ), array( "'+props.attributes.", "+'" ), $string ); |
|
| 2164 | - } |
|
| 2165 | - |
|
| 2166 | - return $string; |
|
| 2167 | - } |
|
| 2168 | - |
|
| 2169 | - /** |
|
| 2170 | - * Outputs the content of the widget |
|
| 2171 | - * |
|
| 2172 | - * @param array $args |
|
| 2173 | - * @param array $instance |
|
| 2174 | - */ |
|
| 2175 | - public function widget( $args, $instance ) { |
|
| 2176 | - |
|
| 2177 | - // get the filtered values |
|
| 2178 | - $argument_values = $this->argument_values( $instance ); |
|
| 2179 | - $argument_values = $this->string_to_bool( $argument_values ); |
|
| 2180 | - $output = $this->output( $argument_values, $args ); |
|
| 2181 | - |
|
| 2182 | - $no_wrap = false; |
|
| 2183 | - if( isset( $argument_values['no_wrap'] ) && $argument_values['no_wrap'] ){ $no_wrap = true; } |
|
| 2184 | - |
|
| 2185 | - ob_start(); |
|
| 2186 | - if ( $output && !$no_wrap) { |
|
| 2187 | - // Before widget |
|
| 2188 | - $before_widget = $args['before_widget']; |
|
| 2189 | - $before_widget = apply_filters( 'wp_super_duper_before_widget', $before_widget, $args, $instance, $this ); |
|
| 2190 | - $before_widget = apply_filters( 'wp_super_duper_before_widget_' . $this->base_id, $before_widget, $args, $instance, $this ); |
|
| 2191 | - |
|
| 2192 | - // After widget |
|
| 2193 | - $after_widget = $args['after_widget']; |
|
| 2194 | - $after_widget = apply_filters( 'wp_super_duper_after_widget', $after_widget, $args, $instance, $this ); |
|
| 2195 | - $after_widget = apply_filters( 'wp_super_duper_after_widget_' . $this->base_id, $after_widget, $args, $instance, $this ); |
|
| 2196 | - |
|
| 2197 | - echo $before_widget; |
|
| 2198 | - // elementor strips the widget wrapping div so we check for and add it back if needed |
|
| 2199 | - if ( $this->is_elementor_widget_output() ) { |
|
| 2200 | - echo ! empty( $this->options['widget_ops']['classname'] ) ? "<span class='" . esc_attr( $this->options['widget_ops']['classname'] ) . "'>" : ''; |
|
| 2201 | - } |
|
| 2202 | - echo $this->output_title( $args, $instance ); |
|
| 2203 | - echo $output; |
|
| 2204 | - if ( $this->is_elementor_widget_output() ) { |
|
| 2205 | - echo ! empty( $this->options['widget_ops']['classname'] ) ? "</span>" : ''; |
|
| 2206 | - } |
|
| 2207 | - echo $after_widget; |
|
| 2208 | - } elseif ( $this->is_preview() && $output == '' ) {// if preview show a placeholder if empty |
|
| 2209 | - $output = $this->preview_placeholder_text( "{{" . $this->base_id . "}}" ); |
|
| 2210 | - echo $output; |
|
| 2211 | - } elseif($output && $no_wrap){ |
|
| 2212 | - echo $output; |
|
| 2213 | - } |
|
| 2214 | - $output = ob_get_clean(); |
|
| 2215 | - |
|
| 2216 | - $output = apply_filters( 'wp_super_duper_widget_output', $output, $instance, $args, $this ); |
|
| 2217 | - |
|
| 2218 | - echo $output; |
|
| 2219 | - } |
|
| 2220 | - |
|
| 2221 | - /** |
|
| 2222 | - * Tests if the current output is inside a elementor container. |
|
| 2223 | - * |
|
| 2224 | - * @since 1.0.4 |
|
| 2225 | - * @return bool |
|
| 2226 | - */ |
|
| 2227 | - public function is_elementor_widget_output() { |
|
| 2228 | - $result = false; |
|
| 2229 | - if ( defined( 'ELEMENTOR_VERSION' ) && isset( $this->number ) && $this->number == 'REPLACE_TO_ID' ) { |
|
| 2230 | - $result = true; |
|
| 2231 | - } |
|
| 2232 | - |
|
| 2233 | - return $result; |
|
| 2234 | - } |
|
| 2235 | - |
|
| 2236 | - /** |
|
| 2237 | - * Tests if the current output is inside a elementor preview. |
|
| 2238 | - * |
|
| 2239 | - * @since 1.0.4 |
|
| 2240 | - * @return bool |
|
| 2241 | - */ |
|
| 2242 | - public function is_elementor_preview() { |
|
| 2243 | - $result = false; |
|
| 2244 | - if ( isset( $_REQUEST['elementor-preview'] ) || ( is_admin() && isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'elementor' ) || ( isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'elementor_ajax' ) ) { |
|
| 2245 | - $result = true; |
|
| 2246 | - } |
|
| 2247 | - |
|
| 2248 | - return $result; |
|
| 2249 | - } |
|
| 2250 | - |
|
| 2251 | - /** |
|
| 2252 | - * Tests if the current output is inside a Divi preview. |
|
| 2253 | - * |
|
| 2254 | - * @since 1.0.6 |
|
| 2255 | - * @return bool |
|
| 2256 | - */ |
|
| 2257 | - public function is_divi_preview() { |
|
| 2258 | - $result = false; |
|
| 2259 | - if ( isset( $_REQUEST['et_fb'] ) || isset( $_REQUEST['et_pb_preview'] ) || ( is_admin() && isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'elementor' ) ) { |
|
| 2260 | - $result = true; |
|
| 2261 | - } |
|
| 2262 | - |
|
| 2263 | - return $result; |
|
| 2264 | - } |
|
| 2265 | - |
|
| 2266 | - /** |
|
| 2267 | - * Tests if the current output is inside a Beaver builder preview. |
|
| 2268 | - * |
|
| 2269 | - * @since 1.0.6 |
|
| 2270 | - * @return bool |
|
| 2271 | - */ |
|
| 2272 | - public function is_beaver_preview() { |
|
| 2273 | - $result = false; |
|
| 2274 | - if ( isset( $_REQUEST['fl_builder'] ) ) { |
|
| 2275 | - $result = true; |
|
| 2276 | - } |
|
| 2277 | - |
|
| 2278 | - return $result; |
|
| 2279 | - } |
|
| 2280 | - |
|
| 2281 | - /** |
|
| 2282 | - * Tests if the current output is inside a siteorigin builder preview. |
|
| 2283 | - * |
|
| 2284 | - * @since 1.0.6 |
|
| 2285 | - * @return bool |
|
| 2286 | - */ |
|
| 2287 | - public function is_siteorigin_preview() { |
|
| 2288 | - $result = false; |
|
| 2289 | - if ( ! empty( $_REQUEST['siteorigin_panels_live_editor'] ) ) { |
|
| 2290 | - $result = true; |
|
| 2291 | - } |
|
| 2292 | - |
|
| 2293 | - return $result; |
|
| 2294 | - } |
|
| 2295 | - |
|
| 2296 | - /** |
|
| 2297 | - * Tests if the current output is inside a cornerstone builder preview. |
|
| 2298 | - * |
|
| 2299 | - * @since 1.0.8 |
|
| 2300 | - * @return bool |
|
| 2301 | - */ |
|
| 2302 | - public function is_cornerstone_preview() { |
|
| 2303 | - $result = false; |
|
| 2304 | - if ( ! empty( $_REQUEST['cornerstone_preview'] ) || basename( $_SERVER['REQUEST_URI'] ) == 'cornerstone-endpoint' ) { |
|
| 2305 | - $result = true; |
|
| 2306 | - } |
|
| 2307 | - |
|
| 2308 | - return $result; |
|
| 2309 | - } |
|
| 2310 | - |
|
| 2311 | - /** |
|
| 2312 | - * Tests if the current output is inside a fusion builder preview. |
|
| 2313 | - * |
|
| 2314 | - * @since 1.1.0 |
|
| 2315 | - * @return bool |
|
| 2316 | - */ |
|
| 2317 | - public function is_fusion_preview() { |
|
| 2318 | - $result = false; |
|
| 2319 | - if ( ! empty( $_REQUEST['fb-edit'] ) || ! empty( $_REQUEST['fusion_load_nonce'] ) ) { |
|
| 2320 | - $result = true; |
|
| 2321 | - } |
|
| 2322 | - |
|
| 2323 | - return $result; |
|
| 2324 | - } |
|
| 2325 | - |
|
| 2326 | - /** |
|
| 2327 | - * General function to check if we are in a preview situation. |
|
| 2328 | - * |
|
| 2329 | - * @since 1.0.6 |
|
| 2330 | - * @return bool |
|
| 2331 | - */ |
|
| 2332 | - public function is_preview() { |
|
| 2333 | - $preview = false; |
|
| 2334 | - if ( $this->is_divi_preview() ) { |
|
| 2335 | - $preview = true; |
|
| 2336 | - } elseif ( $this->is_elementor_preview() ) { |
|
| 2337 | - $preview = true; |
|
| 2338 | - } elseif ( $this->is_beaver_preview() ) { |
|
| 2339 | - $preview = true; |
|
| 2340 | - } elseif ( $this->is_siteorigin_preview() ) { |
|
| 2341 | - $preview = true; |
|
| 2342 | - } elseif ( $this->is_cornerstone_preview() ) { |
|
| 2343 | - $preview = true; |
|
| 2344 | - } elseif ( $this->is_fusion_preview() ) { |
|
| 2345 | - $preview = true; |
|
| 2346 | - } |
|
| 2347 | - |
|
| 2348 | - return $preview; |
|
| 2349 | - } |
|
| 2350 | - |
|
| 2351 | - /** |
|
| 2352 | - * Output the super title. |
|
| 2353 | - * |
|
| 2354 | - * @param $args |
|
| 2355 | - * @param array $instance |
|
| 2356 | - * |
|
| 2357 | - * @return string |
|
| 2358 | - */ |
|
| 2359 | - public function output_title( $args, $instance = array() ) { |
|
| 2360 | - $output = ''; |
|
| 2361 | - if ( ! empty( $instance['title'] ) ) { |
|
| 2362 | - /** This filter is documented in wp-includes/widgets/class-wp-widget-pages.php */ |
|
| 2363 | - $title = apply_filters( 'widget_title', $instance['title'], $instance, $this->id_base ); |
|
| 2364 | - $output = $args['before_title'] . $title . $args['after_title']; |
|
| 2365 | - } |
|
| 2366 | - |
|
| 2367 | - return $output; |
|
| 2368 | - } |
|
| 2369 | - |
|
| 2370 | - /** |
|
| 2371 | - * Outputs the options form inputs for the widget. |
|
| 2372 | - * |
|
| 2373 | - * @param array $instance The widget options. |
|
| 2374 | - */ |
|
| 2375 | - public function form( $instance ) { |
|
| 2376 | - |
|
| 2377 | - // set widget instance |
|
| 2378 | - $this->instance = $instance; |
|
| 2379 | - |
|
| 2380 | - // set it as a SD widget |
|
| 2381 | - echo $this->widget_advanced_toggle(); |
|
| 2382 | - |
|
| 2383 | - echo "<p>" . esc_attr( $this->options['widget_ops']['description'] ) . "</p>"; |
|
| 2384 | - $arguments_raw = $this->get_arguments(); |
|
| 2385 | - |
|
| 2386 | - if ( is_array( $arguments_raw ) ) { |
|
| 2387 | - |
|
| 2388 | - $arguments = $this->group_arguments($arguments_raw); |
|
| 2389 | - |
|
| 2390 | - // Do we have sections? |
|
| 2391 | - $has_sections = $arguments == $arguments_raw ? false : true; |
|
| 2392 | - |
|
| 2393 | - |
|
| 2394 | - if($has_sections){ |
|
| 2395 | - $panel_count = 0; |
|
| 2396 | - foreach($arguments as $key => $args){ |
|
| 2397 | - |
|
| 2398 | - ?> |
|
| 2028 | + } |
|
| 2029 | + |
|
| 2030 | + /** |
|
| 2031 | + * Convert an array of attributes to block string. |
|
| 2032 | + * |
|
| 2033 | + * @todo there is prob a faster way to do this, also we could add some validation here. |
|
| 2034 | + * |
|
| 2035 | + * @param $custom_attributes |
|
| 2036 | + * |
|
| 2037 | + * @return string |
|
| 2038 | + */ |
|
| 2039 | + public function array_to_attributes( $custom_attributes, $html = false ) { |
|
| 2040 | + $attributes = ''; |
|
| 2041 | + if ( ! empty( $custom_attributes ) ) { |
|
| 2042 | + |
|
| 2043 | + if ( $html ) { |
|
| 2044 | + foreach ( $custom_attributes as $key => $val ) { |
|
| 2045 | + $attributes .= " $key='$val' "; |
|
| 2046 | + } |
|
| 2047 | + } else { |
|
| 2048 | + foreach ( $custom_attributes as $key => $val ) { |
|
| 2049 | + $attributes .= "'$key': '$val',"; |
|
| 2050 | + } |
|
| 2051 | + } |
|
| 2052 | + } |
|
| 2053 | + |
|
| 2054 | + return $attributes; |
|
| 2055 | + } |
|
| 2056 | + |
|
| 2057 | + /** |
|
| 2058 | + * A self looping function to create the output for JS block elements. |
|
| 2059 | + * |
|
| 2060 | + * This is what is output in the WP Editor visual view. |
|
| 2061 | + * |
|
| 2062 | + * @param $args |
|
| 2063 | + */ |
|
| 2064 | + public function block_element( $args ) { |
|
| 2065 | + |
|
| 2066 | + |
|
| 2067 | + if ( ! empty( $args ) ) { |
|
| 2068 | + foreach ( $args as $element => $new_args ) { |
|
| 2069 | + |
|
| 2070 | + if ( is_array( $new_args ) ) { // its an element |
|
| 2071 | + |
|
| 2072 | + |
|
| 2073 | + if ( isset( $new_args['element'] ) ) { |
|
| 2074 | + |
|
| 2075 | + if ( isset( $new_args['element_require'] ) ) { |
|
| 2076 | + echo str_replace( array( |
|
| 2077 | + "'+", |
|
| 2078 | + "+'" |
|
| 2079 | + ), '', $this->block_props_replace( $new_args['element_require'] ) ) . " && "; |
|
| 2080 | + unset( $new_args['element_require'] ); |
|
| 2081 | + } |
|
| 2082 | + |
|
| 2083 | + echo "\n el( '" . $new_args['element'] . "', {"; |
|
| 2084 | + |
|
| 2085 | + // get the attributes |
|
| 2086 | + foreach ( $new_args as $new_key => $new_value ) { |
|
| 2087 | + |
|
| 2088 | + |
|
| 2089 | + if ( $new_key == 'element' || $new_key == 'content' || $new_key == 'element_require' || $new_key == 'element_repeat' || is_array( $new_value ) ) { |
|
| 2090 | + // do nothing |
|
| 2091 | + } else { |
|
| 2092 | + echo $this->block_element( array( $new_key => $new_value ) ); |
|
| 2093 | + } |
|
| 2094 | + } |
|
| 2095 | + |
|
| 2096 | + echo "},";// end attributes |
|
| 2097 | + |
|
| 2098 | + // get the content |
|
| 2099 | + $first_item = 0; |
|
| 2100 | + foreach ( $new_args as $new_key => $new_value ) { |
|
| 2101 | + if ( $new_key === 'content' || is_array( $new_value ) ) { |
|
| 2102 | + |
|
| 2103 | + if ( $new_key === 'content' ) { |
|
| 2104 | + echo "'" . $this->block_props_replace( wp_slash( $new_value ) ) . "'"; |
|
| 2105 | + } |
|
| 2106 | + |
|
| 2107 | + if ( is_array( $new_value ) ) { |
|
| 2108 | + |
|
| 2109 | + if ( isset( $new_value['element_require'] ) ) { |
|
| 2110 | + echo str_replace( array( |
|
| 2111 | + "'+", |
|
| 2112 | + "+'" |
|
| 2113 | + ), '', $this->block_props_replace( $new_value['element_require'] ) ) . " && "; |
|
| 2114 | + unset( $new_value['element_require'] ); |
|
| 2115 | + } |
|
| 2116 | + |
|
| 2117 | + if ( isset( $new_value['element_repeat'] ) ) { |
|
| 2118 | + $x = 1; |
|
| 2119 | + while ( $x <= absint( $new_value['element_repeat'] ) ) { |
|
| 2120 | + $this->block_element( array( '' => $new_value ) ); |
|
| 2121 | + $x ++; |
|
| 2122 | + } |
|
| 2123 | + } else { |
|
| 2124 | + $this->block_element( array( '' => $new_value ) ); |
|
| 2125 | + } |
|
| 2126 | + } |
|
| 2127 | + $first_item ++; |
|
| 2128 | + } |
|
| 2129 | + } |
|
| 2130 | + |
|
| 2131 | + echo ")";// end content |
|
| 2132 | + |
|
| 2133 | + echo ", \n"; |
|
| 2134 | + |
|
| 2135 | + } |
|
| 2136 | + } else { |
|
| 2137 | + |
|
| 2138 | + if ( substr( $element, 0, 3 ) === "if_" ) { |
|
| 2139 | + echo str_replace( "if_", "", $element ) . ": " . $this->block_props_replace( $new_args, true ) . ","; |
|
| 2140 | + } elseif ( $element == 'style' ) { |
|
| 2141 | + echo $element . ": " . $this->block_props_replace( $new_args ) . ","; |
|
| 2142 | + } else { |
|
| 2143 | + echo $element . ": '" . $this->block_props_replace( $new_args ) . "',"; |
|
| 2144 | + } |
|
| 2145 | + |
|
| 2146 | + } |
|
| 2147 | + } |
|
| 2148 | + } |
|
| 2149 | + } |
|
| 2150 | + |
|
| 2151 | + /** |
|
| 2152 | + * Replace block attributes placeholders with the proper naming. |
|
| 2153 | + * |
|
| 2154 | + * @param $string |
|
| 2155 | + * |
|
| 2156 | + * @return mixed |
|
| 2157 | + */ |
|
| 2158 | + public function block_props_replace( $string, $no_wrap = false ) { |
|
| 2159 | + |
|
| 2160 | + if ( $no_wrap ) { |
|
| 2161 | + $string = str_replace( array( "[%", "%]" ), array( "props.attributes.", "" ), $string ); |
|
| 2162 | + } else { |
|
| 2163 | + $string = str_replace( array( "[%", "%]" ), array( "'+props.attributes.", "+'" ), $string ); |
|
| 2164 | + } |
|
| 2165 | + |
|
| 2166 | + return $string; |
|
| 2167 | + } |
|
| 2168 | + |
|
| 2169 | + /** |
|
| 2170 | + * Outputs the content of the widget |
|
| 2171 | + * |
|
| 2172 | + * @param array $args |
|
| 2173 | + * @param array $instance |
|
| 2174 | + */ |
|
| 2175 | + public function widget( $args, $instance ) { |
|
| 2176 | + |
|
| 2177 | + // get the filtered values |
|
| 2178 | + $argument_values = $this->argument_values( $instance ); |
|
| 2179 | + $argument_values = $this->string_to_bool( $argument_values ); |
|
| 2180 | + $output = $this->output( $argument_values, $args ); |
|
| 2181 | + |
|
| 2182 | + $no_wrap = false; |
|
| 2183 | + if( isset( $argument_values['no_wrap'] ) && $argument_values['no_wrap'] ){ $no_wrap = true; } |
|
| 2184 | + |
|
| 2185 | + ob_start(); |
|
| 2186 | + if ( $output && !$no_wrap) { |
|
| 2187 | + // Before widget |
|
| 2188 | + $before_widget = $args['before_widget']; |
|
| 2189 | + $before_widget = apply_filters( 'wp_super_duper_before_widget', $before_widget, $args, $instance, $this ); |
|
| 2190 | + $before_widget = apply_filters( 'wp_super_duper_before_widget_' . $this->base_id, $before_widget, $args, $instance, $this ); |
|
| 2191 | + |
|
| 2192 | + // After widget |
|
| 2193 | + $after_widget = $args['after_widget']; |
|
| 2194 | + $after_widget = apply_filters( 'wp_super_duper_after_widget', $after_widget, $args, $instance, $this ); |
|
| 2195 | + $after_widget = apply_filters( 'wp_super_duper_after_widget_' . $this->base_id, $after_widget, $args, $instance, $this ); |
|
| 2196 | + |
|
| 2197 | + echo $before_widget; |
|
| 2198 | + // elementor strips the widget wrapping div so we check for and add it back if needed |
|
| 2199 | + if ( $this->is_elementor_widget_output() ) { |
|
| 2200 | + echo ! empty( $this->options['widget_ops']['classname'] ) ? "<span class='" . esc_attr( $this->options['widget_ops']['classname'] ) . "'>" : ''; |
|
| 2201 | + } |
|
| 2202 | + echo $this->output_title( $args, $instance ); |
|
| 2203 | + echo $output; |
|
| 2204 | + if ( $this->is_elementor_widget_output() ) { |
|
| 2205 | + echo ! empty( $this->options['widget_ops']['classname'] ) ? "</span>" : ''; |
|
| 2206 | + } |
|
| 2207 | + echo $after_widget; |
|
| 2208 | + } elseif ( $this->is_preview() && $output == '' ) {// if preview show a placeholder if empty |
|
| 2209 | + $output = $this->preview_placeholder_text( "{{" . $this->base_id . "}}" ); |
|
| 2210 | + echo $output; |
|
| 2211 | + } elseif($output && $no_wrap){ |
|
| 2212 | + echo $output; |
|
| 2213 | + } |
|
| 2214 | + $output = ob_get_clean(); |
|
| 2215 | + |
|
| 2216 | + $output = apply_filters( 'wp_super_duper_widget_output', $output, $instance, $args, $this ); |
|
| 2217 | + |
|
| 2218 | + echo $output; |
|
| 2219 | + } |
|
| 2220 | + |
|
| 2221 | + /** |
|
| 2222 | + * Tests if the current output is inside a elementor container. |
|
| 2223 | + * |
|
| 2224 | + * @since 1.0.4 |
|
| 2225 | + * @return bool |
|
| 2226 | + */ |
|
| 2227 | + public function is_elementor_widget_output() { |
|
| 2228 | + $result = false; |
|
| 2229 | + if ( defined( 'ELEMENTOR_VERSION' ) && isset( $this->number ) && $this->number == 'REPLACE_TO_ID' ) { |
|
| 2230 | + $result = true; |
|
| 2231 | + } |
|
| 2232 | + |
|
| 2233 | + return $result; |
|
| 2234 | + } |
|
| 2235 | + |
|
| 2236 | + /** |
|
| 2237 | + * Tests if the current output is inside a elementor preview. |
|
| 2238 | + * |
|
| 2239 | + * @since 1.0.4 |
|
| 2240 | + * @return bool |
|
| 2241 | + */ |
|
| 2242 | + public function is_elementor_preview() { |
|
| 2243 | + $result = false; |
|
| 2244 | + if ( isset( $_REQUEST['elementor-preview'] ) || ( is_admin() && isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'elementor' ) || ( isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'elementor_ajax' ) ) { |
|
| 2245 | + $result = true; |
|
| 2246 | + } |
|
| 2247 | + |
|
| 2248 | + return $result; |
|
| 2249 | + } |
|
| 2250 | + |
|
| 2251 | + /** |
|
| 2252 | + * Tests if the current output is inside a Divi preview. |
|
| 2253 | + * |
|
| 2254 | + * @since 1.0.6 |
|
| 2255 | + * @return bool |
|
| 2256 | + */ |
|
| 2257 | + public function is_divi_preview() { |
|
| 2258 | + $result = false; |
|
| 2259 | + if ( isset( $_REQUEST['et_fb'] ) || isset( $_REQUEST['et_pb_preview'] ) || ( is_admin() && isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'elementor' ) ) { |
|
| 2260 | + $result = true; |
|
| 2261 | + } |
|
| 2262 | + |
|
| 2263 | + return $result; |
|
| 2264 | + } |
|
| 2265 | + |
|
| 2266 | + /** |
|
| 2267 | + * Tests if the current output is inside a Beaver builder preview. |
|
| 2268 | + * |
|
| 2269 | + * @since 1.0.6 |
|
| 2270 | + * @return bool |
|
| 2271 | + */ |
|
| 2272 | + public function is_beaver_preview() { |
|
| 2273 | + $result = false; |
|
| 2274 | + if ( isset( $_REQUEST['fl_builder'] ) ) { |
|
| 2275 | + $result = true; |
|
| 2276 | + } |
|
| 2277 | + |
|
| 2278 | + return $result; |
|
| 2279 | + } |
|
| 2280 | + |
|
| 2281 | + /** |
|
| 2282 | + * Tests if the current output is inside a siteorigin builder preview. |
|
| 2283 | + * |
|
| 2284 | + * @since 1.0.6 |
|
| 2285 | + * @return bool |
|
| 2286 | + */ |
|
| 2287 | + public function is_siteorigin_preview() { |
|
| 2288 | + $result = false; |
|
| 2289 | + if ( ! empty( $_REQUEST['siteorigin_panels_live_editor'] ) ) { |
|
| 2290 | + $result = true; |
|
| 2291 | + } |
|
| 2292 | + |
|
| 2293 | + return $result; |
|
| 2294 | + } |
|
| 2295 | + |
|
| 2296 | + /** |
|
| 2297 | + * Tests if the current output is inside a cornerstone builder preview. |
|
| 2298 | + * |
|
| 2299 | + * @since 1.0.8 |
|
| 2300 | + * @return bool |
|
| 2301 | + */ |
|
| 2302 | + public function is_cornerstone_preview() { |
|
| 2303 | + $result = false; |
|
| 2304 | + if ( ! empty( $_REQUEST['cornerstone_preview'] ) || basename( $_SERVER['REQUEST_URI'] ) == 'cornerstone-endpoint' ) { |
|
| 2305 | + $result = true; |
|
| 2306 | + } |
|
| 2307 | + |
|
| 2308 | + return $result; |
|
| 2309 | + } |
|
| 2310 | + |
|
| 2311 | + /** |
|
| 2312 | + * Tests if the current output is inside a fusion builder preview. |
|
| 2313 | + * |
|
| 2314 | + * @since 1.1.0 |
|
| 2315 | + * @return bool |
|
| 2316 | + */ |
|
| 2317 | + public function is_fusion_preview() { |
|
| 2318 | + $result = false; |
|
| 2319 | + if ( ! empty( $_REQUEST['fb-edit'] ) || ! empty( $_REQUEST['fusion_load_nonce'] ) ) { |
|
| 2320 | + $result = true; |
|
| 2321 | + } |
|
| 2322 | + |
|
| 2323 | + return $result; |
|
| 2324 | + } |
|
| 2325 | + |
|
| 2326 | + /** |
|
| 2327 | + * General function to check if we are in a preview situation. |
|
| 2328 | + * |
|
| 2329 | + * @since 1.0.6 |
|
| 2330 | + * @return bool |
|
| 2331 | + */ |
|
| 2332 | + public function is_preview() { |
|
| 2333 | + $preview = false; |
|
| 2334 | + if ( $this->is_divi_preview() ) { |
|
| 2335 | + $preview = true; |
|
| 2336 | + } elseif ( $this->is_elementor_preview() ) { |
|
| 2337 | + $preview = true; |
|
| 2338 | + } elseif ( $this->is_beaver_preview() ) { |
|
| 2339 | + $preview = true; |
|
| 2340 | + } elseif ( $this->is_siteorigin_preview() ) { |
|
| 2341 | + $preview = true; |
|
| 2342 | + } elseif ( $this->is_cornerstone_preview() ) { |
|
| 2343 | + $preview = true; |
|
| 2344 | + } elseif ( $this->is_fusion_preview() ) { |
|
| 2345 | + $preview = true; |
|
| 2346 | + } |
|
| 2347 | + |
|
| 2348 | + return $preview; |
|
| 2349 | + } |
|
| 2350 | + |
|
| 2351 | + /** |
|
| 2352 | + * Output the super title. |
|
| 2353 | + * |
|
| 2354 | + * @param $args |
|
| 2355 | + * @param array $instance |
|
| 2356 | + * |
|
| 2357 | + * @return string |
|
| 2358 | + */ |
|
| 2359 | + public function output_title( $args, $instance = array() ) { |
|
| 2360 | + $output = ''; |
|
| 2361 | + if ( ! empty( $instance['title'] ) ) { |
|
| 2362 | + /** This filter is documented in wp-includes/widgets/class-wp-widget-pages.php */ |
|
| 2363 | + $title = apply_filters( 'widget_title', $instance['title'], $instance, $this->id_base ); |
|
| 2364 | + $output = $args['before_title'] . $title . $args['after_title']; |
|
| 2365 | + } |
|
| 2366 | + |
|
| 2367 | + return $output; |
|
| 2368 | + } |
|
| 2369 | + |
|
| 2370 | + /** |
|
| 2371 | + * Outputs the options form inputs for the widget. |
|
| 2372 | + * |
|
| 2373 | + * @param array $instance The widget options. |
|
| 2374 | + */ |
|
| 2375 | + public function form( $instance ) { |
|
| 2376 | + |
|
| 2377 | + // set widget instance |
|
| 2378 | + $this->instance = $instance; |
|
| 2379 | + |
|
| 2380 | + // set it as a SD widget |
|
| 2381 | + echo $this->widget_advanced_toggle(); |
|
| 2382 | + |
|
| 2383 | + echo "<p>" . esc_attr( $this->options['widget_ops']['description'] ) . "</p>"; |
|
| 2384 | + $arguments_raw = $this->get_arguments(); |
|
| 2385 | + |
|
| 2386 | + if ( is_array( $arguments_raw ) ) { |
|
| 2387 | + |
|
| 2388 | + $arguments = $this->group_arguments($arguments_raw); |
|
| 2389 | + |
|
| 2390 | + // Do we have sections? |
|
| 2391 | + $has_sections = $arguments == $arguments_raw ? false : true; |
|
| 2392 | + |
|
| 2393 | + |
|
| 2394 | + if($has_sections){ |
|
| 2395 | + $panel_count = 0; |
|
| 2396 | + foreach($arguments as $key => $args){ |
|
| 2397 | + |
|
| 2398 | + ?> |
|
| 2399 | 2399 | <script> |
| 2400 | 2400 | // jQuery(this).find("i").toggleClass("fas fa-chevron-up fas fa-chevron-down");jQuery(this).next().toggle(); |
| 2401 | 2401 | </script> |
| 2402 | 2402 | <?php |
| 2403 | 2403 | |
| 2404 | - $hide = $panel_count ? ' style="display:none;" ' : ''; |
|
| 2405 | - $icon_class = $panel_count ? 'fas fa-chevron-up' : 'fas fa-chevron-down'; |
|
| 2406 | - echo "<button onclick='jQuery(this).find(\"i\").toggleClass(\"fas fa-chevron-up fas fa-chevron-down\");jQuery(this).next().slideToggle();' type='button' class='sd-toggle-group-button sd-input-group-toggle".sanitize_title_with_dashes($key)."'>".esc_attr($key)." <i style='float:right;' class='".$icon_class."'></i></button>"; |
|
| 2407 | - echo "<div class='sd-toggle-group sd-input-group-".sanitize_title_with_dashes($key)."' $hide>"; |
|
| 2408 | - |
|
| 2409 | - foreach($args as $k => $a){ |
|
| 2410 | - $this->widget_inputs($a, $instance); |
|
| 2411 | - } |
|
| 2412 | - |
|
| 2413 | - echo "</div>"; |
|
| 2414 | - |
|
| 2415 | - $panel_count++; |
|
| 2416 | - |
|
| 2417 | - } |
|
| 2418 | - }else{ |
|
| 2419 | - foreach ( $arguments as $key => $args ) { |
|
| 2420 | - $this->widget_inputs( $args, $instance ); |
|
| 2421 | - } |
|
| 2422 | - } |
|
| 2423 | - |
|
| 2424 | - } |
|
| 2425 | - } |
|
| 2426 | - |
|
| 2427 | - /** |
|
| 2428 | - * Get the hidden input that when added makes the advanced button show on widget settings. |
|
| 2429 | - * |
|
| 2430 | - * @return string |
|
| 2431 | - */ |
|
| 2432 | - public function widget_advanced_toggle() { |
|
| 2433 | - |
|
| 2434 | - $output = ''; |
|
| 2435 | - if ( $this->block_show_advanced() ) { |
|
| 2436 | - $val = 1; |
|
| 2437 | - } else { |
|
| 2438 | - $val = 0; |
|
| 2439 | - } |
|
| 2440 | - |
|
| 2441 | - $output .= "<input type='hidden' class='sd-show-advanced' value='$val' />"; |
|
| 2442 | - |
|
| 2443 | - return $output; |
|
| 2444 | - } |
|
| 2445 | - |
|
| 2446 | - /** |
|
| 2447 | - * Convert require element. |
|
| 2448 | - * |
|
| 2449 | - * @since 1.0.0 |
|
| 2450 | - * |
|
| 2451 | - * @param string $input Input element. |
|
| 2452 | - * |
|
| 2453 | - * @return string $output |
|
| 2454 | - */ |
|
| 2455 | - public function convert_element_require( $input ) { |
|
| 2456 | - |
|
| 2457 | - $input = str_replace( "'", '"', $input );// we only want double quotes |
|
| 2458 | - |
|
| 2459 | - $output = esc_attr( str_replace( array( "[%", "%]" ), array( |
|
| 2460 | - "jQuery(form).find('[data-argument=\"", |
|
| 2461 | - "\"]').find('input,select,textarea').val()" |
|
| 2462 | - ), $input ) ); |
|
| 2463 | - |
|
| 2464 | - return $output; |
|
| 2465 | - } |
|
| 2466 | - |
|
| 2467 | - /** |
|
| 2468 | - * Builds the inputs for the widget options. |
|
| 2469 | - * |
|
| 2470 | - * @param $args |
|
| 2471 | - * @param $instance |
|
| 2472 | - */ |
|
| 2473 | - public function widget_inputs( $args, $instance ) { |
|
| 2474 | - |
|
| 2475 | - $class = ""; |
|
| 2476 | - $element_require = ""; |
|
| 2477 | - $custom_attributes = ""; |
|
| 2478 | - |
|
| 2479 | - // get value |
|
| 2480 | - if ( isset( $instance[ $args['name'] ] ) ) { |
|
| 2481 | - $value = $instance[ $args['name'] ]; |
|
| 2482 | - } elseif ( ! isset( $instance[ $args['name'] ] ) && ! empty( $args['default'] ) ) { |
|
| 2483 | - $value = is_array( $args['default'] ) ? array_map( "esc_html", $args['default'] ) : esc_html( $args['default'] ); |
|
| 2484 | - } else { |
|
| 2485 | - $value = ''; |
|
| 2486 | - } |
|
| 2487 | - |
|
| 2488 | - // get placeholder |
|
| 2489 | - if ( ! empty( $args['placeholder'] ) ) { |
|
| 2490 | - $placeholder = "placeholder='" . esc_html( $args['placeholder'] ) . "'"; |
|
| 2491 | - } else { |
|
| 2492 | - $placeholder = ''; |
|
| 2493 | - } |
|
| 2494 | - |
|
| 2495 | - // get if advanced |
|
| 2496 | - if ( isset( $args['advanced'] ) && $args['advanced'] ) { |
|
| 2497 | - $class .= " sd-advanced-setting "; |
|
| 2498 | - } |
|
| 2499 | - |
|
| 2500 | - // element_require |
|
| 2501 | - if ( isset( $args['element_require'] ) && $args['element_require'] ) { |
|
| 2502 | - $element_require = $args['element_require']; |
|
| 2503 | - } |
|
| 2504 | - |
|
| 2505 | - // custom_attributes |
|
| 2506 | - if ( isset( $args['custom_attributes'] ) && $args['custom_attributes'] ) { |
|
| 2507 | - $custom_attributes = $this->array_to_attributes( $args['custom_attributes'], true ); |
|
| 2508 | - } |
|
| 2509 | - |
|
| 2510 | - // before wrapper |
|
| 2511 | - ?> |
|
| 2404 | + $hide = $panel_count ? ' style="display:none;" ' : ''; |
|
| 2405 | + $icon_class = $panel_count ? 'fas fa-chevron-up' : 'fas fa-chevron-down'; |
|
| 2406 | + echo "<button onclick='jQuery(this).find(\"i\").toggleClass(\"fas fa-chevron-up fas fa-chevron-down\");jQuery(this).next().slideToggle();' type='button' class='sd-toggle-group-button sd-input-group-toggle".sanitize_title_with_dashes($key)."'>".esc_attr($key)." <i style='float:right;' class='".$icon_class."'></i></button>"; |
|
| 2407 | + echo "<div class='sd-toggle-group sd-input-group-".sanitize_title_with_dashes($key)."' $hide>"; |
|
| 2408 | + |
|
| 2409 | + foreach($args as $k => $a){ |
|
| 2410 | + $this->widget_inputs($a, $instance); |
|
| 2411 | + } |
|
| 2412 | + |
|
| 2413 | + echo "</div>"; |
|
| 2414 | + |
|
| 2415 | + $panel_count++; |
|
| 2416 | + |
|
| 2417 | + } |
|
| 2418 | + }else{ |
|
| 2419 | + foreach ( $arguments as $key => $args ) { |
|
| 2420 | + $this->widget_inputs( $args, $instance ); |
|
| 2421 | + } |
|
| 2422 | + } |
|
| 2423 | + |
|
| 2424 | + } |
|
| 2425 | + } |
|
| 2426 | + |
|
| 2427 | + /** |
|
| 2428 | + * Get the hidden input that when added makes the advanced button show on widget settings. |
|
| 2429 | + * |
|
| 2430 | + * @return string |
|
| 2431 | + */ |
|
| 2432 | + public function widget_advanced_toggle() { |
|
| 2433 | + |
|
| 2434 | + $output = ''; |
|
| 2435 | + if ( $this->block_show_advanced() ) { |
|
| 2436 | + $val = 1; |
|
| 2437 | + } else { |
|
| 2438 | + $val = 0; |
|
| 2439 | + } |
|
| 2440 | + |
|
| 2441 | + $output .= "<input type='hidden' class='sd-show-advanced' value='$val' />"; |
|
| 2442 | + |
|
| 2443 | + return $output; |
|
| 2444 | + } |
|
| 2445 | + |
|
| 2446 | + /** |
|
| 2447 | + * Convert require element. |
|
| 2448 | + * |
|
| 2449 | + * @since 1.0.0 |
|
| 2450 | + * |
|
| 2451 | + * @param string $input Input element. |
|
| 2452 | + * |
|
| 2453 | + * @return string $output |
|
| 2454 | + */ |
|
| 2455 | + public function convert_element_require( $input ) { |
|
| 2456 | + |
|
| 2457 | + $input = str_replace( "'", '"', $input );// we only want double quotes |
|
| 2458 | + |
|
| 2459 | + $output = esc_attr( str_replace( array( "[%", "%]" ), array( |
|
| 2460 | + "jQuery(form).find('[data-argument=\"", |
|
| 2461 | + "\"]').find('input,select,textarea').val()" |
|
| 2462 | + ), $input ) ); |
|
| 2463 | + |
|
| 2464 | + return $output; |
|
| 2465 | + } |
|
| 2466 | + |
|
| 2467 | + /** |
|
| 2468 | + * Builds the inputs for the widget options. |
|
| 2469 | + * |
|
| 2470 | + * @param $args |
|
| 2471 | + * @param $instance |
|
| 2472 | + */ |
|
| 2473 | + public function widget_inputs( $args, $instance ) { |
|
| 2474 | + |
|
| 2475 | + $class = ""; |
|
| 2476 | + $element_require = ""; |
|
| 2477 | + $custom_attributes = ""; |
|
| 2478 | + |
|
| 2479 | + // get value |
|
| 2480 | + if ( isset( $instance[ $args['name'] ] ) ) { |
|
| 2481 | + $value = $instance[ $args['name'] ]; |
|
| 2482 | + } elseif ( ! isset( $instance[ $args['name'] ] ) && ! empty( $args['default'] ) ) { |
|
| 2483 | + $value = is_array( $args['default'] ) ? array_map( "esc_html", $args['default'] ) : esc_html( $args['default'] ); |
|
| 2484 | + } else { |
|
| 2485 | + $value = ''; |
|
| 2486 | + } |
|
| 2487 | + |
|
| 2488 | + // get placeholder |
|
| 2489 | + if ( ! empty( $args['placeholder'] ) ) { |
|
| 2490 | + $placeholder = "placeholder='" . esc_html( $args['placeholder'] ) . "'"; |
|
| 2491 | + } else { |
|
| 2492 | + $placeholder = ''; |
|
| 2493 | + } |
|
| 2494 | + |
|
| 2495 | + // get if advanced |
|
| 2496 | + if ( isset( $args['advanced'] ) && $args['advanced'] ) { |
|
| 2497 | + $class .= " sd-advanced-setting "; |
|
| 2498 | + } |
|
| 2499 | + |
|
| 2500 | + // element_require |
|
| 2501 | + if ( isset( $args['element_require'] ) && $args['element_require'] ) { |
|
| 2502 | + $element_require = $args['element_require']; |
|
| 2503 | + } |
|
| 2504 | + |
|
| 2505 | + // custom_attributes |
|
| 2506 | + if ( isset( $args['custom_attributes'] ) && $args['custom_attributes'] ) { |
|
| 2507 | + $custom_attributes = $this->array_to_attributes( $args['custom_attributes'], true ); |
|
| 2508 | + } |
|
| 2509 | + |
|
| 2510 | + // before wrapper |
|
| 2511 | + ?> |
|
| 2512 | 2512 | <p class="sd-argument <?php echo esc_attr( $class ); ?>" |
| 2513 | 2513 | data-argument='<?php echo esc_attr( $args['name'] ); ?>' |
| 2514 | 2514 | data-element_require='<?php if ( $element_require ) { |
| 2515 | - echo $this->convert_element_require( $element_require ); |
|
| 2516 | - } ?>' |
|
| 2515 | + echo $this->convert_element_require( $element_require ); |
|
| 2516 | + } ?>' |
|
| 2517 | 2517 | > |
| 2518 | 2518 | <?php |
| 2519 | 2519 | |
| 2520 | - switch ( $args['type'] ) { |
|
| 2521 | - //array('text','password','number','email','tel','url','color') |
|
| 2522 | - case "text": |
|
| 2523 | - case "password": |
|
| 2524 | - case "number": |
|
| 2525 | - case "email": |
|
| 2526 | - case "tel": |
|
| 2527 | - case "url": |
|
| 2528 | - case "color": |
|
| 2529 | - ?> |
|
| 2520 | + switch ( $args['type'] ) { |
|
| 2521 | + //array('text','password','number','email','tel','url','color') |
|
| 2522 | + case "text": |
|
| 2523 | + case "password": |
|
| 2524 | + case "number": |
|
| 2525 | + case "email": |
|
| 2526 | + case "tel": |
|
| 2527 | + case "url": |
|
| 2528 | + case "color": |
|
| 2529 | + ?> |
|
| 2530 | 2530 | <label |
| 2531 | 2531 | for="<?php echo esc_attr( $this->get_field_id( $args['name'] ) ); ?>"><?php echo esc_attr( $args['title'] ); ?><?php echo $this->widget_field_desc( $args ); ?></label> |
| 2532 | 2532 | <input <?php echo $placeholder; ?> class="widefat" |
@@ -2537,47 +2537,47 @@ discard block |
||
| 2537 | 2537 | value="<?php echo esc_attr( $value ); ?>"> |
| 2538 | 2538 | <?php |
| 2539 | 2539 | |
| 2540 | - break; |
|
| 2541 | - case "select": |
|
| 2542 | - $multiple = isset( $args['multiple'] ) && $args['multiple'] ? true : false; |
|
| 2543 | - if ( $multiple ) { |
|
| 2544 | - if ( empty( $value ) ) { |
|
| 2545 | - $value = array(); |
|
| 2546 | - } |
|
| 2547 | - } |
|
| 2548 | - ?> |
|
| 2540 | + break; |
|
| 2541 | + case "select": |
|
| 2542 | + $multiple = isset( $args['multiple'] ) && $args['multiple'] ? true : false; |
|
| 2543 | + if ( $multiple ) { |
|
| 2544 | + if ( empty( $value ) ) { |
|
| 2545 | + $value = array(); |
|
| 2546 | + } |
|
| 2547 | + } |
|
| 2548 | + ?> |
|
| 2549 | 2549 | <label |
| 2550 | 2550 | for="<?php echo esc_attr( $this->get_field_id( $args['name'] ) ); ?>"><?php echo esc_attr( $args['title'] ); ?><?php echo $this->widget_field_desc( $args ); ?></label> |
| 2551 | 2551 | <select <?php echo $placeholder; ?> class="widefat" |
| 2552 | 2552 | <?php echo $custom_attributes; ?> |
| 2553 | 2553 | id="<?php echo esc_attr( $this->get_field_id( $args['name'] ) ); ?>" |
| 2554 | 2554 | name="<?php echo esc_attr( $this->get_field_name( $args['name'] ) ); |
| 2555 | - if ( $multiple ) { |
|
| 2556 | - echo "[]"; |
|
| 2557 | - } ?>" |
|
| 2555 | + if ( $multiple ) { |
|
| 2556 | + echo "[]"; |
|
| 2557 | + } ?>" |
|
| 2558 | 2558 | <?php if ( $multiple ) { |
| 2559 | - echo "multiple"; |
|
| 2560 | - } //@todo not implemented yet due to gutenberg not supporting it |
|
| 2561 | - ?> |
|
| 2559 | + echo "multiple"; |
|
| 2560 | + } //@todo not implemented yet due to gutenberg not supporting it |
|
| 2561 | + ?> |
|
| 2562 | 2562 | > |
| 2563 | 2563 | <?php |
| 2564 | 2564 | |
| 2565 | - if ( ! empty( $args['options'] ) ) { |
|
| 2566 | - foreach ( $args['options'] as $val => $label ) { |
|
| 2567 | - if ( $multiple ) { |
|
| 2568 | - $selected = in_array( $val, $value ) ? 'selected="selected"' : ''; |
|
| 2569 | - } else { |
|
| 2570 | - $selected = selected( $value, $val, false ); |
|
| 2571 | - } |
|
| 2572 | - echo "<option value='$val' " . $selected . ">$label</option>"; |
|
| 2573 | - } |
|
| 2574 | - } |
|
| 2575 | - ?> |
|
| 2565 | + if ( ! empty( $args['options'] ) ) { |
|
| 2566 | + foreach ( $args['options'] as $val => $label ) { |
|
| 2567 | + if ( $multiple ) { |
|
| 2568 | + $selected = in_array( $val, $value ) ? 'selected="selected"' : ''; |
|
| 2569 | + } else { |
|
| 2570 | + $selected = selected( $value, $val, false ); |
|
| 2571 | + } |
|
| 2572 | + echo "<option value='$val' " . $selected . ">$label</option>"; |
|
| 2573 | + } |
|
| 2574 | + } |
|
| 2575 | + ?> |
|
| 2576 | 2576 | </select> |
| 2577 | 2577 | <?php |
| 2578 | - break; |
|
| 2579 | - case "checkbox": |
|
| 2580 | - ?> |
|
| 2578 | + break; |
|
| 2579 | + case "checkbox": |
|
| 2580 | + ?> |
|
| 2581 | 2581 | <input <?php echo $placeholder; ?> |
| 2582 | 2582 | <?php checked( 1, $value, true ) ?> |
| 2583 | 2583 | <?php echo $custom_attributes; ?> |
@@ -2587,9 +2587,9 @@ discard block |
||
| 2587 | 2587 | <label |
| 2588 | 2588 | for="<?php echo esc_attr( $this->get_field_id( $args['name'] ) ); ?>"><?php echo esc_attr( $args['title'] ); ?><?php echo $this->widget_field_desc( $args ); ?></label> |
| 2589 | 2589 | <?php |
| 2590 | - break; |
|
| 2591 | - case "textarea": |
|
| 2592 | - ?> |
|
| 2590 | + break; |
|
| 2591 | + case "textarea": |
|
| 2592 | + ?> |
|
| 2593 | 2593 | <label |
| 2594 | 2594 | for="<?php echo esc_attr( $this->get_field_id( $args['name'] ) ); ?>"><?php echo esc_attr( $args['title'] ); ?><?php echo $this->widget_field_desc( $args ); ?></label> |
| 2595 | 2595 | <textarea <?php echo $placeholder; ?> class="widefat" |
@@ -2599,136 +2599,136 @@ discard block |
||
| 2599 | 2599 | ><?php echo esc_attr( $value ); ?></textarea> |
| 2600 | 2600 | <?php |
| 2601 | 2601 | |
| 2602 | - break; |
|
| 2603 | - case "hidden": |
|
| 2604 | - ?> |
|
| 2602 | + break; |
|
| 2603 | + case "hidden": |
|
| 2604 | + ?> |
|
| 2605 | 2605 | <input id="<?php echo esc_attr( $this->get_field_id( $args['name'] ) ); ?>" |
| 2606 | 2606 | name="<?php echo esc_attr( $this->get_field_name( $args['name'] ) ); ?>" type="hidden" |
| 2607 | 2607 | value="<?php echo esc_attr( $value ); ?>"> |
| 2608 | 2608 | <?php |
| 2609 | - break; |
|
| 2610 | - default: |
|
| 2611 | - echo "No input type found!"; // @todo we need to add more input types. |
|
| 2612 | - } |
|
| 2609 | + break; |
|
| 2610 | + default: |
|
| 2611 | + echo "No input type found!"; // @todo we need to add more input types. |
|
| 2612 | + } |
|
| 2613 | 2613 | |
| 2614 | - // after wrapper |
|
| 2615 | - ?> |
|
| 2614 | + // after wrapper |
|
| 2615 | + ?> |
|
| 2616 | 2616 | </p> |
| 2617 | 2617 | <?php |
| 2618 | 2618 | |
| 2619 | - } |
|
| 2620 | - |
|
| 2621 | - /** |
|
| 2622 | - * Get the widget input description html. |
|
| 2623 | - * |
|
| 2624 | - * @param $args |
|
| 2625 | - * |
|
| 2626 | - * @return string |
|
| 2627 | - * @todo, need to make its own tooltip script |
|
| 2628 | - */ |
|
| 2629 | - public function widget_field_desc( $args ) { |
|
| 2630 | - |
|
| 2631 | - $description = ''; |
|
| 2632 | - if ( isset( $args['desc'] ) && $args['desc'] ) { |
|
| 2633 | - if ( isset( $args['desc_tip'] ) && $args['desc_tip'] ) { |
|
| 2634 | - $description = $this->desc_tip( $args['desc'] ); |
|
| 2635 | - } else { |
|
| 2636 | - $description = '<span class="description">' . wp_kses_post( $args['desc'] ) . '</span>'; |
|
| 2637 | - } |
|
| 2638 | - } |
|
| 2639 | - |
|
| 2640 | - return $description; |
|
| 2641 | - } |
|
| 2642 | - |
|
| 2643 | - /** |
|
| 2644 | - * Get the tool tip html. |
|
| 2645 | - * |
|
| 2646 | - * @param $tip |
|
| 2647 | - * @param bool $allow_html |
|
| 2648 | - * |
|
| 2649 | - * @return string |
|
| 2650 | - */ |
|
| 2651 | - function desc_tip( $tip, $allow_html = false ) { |
|
| 2652 | - if ( $allow_html ) { |
|
| 2653 | - $tip = $this->sanitize_tooltip( $tip ); |
|
| 2654 | - } else { |
|
| 2655 | - $tip = esc_attr( $tip ); |
|
| 2656 | - } |
|
| 2657 | - |
|
| 2658 | - return '<span class="gd-help-tip dashicons dashicons-editor-help" title="' . $tip . '"></span>'; |
|
| 2659 | - } |
|
| 2660 | - |
|
| 2661 | - /** |
|
| 2662 | - * Sanitize a string destined to be a tooltip. |
|
| 2663 | - * |
|
| 2664 | - * @param string $var |
|
| 2665 | - * |
|
| 2666 | - * @return string |
|
| 2667 | - */ |
|
| 2668 | - public function sanitize_tooltip( $var ) { |
|
| 2669 | - return htmlspecialchars( wp_kses( html_entity_decode( $var ), array( |
|
| 2670 | - 'br' => array(), |
|
| 2671 | - 'em' => array(), |
|
| 2672 | - 'strong' => array(), |
|
| 2673 | - 'small' => array(), |
|
| 2674 | - 'span' => array(), |
|
| 2675 | - 'ul' => array(), |
|
| 2676 | - 'li' => array(), |
|
| 2677 | - 'ol' => array(), |
|
| 2678 | - 'p' => array(), |
|
| 2679 | - ) ) ); |
|
| 2680 | - } |
|
| 2681 | - |
|
| 2682 | - /** |
|
| 2683 | - * Processing widget options on save |
|
| 2684 | - * |
|
| 2685 | - * @param array $new_instance The new options |
|
| 2686 | - * @param array $old_instance The previous options |
|
| 2687 | - * |
|
| 2688 | - * @return array |
|
| 2689 | - * @todo we should add some sanitation here. |
|
| 2690 | - */ |
|
| 2691 | - public function update( $new_instance, $old_instance ) { |
|
| 2692 | - |
|
| 2693 | - //save the widget |
|
| 2694 | - $instance = array_merge( (array) $old_instance, (array) $new_instance ); |
|
| 2695 | - |
|
| 2696 | - // set widget instance |
|
| 2697 | - $this->instance = $instance; |
|
| 2698 | - |
|
| 2699 | - if ( empty( $this->arguments ) ) { |
|
| 2700 | - $this->get_arguments(); |
|
| 2701 | - } |
|
| 2702 | - |
|
| 2703 | - // check for checkboxes |
|
| 2704 | - if ( ! empty( $this->arguments ) ) { |
|
| 2705 | - foreach ( $this->arguments as $argument ) { |
|
| 2706 | - if ( isset( $argument['type'] ) && $argument['type'] == 'checkbox' && ! isset( $new_instance[ $argument['name'] ] ) ) { |
|
| 2707 | - $instance[ $argument['name'] ] = '0'; |
|
| 2708 | - } |
|
| 2709 | - } |
|
| 2710 | - } |
|
| 2711 | - |
|
| 2712 | - return $instance; |
|
| 2713 | - } |
|
| 2714 | - |
|
| 2715 | - /** |
|
| 2716 | - * Checks if the current call is a ajax call to get the block content. |
|
| 2717 | - * |
|
| 2718 | - * This can be used in your widget to return different content as the block content. |
|
| 2719 | - * |
|
| 2720 | - * @since 1.0.3 |
|
| 2721 | - * @return bool |
|
| 2722 | - */ |
|
| 2723 | - public function is_block_content_call() { |
|
| 2724 | - $result = false; |
|
| 2725 | - if ( wp_doing_ajax() && isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'super_duper_output_shortcode' ) { |
|
| 2726 | - $result = true; |
|
| 2727 | - } |
|
| 2728 | - |
|
| 2729 | - return $result; |
|
| 2730 | - } |
|
| 2731 | - |
|
| 2732 | - } |
|
| 2619 | + } |
|
| 2620 | + |
|
| 2621 | + /** |
|
| 2622 | + * Get the widget input description html. |
|
| 2623 | + * |
|
| 2624 | + * @param $args |
|
| 2625 | + * |
|
| 2626 | + * @return string |
|
| 2627 | + * @todo, need to make its own tooltip script |
|
| 2628 | + */ |
|
| 2629 | + public function widget_field_desc( $args ) { |
|
| 2630 | + |
|
| 2631 | + $description = ''; |
|
| 2632 | + if ( isset( $args['desc'] ) && $args['desc'] ) { |
|
| 2633 | + if ( isset( $args['desc_tip'] ) && $args['desc_tip'] ) { |
|
| 2634 | + $description = $this->desc_tip( $args['desc'] ); |
|
| 2635 | + } else { |
|
| 2636 | + $description = '<span class="description">' . wp_kses_post( $args['desc'] ) . '</span>'; |
|
| 2637 | + } |
|
| 2638 | + } |
|
| 2639 | + |
|
| 2640 | + return $description; |
|
| 2641 | + } |
|
| 2642 | + |
|
| 2643 | + /** |
|
| 2644 | + * Get the tool tip html. |
|
| 2645 | + * |
|
| 2646 | + * @param $tip |
|
| 2647 | + * @param bool $allow_html |
|
| 2648 | + * |
|
| 2649 | + * @return string |
|
| 2650 | + */ |
|
| 2651 | + function desc_tip( $tip, $allow_html = false ) { |
|
| 2652 | + if ( $allow_html ) { |
|
| 2653 | + $tip = $this->sanitize_tooltip( $tip ); |
|
| 2654 | + } else { |
|
| 2655 | + $tip = esc_attr( $tip ); |
|
| 2656 | + } |
|
| 2657 | + |
|
| 2658 | + return '<span class="gd-help-tip dashicons dashicons-editor-help" title="' . $tip . '"></span>'; |
|
| 2659 | + } |
|
| 2660 | + |
|
| 2661 | + /** |
|
| 2662 | + * Sanitize a string destined to be a tooltip. |
|
| 2663 | + * |
|
| 2664 | + * @param string $var |
|
| 2665 | + * |
|
| 2666 | + * @return string |
|
| 2667 | + */ |
|
| 2668 | + public function sanitize_tooltip( $var ) { |
|
| 2669 | + return htmlspecialchars( wp_kses( html_entity_decode( $var ), array( |
|
| 2670 | + 'br' => array(), |
|
| 2671 | + 'em' => array(), |
|
| 2672 | + 'strong' => array(), |
|
| 2673 | + 'small' => array(), |
|
| 2674 | + 'span' => array(), |
|
| 2675 | + 'ul' => array(), |
|
| 2676 | + 'li' => array(), |
|
| 2677 | + 'ol' => array(), |
|
| 2678 | + 'p' => array(), |
|
| 2679 | + ) ) ); |
|
| 2680 | + } |
|
| 2681 | + |
|
| 2682 | + /** |
|
| 2683 | + * Processing widget options on save |
|
| 2684 | + * |
|
| 2685 | + * @param array $new_instance The new options |
|
| 2686 | + * @param array $old_instance The previous options |
|
| 2687 | + * |
|
| 2688 | + * @return array |
|
| 2689 | + * @todo we should add some sanitation here. |
|
| 2690 | + */ |
|
| 2691 | + public function update( $new_instance, $old_instance ) { |
|
| 2692 | + |
|
| 2693 | + //save the widget |
|
| 2694 | + $instance = array_merge( (array) $old_instance, (array) $new_instance ); |
|
| 2695 | + |
|
| 2696 | + // set widget instance |
|
| 2697 | + $this->instance = $instance; |
|
| 2698 | + |
|
| 2699 | + if ( empty( $this->arguments ) ) { |
|
| 2700 | + $this->get_arguments(); |
|
| 2701 | + } |
|
| 2702 | + |
|
| 2703 | + // check for checkboxes |
|
| 2704 | + if ( ! empty( $this->arguments ) ) { |
|
| 2705 | + foreach ( $this->arguments as $argument ) { |
|
| 2706 | + if ( isset( $argument['type'] ) && $argument['type'] == 'checkbox' && ! isset( $new_instance[ $argument['name'] ] ) ) { |
|
| 2707 | + $instance[ $argument['name'] ] = '0'; |
|
| 2708 | + } |
|
| 2709 | + } |
|
| 2710 | + } |
|
| 2711 | + |
|
| 2712 | + return $instance; |
|
| 2713 | + } |
|
| 2714 | + |
|
| 2715 | + /** |
|
| 2716 | + * Checks if the current call is a ajax call to get the block content. |
|
| 2717 | + * |
|
| 2718 | + * This can be used in your widget to return different content as the block content. |
|
| 2719 | + * |
|
| 2720 | + * @since 1.0.3 |
|
| 2721 | + * @return bool |
|
| 2722 | + */ |
|
| 2723 | + public function is_block_content_call() { |
|
| 2724 | + $result = false; |
|
| 2725 | + if ( wp_doing_ajax() && isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'super_duper_output_shortcode' ) { |
|
| 2726 | + $result = true; |
|
| 2727 | + } |
|
| 2728 | + |
|
| 2729 | + return $result; |
|
| 2730 | + } |
|
| 2731 | + |
|
| 2732 | + } |
|
| 2733 | 2733 | |
| 2734 | 2734 | } |
| 2735 | 2735 | \ No newline at end of file |
@@ -1,9 +1,9 @@ discard block |
||
| 1 | 1 | <?php |
| 2 | -if ( ! defined( 'ABSPATH' ) ) { |
|
| 2 | +if (!defined('ABSPATH')) { |
|
| 3 | 3 | exit; |
| 4 | 4 | } |
| 5 | 5 | |
| 6 | -if ( ! class_exists( 'WP_Super_Duper' ) ) { |
|
| 6 | +if (!class_exists('WP_Super_Duper')) { |
|
| 7 | 7 | |
| 8 | 8 | |
| 9 | 9 | /** |
@@ -36,27 +36,27 @@ discard block |
||
| 36 | 36 | /** |
| 37 | 37 | * Take the array options and use them to build. |
| 38 | 38 | */ |
| 39 | - public function __construct( $options ) { |
|
| 39 | + public function __construct($options) { |
|
| 40 | 40 | global $sd_widgets; |
| 41 | 41 | |
| 42 | - $sd_widgets[ $options['base_id'] ] = array( |
|
| 42 | + $sd_widgets[$options['base_id']] = array( |
|
| 43 | 43 | 'name' => $options['name'], |
| 44 | 44 | 'class_name' => $options['class_name'] |
| 45 | 45 | ); |
| 46 | - $this->base_id = $options['base_id']; |
|
| 46 | + $this->base_id = $options['base_id']; |
|
| 47 | 47 | // lets filter the options before we do anything |
| 48 | - $options = apply_filters( "wp_super_duper_options", $options ); |
|
| 49 | - $options = apply_filters( "wp_super_duper_options_{$this->base_id}", $options ); |
|
| 50 | - $options = $this->add_name_from_key( $options ); |
|
| 48 | + $options = apply_filters("wp_super_duper_options", $options); |
|
| 49 | + $options = apply_filters("wp_super_duper_options_{$this->base_id}", $options); |
|
| 50 | + $options = $this->add_name_from_key($options); |
|
| 51 | 51 | $this->options = $options; |
| 52 | 52 | |
| 53 | 53 | $this->base_id = $options['base_id']; |
| 54 | - $this->arguments = isset( $options['arguments'] ) ? $options['arguments'] : array(); |
|
| 54 | + $this->arguments = isset($options['arguments']) ? $options['arguments'] : array(); |
|
| 55 | 55 | |
| 56 | 56 | // init parent |
| 57 | - parent::__construct( $options['base_id'], $options['name'], $options['widget_ops'] ); |
|
| 57 | + parent::__construct($options['base_id'], $options['name'], $options['widget_ops']); |
|
| 58 | 58 | |
| 59 | - if ( isset( $options['class_name'] ) ) { |
|
| 59 | + if (isset($options['class_name'])) { |
|
| 60 | 60 | // register widget |
| 61 | 61 | $this->class_name = $options['class_name']; |
| 62 | 62 | |
@@ -64,54 +64,54 @@ discard block |
||
| 64 | 64 | $this->register_shortcode(); |
| 65 | 65 | |
| 66 | 66 | // Fusion Builder (avada) support |
| 67 | - if( function_exists('fusion_builder_map') ){ $this->register_fusion_element(); } |
|
| 67 | + if (function_exists('fusion_builder_map')) { $this->register_fusion_element(); } |
|
| 68 | 68 | |
| 69 | 69 | // register block |
| 70 | - add_action( 'admin_enqueue_scripts', array( $this, 'register_block' ) ); |
|
| 70 | + add_action('admin_enqueue_scripts', array($this, 'register_block')); |
|
| 71 | 71 | } |
| 72 | 72 | |
| 73 | 73 | // add the CSS and JS we need ONCE |
| 74 | 74 | global $sd_widget_scripts; |
| 75 | 75 | |
| 76 | - if ( ! $sd_widget_scripts ) { |
|
| 77 | - wp_add_inline_script( 'admin-widgets', $this->widget_js() ); |
|
| 78 | - wp_add_inline_script( 'customize-controls', $this->widget_js() ); |
|
| 79 | - wp_add_inline_style( 'widgets', $this->widget_css() ); |
|
| 76 | + if (!$sd_widget_scripts) { |
|
| 77 | + wp_add_inline_script('admin-widgets', $this->widget_js()); |
|
| 78 | + wp_add_inline_script('customize-controls', $this->widget_js()); |
|
| 79 | + wp_add_inline_style('widgets', $this->widget_css()); |
|
| 80 | 80 | |
| 81 | 81 | $sd_widget_scripts = true; |
| 82 | 82 | |
| 83 | 83 | // add shortcode insert button once |
| 84 | - add_action( 'media_buttons', array( $this, 'shortcode_insert_button' ) ); |
|
| 84 | + add_action('media_buttons', array($this, 'shortcode_insert_button')); |
|
| 85 | 85 | // generatepress theme sections compatibility |
| 86 | - if ( function_exists( 'generate_sections_sections_metabox' ) ) { |
|
| 87 | - add_action( 'generate_sections_metabox', array( $this, 'shortcode_insert_button_script' ) ); |
|
| 86 | + if (function_exists('generate_sections_sections_metabox')) { |
|
| 87 | + add_action('generate_sections_metabox', array($this, 'shortcode_insert_button_script')); |
|
| 88 | 88 | } |
| 89 | - if ( $this->is_preview() ) { |
|
| 90 | - add_action( 'wp_footer', array( $this, 'shortcode_insert_button_script' ) ); |
|
| 89 | + if ($this->is_preview()) { |
|
| 90 | + add_action('wp_footer', array($this, 'shortcode_insert_button_script')); |
|
| 91 | 91 | // this makes the insert button work for elementor |
| 92 | - add_action( 'elementor/editor/after_enqueue_scripts', array( |
|
| 92 | + add_action('elementor/editor/after_enqueue_scripts', array( |
|
| 93 | 93 | $this, |
| 94 | 94 | 'shortcode_insert_button_script' |
| 95 | - ) ); // for elementor |
|
| 95 | + )); // for elementor |
|
| 96 | 96 | } |
| 97 | 97 | // this makes the insert button work for cornerstone |
| 98 | - add_action('wp_print_footer_scripts',array( __CLASS__, 'maybe_cornerstone_builder' )); |
|
| 98 | + add_action('wp_print_footer_scripts', array(__CLASS__, 'maybe_cornerstone_builder')); |
|
| 99 | 99 | |
| 100 | - add_action( 'wp_ajax_super_duper_get_widget_settings', array( __CLASS__, 'get_widget_settings' ) ); |
|
| 101 | - add_action( 'wp_ajax_super_duper_get_picker', array( __CLASS__, 'get_picker' ) ); |
|
| 100 | + add_action('wp_ajax_super_duper_get_widget_settings', array(__CLASS__, 'get_widget_settings')); |
|
| 101 | + add_action('wp_ajax_super_duper_get_picker', array(__CLASS__, 'get_picker')); |
|
| 102 | 102 | |
| 103 | 103 | // add generator text to admin head |
| 104 | - add_action( 'admin_head', array( $this, 'generator' ) ); |
|
| 104 | + add_action('admin_head', array($this, 'generator')); |
|
| 105 | 105 | } |
| 106 | 106 | |
| 107 | - do_action( 'wp_super_duper_widget_init', $options, $this ); |
|
| 107 | + do_action('wp_super_duper_widget_init', $options, $this); |
|
| 108 | 108 | } |
| 109 | 109 | |
| 110 | - public function register_fusion_element(){ |
|
| 110 | + public function register_fusion_element() { |
|
| 111 | 111 | |
| 112 | 112 | $options = $this->options; |
| 113 | 113 | |
| 114 | - if($this->base_id){ |
|
| 114 | + if ($this->base_id) { |
|
| 115 | 115 | |
| 116 | 116 | $params = $this->get_fusion_params(); |
| 117 | 117 | |
@@ -122,7 +122,7 @@ discard block |
||
| 122 | 122 | 'allow_generator' => true, |
| 123 | 123 | ); |
| 124 | 124 | |
| 125 | - if(!empty($params)){ |
|
| 125 | + if (!empty($params)) { |
|
| 126 | 126 | $args['params'] = $params; |
| 127 | 127 | } |
| 128 | 128 | |
@@ -131,12 +131,12 @@ discard block |
||
| 131 | 131 | |
| 132 | 132 | } |
| 133 | 133 | |
| 134 | - public function get_fusion_params(){ |
|
| 134 | + public function get_fusion_params() { |
|
| 135 | 135 | $params = array(); |
| 136 | 136 | $arguments = $this->get_arguments(); |
| 137 | 137 | |
| 138 | - if(!empty($arguments)){ |
|
| 139 | - foreach($arguments as $key => $val){ |
|
| 138 | + if (!empty($arguments)) { |
|
| 139 | + foreach ($arguments as $key => $val) { |
|
| 140 | 140 | $param = array(); |
| 141 | 141 | // type |
| 142 | 142 | $param['type'] = str_replace( |
@@ -170,19 +170,19 @@ discard block |
||
| 170 | 170 | $param['default'] = isset($val['default']) ? $val['default'] : ''; |
| 171 | 171 | |
| 172 | 172 | // Group |
| 173 | - if(isset($val['group'])){ |
|
| 173 | + if (isset($val['group'])) { |
|
| 174 | 174 | $param['group'] = $val['group']; |
| 175 | 175 | } |
| 176 | 176 | |
| 177 | 177 | // value |
| 178 | - if($val['type'] == 'checkbox'){ |
|
| 179 | - if(isset($val['default']) && $val['default'] == '0'){ |
|
| 178 | + if ($val['type'] == 'checkbox') { |
|
| 179 | + if (isset($val['default']) && $val['default'] == '0') { |
|
| 180 | 180 | unset($param['default']); |
| 181 | 181 | } |
| 182 | - $param['value'] = array(''=>__("No"),'1'=>__("Yes")); |
|
| 183 | - }elseif($param['type'] == 'select'){ |
|
| 182 | + $param['value'] = array(''=>__("No"), '1'=>__("Yes")); |
|
| 183 | + }elseif ($param['type'] == 'select') { |
|
| 184 | 184 | $param['value'] = isset($val['options']) ? $val['options'] : array(); |
| 185 | - }else{ |
|
| 185 | + } else { |
|
| 186 | 186 | $param['value'] = isset($val['default']) ? $val['default'] : ''; |
| 187 | 187 | } |
| 188 | 188 | |
@@ -199,8 +199,8 @@ discard block |
||
| 199 | 199 | /** |
| 200 | 200 | * Maybe insert the shortcode inserter button in the footer if we are in the cornerstone builder |
| 201 | 201 | */ |
| 202 | - public static function maybe_cornerstone_builder(){ |
|
| 203 | - if(did_action('cornerstone_before_boot_app')){ |
|
| 202 | + public static function maybe_cornerstone_builder() { |
|
| 203 | + if (did_action('cornerstone_before_boot_app')) { |
|
| 204 | 204 | self::shortcode_insert_button_script(); |
| 205 | 205 | } |
| 206 | 206 | } |
@@ -212,12 +212,12 @@ discard block |
||
| 212 | 212 | * |
| 213 | 213 | * @return string |
| 214 | 214 | */ |
| 215 | - public static function get_picker( $editor_id = '' ) { |
|
| 215 | + public static function get_picker($editor_id = '') { |
|
| 216 | 216 | |
| 217 | 217 | ob_start(); |
| 218 | - if ( isset( $_POST['editor_id'] ) ) { |
|
| 219 | - $editor_id = esc_attr( $_POST['editor_id'] ); |
|
| 220 | - } elseif ( isset( $_REQUEST['et_fb'] ) ) { |
|
| 218 | + if (isset($_POST['editor_id'])) { |
|
| 219 | + $editor_id = esc_attr($_POST['editor_id']); |
|
| 220 | + } elseif (isset($_REQUEST['et_fb'])) { |
|
| 221 | 221 | $editor_id = 'main_content_content_vb_tiny_mce'; |
| 222 | 222 | } |
| 223 | 223 | |
@@ -226,13 +226,13 @@ discard block |
||
| 226 | 226 | |
| 227 | 227 | <div class="sd-shortcode-left-wrap"> |
| 228 | 228 | <?php |
| 229 | - ksort( $sd_widgets ); |
|
| 229 | + ksort($sd_widgets); |
|
| 230 | 230 | // print_r($sd_widgets);exit; |
| 231 | - if ( ! empty( $sd_widgets ) ) { |
|
| 231 | + if (!empty($sd_widgets)) { |
|
| 232 | 232 | echo '<select class="widefat" onchange="sd_get_shortcode_options(this);">'; |
| 233 | - echo "<option>" . __( 'Select shortcode' ) . "</option>"; |
|
| 234 | - foreach ( $sd_widgets as $shortcode => $class ) { |
|
| 235 | - echo "<option value='" . esc_attr( $shortcode ) . "'>" . esc_attr( $shortcode ) . " (" . esc_attr( $class['name'] ) . ")</option>"; |
|
| 233 | + echo "<option>" . __('Select shortcode') . "</option>"; |
|
| 234 | + foreach ($sd_widgets as $shortcode => $class) { |
|
| 235 | + echo "<option value='" . esc_attr($shortcode) . "'>" . esc_attr($shortcode) . " (" . esc_attr($class['name']) . ")</option>"; |
|
| 236 | 236 | } |
| 237 | 237 | echo "</select>"; |
| 238 | 238 | |
@@ -245,37 +245,37 @@ discard block |
||
| 245 | 245 | <div class="sd-shortcode-right-wrap"> |
| 246 | 246 | <textarea id='sd-shortcode-output' disabled></textarea> |
| 247 | 247 | <div id='sd-shortcode-output-actions'> |
| 248 | - <?php if ( $editor_id != '' ) { ?> |
|
| 248 | + <?php if ($editor_id != '') { ?> |
|
| 249 | 249 | <button class="button sd-insert-shortcode-button" |
| 250 | - onclick="sd_insert_shortcode(<?php if ( ! empty( $editor_id ) ) { |
|
| 250 | + onclick="sd_insert_shortcode(<?php if (!empty($editor_id)) { |
|
| 251 | 251 | echo "'" . $editor_id . "'"; |
| 252 | - } ?>)"><?php _e( 'Insert shortcode' ); ?></button> |
|
| 252 | + } ?>)"><?php _e('Insert shortcode'); ?></button> |
|
| 253 | 253 | <?php } ?> |
| 254 | 254 | <button class="button" |
| 255 | - onclick="sd_copy_to_clipboard()"><?php _e( 'Copy shortcode' ); ?></button> |
|
| 255 | + onclick="sd_copy_to_clipboard()"><?php _e('Copy shortcode'); ?></button> |
|
| 256 | 256 | </div> |
| 257 | 257 | </div> |
| 258 | 258 | <?php |
| 259 | 259 | |
| 260 | 260 | $html = ob_get_clean(); |
| 261 | 261 | |
| 262 | - if ( wp_doing_ajax() ) { |
|
| 262 | + if (wp_doing_ajax()) { |
|
| 263 | 263 | echo $html; |
| 264 | 264 | $should_die = true; |
| 265 | 265 | |
| 266 | 266 | // some builder get the editor via ajax so we should not die on those ocasions |
| 267 | 267 | $dont_die = array( |
| 268 | - 'parent_tag',// WP Bakery |
|
| 268 | + 'parent_tag', // WP Bakery |
|
| 269 | 269 | 'avia_request' // enfold |
| 270 | 270 | ); |
| 271 | 271 | |
| 272 | - foreach ( $dont_die as $request ) { |
|
| 273 | - if ( isset( $_REQUEST[ $request ] ) ) { |
|
| 272 | + foreach ($dont_die as $request) { |
|
| 273 | + if (isset($_REQUEST[$request])) { |
|
| 274 | 274 | $should_die = false; |
| 275 | 275 | } |
| 276 | 276 | } |
| 277 | 277 | |
| 278 | - if ( $should_die ) { |
|
| 278 | + if ($should_die) { |
|
| 279 | 279 | wp_die(); |
| 280 | 280 | } |
| 281 | 281 | |
@@ -302,16 +302,16 @@ discard block |
||
| 302 | 302 | public static function get_widget_settings() { |
| 303 | 303 | global $sd_widgets; |
| 304 | 304 | |
| 305 | - $shortcode = isset( $_REQUEST['shortcode'] ) && $_REQUEST['shortcode'] ? sanitize_title_with_dashes( $_REQUEST['shortcode'] ) : ''; |
|
| 306 | - if ( ! $shortcode ) { |
|
| 305 | + $shortcode = isset($_REQUEST['shortcode']) && $_REQUEST['shortcode'] ? sanitize_title_with_dashes($_REQUEST['shortcode']) : ''; |
|
| 306 | + if (!$shortcode) { |
|
| 307 | 307 | wp_die(); |
| 308 | 308 | } |
| 309 | - $widget_args = isset( $sd_widgets[ $shortcode ] ) ? $sd_widgets[ $shortcode ] : ''; |
|
| 310 | - if ( ! $widget_args ) { |
|
| 309 | + $widget_args = isset($sd_widgets[$shortcode]) ? $sd_widgets[$shortcode] : ''; |
|
| 310 | + if (!$widget_args) { |
|
| 311 | 311 | wp_die(); |
| 312 | 312 | } |
| 313 | - $class_name = isset( $widget_args['class_name'] ) && $widget_args['class_name'] ? $widget_args['class_name'] : ''; |
|
| 314 | - if ( ! $class_name ) { |
|
| 313 | + $class_name = isset($widget_args['class_name']) && $widget_args['class_name'] ? $widget_args['class_name'] : ''; |
|
| 314 | + if (!$class_name) { |
|
| 315 | 315 | wp_die(); |
| 316 | 316 | } |
| 317 | 317 | |
@@ -319,7 +319,7 @@ discard block |
||
| 319 | 319 | $widget = new $class_name; |
| 320 | 320 | |
| 321 | 321 | ob_start(); |
| 322 | - $widget->form( array() ); |
|
| 322 | + $widget->form(array()); |
|
| 323 | 323 | $form = ob_get_clean(); |
| 324 | 324 | echo "<form id='$shortcode'>" . $form . "<div class=\"widget-control-save\"></div></form>"; |
| 325 | 325 | echo "<style>" . $widget->widget_css() . "</style>"; |
@@ -337,9 +337,9 @@ discard block |
||
| 337 | 337 | * @param string $editor_id Optional. Shortcode editor id. Default null. |
| 338 | 338 | * @param string $insert_shortcode_function Optional. Insert shotcode function. Default null. |
| 339 | 339 | */ |
| 340 | - public static function shortcode_insert_button( $editor_id = '', $insert_shortcode_function = '' ) { |
|
| 340 | + public static function shortcode_insert_button($editor_id = '', $insert_shortcode_function = '') { |
|
| 341 | 341 | global $sd_widgets, $shortcode_insert_button_once; |
| 342 | - if ( $shortcode_insert_button_once ) { |
|
| 342 | + if ($shortcode_insert_button_once) { |
|
| 343 | 343 | return; |
| 344 | 344 | } |
| 345 | 345 | add_thickbox(); |
@@ -349,21 +349,21 @@ discard block |
||
| 349 | 349 | * Cornerstone makes us play dirty tricks :/ |
| 350 | 350 | * All media_buttons are removed via JS unless they are two specific id's so we wrap our content in this ID so it is not removed. |
| 351 | 351 | */ |
| 352 | - if ( function_exists( 'cornerstone_plugin_init' ) && ! is_admin() ) { |
|
| 352 | + if (function_exists('cornerstone_plugin_init') && !is_admin()) { |
|
| 353 | 353 | echo '<span id="insert-media-button">'; |
| 354 | 354 | } |
| 355 | 355 | |
| 356 | - echo self::shortcode_button( 'this', 'true' ); |
|
| 356 | + echo self::shortcode_button('this', 'true'); |
|
| 357 | 357 | |
| 358 | 358 | // see opening note |
| 359 | - if ( function_exists( 'cornerstone_plugin_init' ) && ! is_admin() ) { |
|
| 359 | + if (function_exists('cornerstone_plugin_init') && !is_admin()) { |
|
| 360 | 360 | echo '</span>'; // end #insert-media-button |
| 361 | 361 | } |
| 362 | 362 | |
| 363 | 363 | // Add separate script for generatepress theme sections |
| 364 | - if ( function_exists( 'generate_sections_sections_metabox' ) && did_action( 'generate_sections_metabox' ) ) { |
|
| 364 | + if (function_exists('generate_sections_sections_metabox') && did_action('generate_sections_metabox')) { |
|
| 365 | 365 | } else { |
| 366 | - self::shortcode_insert_button_script( $editor_id, $insert_shortcode_function ); |
|
| 366 | + self::shortcode_insert_button_script($editor_id, $insert_shortcode_function); |
|
| 367 | 367 | } |
| 368 | 368 | |
| 369 | 369 | $shortcode_insert_button_once = true; |
@@ -377,12 +377,12 @@ discard block |
||
| 377 | 377 | * |
| 378 | 378 | * @return mixed |
| 379 | 379 | */ |
| 380 | - public static function shortcode_button( $id = '', $search_for_id = '' ) { |
|
| 380 | + public static function shortcode_button($id = '', $search_for_id = '') { |
|
| 381 | 381 | ob_start(); |
| 382 | 382 | ?> |
| 383 | 383 | <span class="sd-lable-shortcode-inserter"> |
| 384 | 384 | <a onclick="sd_ajax_get_picker(<?php echo $id; |
| 385 | - if ( $search_for_id ) { |
|
| 385 | + if ($search_for_id) { |
|
| 386 | 386 | echo "," . $search_for_id; |
| 387 | 387 | } ?>);" href="#TB_inline?width=100%&height=550&inlineId=super-duper-content-ajaxed" |
| 388 | 388 | class="thickbox button super-duper-content-open" title="Add Shortcode"> |
@@ -398,7 +398,7 @@ discard block |
||
| 398 | 398 | $html = ob_get_clean(); |
| 399 | 399 | |
| 400 | 400 | // remove line breaks so we can use it in js |
| 401 | - return preg_replace( "/\r|\n/", "", trim( $html ) ); |
|
| 401 | + return preg_replace("/\r|\n/", "", trim($html)); |
|
| 402 | 402 | } |
| 403 | 403 | |
| 404 | 404 | /** |
@@ -456,7 +456,7 @@ discard block |
||
| 456 | 456 | jQuery($this).data('sd-widget-enabled', true); |
| 457 | 457 | } |
| 458 | 458 | |
| 459 | - var $button = '<button title="<?php _e( 'Advanced Settings' );?>" class="button button-primary right sd-advanced-button" onclick="sd_so_toggle_advanced(this);return false;"><i class="fas fa-sliders-h" aria-hidden="true"></i></button>'; |
|
| 459 | + var $button = '<button title="<?php _e('Advanced Settings'); ?>" class="button button-primary right sd-advanced-button" onclick="sd_so_toggle_advanced(this);return false;"><i class="fas fa-sliders-h" aria-hidden="true"></i></button>'; |
|
| 460 | 460 | var form = jQuery($this).parents('' + $selector + ''); |
| 461 | 461 | |
| 462 | 462 | if (jQuery($this).val() == '1' && jQuery(form).find('.sd-advanced-button').length == 0) { |
@@ -493,10 +493,10 @@ discard block |
||
| 493 | 493 | * We only add the <script> tags for code highlighting, so we strip them from the output. |
| 494 | 494 | */ |
| 495 | 495 | |
| 496 | - return str_replace( array( |
|
| 496 | + return str_replace(array( |
|
| 497 | 497 | '<script>', |
| 498 | 498 | '</script>' |
| 499 | - ), '', $output ); |
|
| 499 | + ), '', $output); |
|
| 500 | 500 | } |
| 501 | 501 | |
| 502 | 502 | /** |
@@ -507,7 +507,7 @@ discard block |
||
| 507 | 507 | * @param string $editor_id |
| 508 | 508 | * @param string $insert_shortcode_function |
| 509 | 509 | */ |
| 510 | - public static function shortcode_insert_button_script( $editor_id = '', $insert_shortcode_function = '' ) { |
|
| 510 | + public static function shortcode_insert_button_script($editor_id = '', $insert_shortcode_function = '') { |
|
| 511 | 511 | ?> |
| 512 | 512 | <style> |
| 513 | 513 | .sd-shortcode-left-wrap { |
@@ -625,22 +625,22 @@ discard block |
||
| 625 | 625 | height: 250px; |
| 626 | 626 | width: 100%; |
| 627 | 627 | } |
| 628 | - <?php if ( function_exists( 'generate_sections_sections_metabox' ) ) { ?> |
|
| 628 | + <?php if (function_exists('generate_sections_sections_metabox')) { ?> |
|
| 629 | 629 | .generate-sections-modal #custom-media-buttons > .sd-lable-shortcode-inserter { |
| 630 | 630 | display: inline; |
| 631 | 631 | } |
| 632 | 632 | <?php } ?> |
| 633 | 633 | </style> |
| 634 | 634 | <?php |
| 635 | - if ( class_exists( 'SiteOrigin_Panels' ) ) { |
|
| 635 | + if (class_exists('SiteOrigin_Panels')) { |
|
| 636 | 636 | echo "<script>" . self::siteorigin_js() . "</script>"; |
| 637 | 637 | } |
| 638 | 638 | ?> |
| 639 | 639 | <script> |
| 640 | 640 | <?php |
| 641 | - if(! empty( $insert_shortcode_function )){ |
|
| 641 | + if (!empty($insert_shortcode_function)) { |
|
| 642 | 642 | echo $insert_shortcode_function; |
| 643 | - }else{ |
|
| 643 | + } else { |
|
| 644 | 644 | |
| 645 | 645 | /** |
| 646 | 646 | * Function for super duper insert shortcode. |
@@ -653,9 +653,9 @@ discard block |
||
| 653 | 653 | if ($shortcode) { |
| 654 | 654 | if (!$editor_id) { |
| 655 | 655 | <?php |
| 656 | - if ( isset( $_REQUEST['et_fb'] ) ) { |
|
| 656 | + if (isset($_REQUEST['et_fb'])) { |
|
| 657 | 657 | echo '$editor_id = "#main_content_content_vb_tiny_mce";'; |
| 658 | - } elseif ( isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'elementor' ) { |
|
| 658 | + } elseif (isset($_REQUEST['action']) && $_REQUEST['action'] == 'elementor') { |
|
| 659 | 659 | echo '$editor_id = "#elementor-controls .wp-editor-container textarea";'; |
| 660 | 660 | } else { |
| 661 | 661 | echo '$editor_id = "#wp-content-editor-container textarea";'; |
@@ -740,11 +740,11 @@ discard block |
||
| 740 | 740 | 'shortcode': $short_code, |
| 741 | 741 | 'attributes': 123, |
| 742 | 742 | 'post_id': 321, |
| 743 | - '_ajax_nonce': '<?php echo wp_create_nonce( 'super_duper_output_shortcode' );?>' |
|
| 743 | + '_ajax_nonce': '<?php echo wp_create_nonce('super_duper_output_shortcode'); ?>' |
|
| 744 | 744 | }; |
| 745 | 745 | |
| 746 | 746 | if (typeof ajaxurl === 'undefined') { |
| 747 | - var ajaxurl = "<?php echo admin_url( 'admin-ajax.php' );?>"; |
|
| 747 | + var ajaxurl = "<?php echo admin_url('admin-ajax.php'); ?>"; |
|
| 748 | 748 | } |
| 749 | 749 | |
| 750 | 750 | jQuery.post(ajaxurl, data, function (response) { |
@@ -953,11 +953,11 @@ discard block |
||
| 953 | 953 | var data = { |
| 954 | 954 | 'action': 'super_duper_get_picker', |
| 955 | 955 | 'editor_id': $id, |
| 956 | - '_ajax_nonce': '<?php echo wp_create_nonce( 'super_duper_picker' );?>' |
|
| 956 | + '_ajax_nonce': '<?php echo wp_create_nonce('super_duper_picker'); ?>' |
|
| 957 | 957 | }; |
| 958 | 958 | |
| 959 | 959 | if (!ajaxurl) { |
| 960 | - var ajaxurl = "<?php echo admin_url( 'admin-ajax.php' ); ?>"; |
|
| 960 | + var ajaxurl = "<?php echo admin_url('admin-ajax.php'); ?>"; |
|
| 961 | 961 | } |
| 962 | 962 | |
| 963 | 963 | jQuery.post(ajaxurl, data, function (response) { |
@@ -978,9 +978,9 @@ discard block |
||
| 978 | 978 | */ |
| 979 | 979 | function sd_shortcode_button($id) { |
| 980 | 980 | if ($id) { |
| 981 | - return '<?php echo self::shortcode_button( "\\''+\$id+'\\'" );?>'; |
|
| 981 | + return '<?php echo self::shortcode_button("\\''+\$id+'\\'"); ?>'; |
|
| 982 | 982 | } else { |
| 983 | - return '<?php echo self::shortcode_button();?>'; |
|
| 983 | + return '<?php echo self::shortcode_button(); ?>'; |
|
| 984 | 984 | } |
| 985 | 985 | } |
| 986 | 986 | |
@@ -1036,10 +1036,10 @@ discard block |
||
| 1036 | 1036 | * We only add the <script> tags for code highlighting, so we strip them from the output. |
| 1037 | 1037 | */ |
| 1038 | 1038 | |
| 1039 | - return str_replace( array( |
|
| 1039 | + return str_replace(array( |
|
| 1040 | 1040 | '<style>', |
| 1041 | 1041 | '</style>' |
| 1042 | - ), '', $output ); |
|
| 1042 | + ), '', $output); |
|
| 1043 | 1043 | } |
| 1044 | 1044 | |
| 1045 | 1045 | /** |
@@ -1109,7 +1109,7 @@ discard block |
||
| 1109 | 1109 | jQuery($this).data('sd-widget-enabled', true); |
| 1110 | 1110 | } |
| 1111 | 1111 | |
| 1112 | - var $button = '<button title="<?php _e( 'Advanced Settings' );?>" class="button button-primary right sd-advanced-button" onclick="sd_toggle_advanced(this);return false;"><span class="dashicons dashicons-admin-settings" style="width: 28px;font-size: 28px;"></span></button>'; |
|
| 1112 | + var $button = '<button title="<?php _e('Advanced Settings'); ?>" class="button button-primary right sd-advanced-button" onclick="sd_toggle_advanced(this);return false;"><span class="dashicons dashicons-admin-settings" style="width: 28px;font-size: 28px;"></span></button>'; |
|
| 1113 | 1113 | var form = jQuery($this).parents('' + $selector + ''); |
| 1114 | 1114 | |
| 1115 | 1115 | if (jQuery($this).val() == '1' && jQuery(form).find('.sd-advanced-button').length == 0) { |
@@ -1201,7 +1201,7 @@ discard block |
||
| 1201 | 1201 | }); |
| 1202 | 1202 | |
| 1203 | 1203 | } |
| 1204 | - <?php do_action( 'wp_super_duper_widget_js', $this ); ?> |
|
| 1204 | + <?php do_action('wp_super_duper_widget_js', $this); ?> |
|
| 1205 | 1205 | </script> |
| 1206 | 1206 | <?php |
| 1207 | 1207 | $output = ob_get_clean(); |
@@ -1210,10 +1210,10 @@ discard block |
||
| 1210 | 1210 | * We only add the <script> tags for code highlighting, so we strip them from the output. |
| 1211 | 1211 | */ |
| 1212 | 1212 | |
| 1213 | - return str_replace( array( |
|
| 1213 | + return str_replace(array( |
|
| 1214 | 1214 | '<script>', |
| 1215 | 1215 | '</script>' |
| 1216 | - ), '', $output ); |
|
| 1216 | + ), '', $output); |
|
| 1217 | 1217 | } |
| 1218 | 1218 | |
| 1219 | 1219 | |
@@ -1224,14 +1224,14 @@ discard block |
||
| 1224 | 1224 | * |
| 1225 | 1225 | * @return mixed |
| 1226 | 1226 | */ |
| 1227 | - private function add_name_from_key( $options, $arguments = false ) { |
|
| 1228 | - if ( ! empty( $options['arguments'] ) ) { |
|
| 1229 | - foreach ( $options['arguments'] as $key => $val ) { |
|
| 1230 | - $options['arguments'][ $key ]['name'] = $key; |
|
| 1227 | + private function add_name_from_key($options, $arguments = false) { |
|
| 1228 | + if (!empty($options['arguments'])) { |
|
| 1229 | + foreach ($options['arguments'] as $key => $val) { |
|
| 1230 | + $options['arguments'][$key]['name'] = $key; |
|
| 1231 | 1231 | } |
| 1232 | - } elseif ( $arguments && is_array( $options ) && ! empty( $options ) ) { |
|
| 1233 | - foreach ( $options as $key => $val ) { |
|
| 1234 | - $options[ $key ]['name'] = $key; |
|
| 1232 | + } elseif ($arguments && is_array($options) && !empty($options)) { |
|
| 1233 | + foreach ($options as $key => $val) { |
|
| 1234 | + $options[$key]['name'] = $key; |
|
| 1235 | 1235 | } |
| 1236 | 1236 | } |
| 1237 | 1237 | |
@@ -1244,8 +1244,8 @@ discard block |
||
| 1244 | 1244 | * @since 1.0.0 |
| 1245 | 1245 | */ |
| 1246 | 1246 | public function register_shortcode() { |
| 1247 | - add_shortcode( $this->base_id, array( $this, 'shortcode_output' ) ); |
|
| 1248 | - add_action( 'wp_ajax_super_duper_output_shortcode', array( __CLASS__, 'render_shortcode' ) ); |
|
| 1247 | + add_shortcode($this->base_id, array($this, 'shortcode_output')); |
|
| 1248 | + add_action('wp_ajax_super_duper_output_shortcode', array(__CLASS__, 'render_shortcode')); |
|
| 1249 | 1249 | } |
| 1250 | 1250 | |
| 1251 | 1251 | /** |
@@ -1255,33 +1255,33 @@ discard block |
||
| 1255 | 1255 | */ |
| 1256 | 1256 | public static function render_shortcode() { |
| 1257 | 1257 | |
| 1258 | - check_ajax_referer( 'super_duper_output_shortcode', '_ajax_nonce', true ); |
|
| 1259 | - if ( ! current_user_can( 'manage_options' ) ) { |
|
| 1258 | + check_ajax_referer('super_duper_output_shortcode', '_ajax_nonce', true); |
|
| 1259 | + if (!current_user_can('manage_options')) { |
|
| 1260 | 1260 | wp_die(); |
| 1261 | 1261 | } |
| 1262 | 1262 | |
| 1263 | 1263 | // we might need the $post value here so lets set it. |
| 1264 | - if ( isset( $_POST['post_id'] ) && $_POST['post_id'] ) { |
|
| 1265 | - $post_obj = get_post( absint( $_POST['post_id'] ) ); |
|
| 1266 | - if ( ! empty( $post_obj ) && empty( $post ) ) { |
|
| 1264 | + if (isset($_POST['post_id']) && $_POST['post_id']) { |
|
| 1265 | + $post_obj = get_post(absint($_POST['post_id'])); |
|
| 1266 | + if (!empty($post_obj) && empty($post)) { |
|
| 1267 | 1267 | global $post; |
| 1268 | 1268 | $post = $post_obj; |
| 1269 | 1269 | } |
| 1270 | 1270 | } |
| 1271 | 1271 | |
| 1272 | - if ( isset( $_POST['shortcode'] ) && $_POST['shortcode'] ) { |
|
| 1273 | - $shortcode_name = sanitize_title_with_dashes( $_POST['shortcode'] ); |
|
| 1274 | - $attributes_array = isset( $_POST['attributes'] ) && $_POST['attributes'] ? $_POST['attributes'] : array(); |
|
| 1272 | + if (isset($_POST['shortcode']) && $_POST['shortcode']) { |
|
| 1273 | + $shortcode_name = sanitize_title_with_dashes($_POST['shortcode']); |
|
| 1274 | + $attributes_array = isset($_POST['attributes']) && $_POST['attributes'] ? $_POST['attributes'] : array(); |
|
| 1275 | 1275 | $attributes = ''; |
| 1276 | - if ( ! empty( $attributes_array ) ) { |
|
| 1277 | - foreach ( $attributes_array as $key => $value ) { |
|
| 1278 | - $attributes .= " " . sanitize_title_with_dashes( $key ) . "='" . wp_slash( $value ) . "' "; |
|
| 1276 | + if (!empty($attributes_array)) { |
|
| 1277 | + foreach ($attributes_array as $key => $value) { |
|
| 1278 | + $attributes .= " " . sanitize_title_with_dashes($key) . "='" . wp_slash($value) . "' "; |
|
| 1279 | 1279 | } |
| 1280 | 1280 | } |
| 1281 | 1281 | |
| 1282 | 1282 | $shortcode = "[" . $shortcode_name . " " . $attributes . "]"; |
| 1283 | 1283 | |
| 1284 | - echo do_shortcode( $shortcode ); |
|
| 1284 | + echo do_shortcode($shortcode); |
|
| 1285 | 1285 | |
| 1286 | 1286 | } |
| 1287 | 1287 | wp_die(); |
@@ -1295,42 +1295,42 @@ discard block |
||
| 1295 | 1295 | * |
| 1296 | 1296 | * @return string |
| 1297 | 1297 | */ |
| 1298 | - public function shortcode_output( $args = array(), $content = '' ) { |
|
| 1299 | - $args = self::argument_values( $args ); |
|
| 1298 | + public function shortcode_output($args = array(), $content = '') { |
|
| 1299 | + $args = self::argument_values($args); |
|
| 1300 | 1300 | |
| 1301 | 1301 | // add extra argument so we know its a output to gutenberg |
| 1302 | 1302 | //$args |
| 1303 | - $args = $this->string_to_bool( $args ); |
|
| 1303 | + $args = $this->string_to_bool($args); |
|
| 1304 | 1304 | |
| 1305 | 1305 | // if we have a enclosed shortcode we add it to the special `html` argument |
| 1306 | - if(!empty($content)){ |
|
| 1306 | + if (!empty($content)) { |
|
| 1307 | 1307 | $args['html'] = $content; |
| 1308 | 1308 | } |
| 1309 | 1309 | |
| 1310 | - $class = isset( $this->options['widget_ops']['classname'] ) ? esc_attr( $this->options['widget_ops']['classname'] ) : ''; |
|
| 1310 | + $class = isset($this->options['widget_ops']['classname']) ? esc_attr($this->options['widget_ops']['classname']) : ''; |
|
| 1311 | 1311 | |
| 1312 | - $class = apply_filters( 'wp_super_duper_div_classname', $class, $args, $this ); |
|
| 1313 | - $class = apply_filters( 'wp_super_duper_div_classname_' . $this->base_id, $class, $args, $this ); |
|
| 1312 | + $class = apply_filters('wp_super_duper_div_classname', $class, $args, $this); |
|
| 1313 | + $class = apply_filters('wp_super_duper_div_classname_' . $this->base_id, $class, $args, $this); |
|
| 1314 | 1314 | |
| 1315 | - $attrs = apply_filters( 'wp_super_duper_div_attrs', '', $args, $this ); |
|
| 1316 | - $attrs = apply_filters( 'wp_super_duper_div_attrs_' . $this->base_id, '', $args, $this ); //@todo this does not seem right @kiran? |
|
| 1315 | + $attrs = apply_filters('wp_super_duper_div_attrs', '', $args, $this); |
|
| 1316 | + $attrs = apply_filters('wp_super_duper_div_attrs_' . $this->base_id, '', $args, $this); //@todo this does not seem right @kiran? |
|
| 1317 | 1317 | |
| 1318 | 1318 | $shortcode_args = array(); |
| 1319 | 1319 | $output = ''; |
| 1320 | - $no_wrap = isset( $this->options['no_wrap'] ) && $this->options['no_wrap'] ? true : false; |
|
| 1321 | - if( isset( $args['no_wrap'] ) && $args['no_wrap'] ){ $no_wrap = true; } |
|
| 1322 | - $main_content = $this->output( $args, $shortcode_args, $content ); |
|
| 1323 | - if ( $main_content && ! $no_wrap ) { |
|
| 1320 | + $no_wrap = isset($this->options['no_wrap']) && $this->options['no_wrap'] ? true : false; |
|
| 1321 | + if (isset($args['no_wrap']) && $args['no_wrap']) { $no_wrap = true; } |
|
| 1322 | + $main_content = $this->output($args, $shortcode_args, $content); |
|
| 1323 | + if ($main_content && !$no_wrap) { |
|
| 1324 | 1324 | // wrap the shortcode in a div with the same class as the widget |
| 1325 | 1325 | $output .= '<div class="' . $class . '" ' . $attrs . '>'; |
| 1326 | - if ( ! empty( $args['title'] ) ) { |
|
| 1326 | + if (!empty($args['title'])) { |
|
| 1327 | 1327 | // if its a shortcode and there is a title try to grab the title wrappers |
| 1328 | - $shortcode_args = array( 'before_title' => '', 'after_title' => '' ); |
|
| 1329 | - if ( empty( $instance ) ) { |
|
| 1328 | + $shortcode_args = array('before_title' => '', 'after_title' => ''); |
|
| 1329 | + if (empty($instance)) { |
|
| 1330 | 1330 | global $wp_registered_sidebars; |
| 1331 | - if ( ! empty( $wp_registered_sidebars ) ) { |
|
| 1332 | - foreach ( $wp_registered_sidebars as $sidebar ) { |
|
| 1333 | - if ( ! empty( $sidebar['before_title'] ) ) { |
|
| 1331 | + if (!empty($wp_registered_sidebars)) { |
|
| 1332 | + foreach ($wp_registered_sidebars as $sidebar) { |
|
| 1333 | + if (!empty($sidebar['before_title'])) { |
|
| 1334 | 1334 | $shortcode_args['before_title'] = $sidebar['before_title']; |
| 1335 | 1335 | $shortcode_args['after_title'] = $sidebar['after_title']; |
| 1336 | 1336 | break; |
@@ -1338,20 +1338,20 @@ discard block |
||
| 1338 | 1338 | } |
| 1339 | 1339 | } |
| 1340 | 1340 | } |
| 1341 | - $output .= $this->output_title( $shortcode_args, $args ); |
|
| 1341 | + $output .= $this->output_title($shortcode_args, $args); |
|
| 1342 | 1342 | } |
| 1343 | 1343 | $output .= $main_content; |
| 1344 | 1344 | $output .= '</div>'; |
| 1345 | - } elseif ( $main_content && $no_wrap ) { |
|
| 1345 | + } elseif ($main_content && $no_wrap) { |
|
| 1346 | 1346 | $output .= $main_content; |
| 1347 | 1347 | } |
| 1348 | 1348 | |
| 1349 | 1349 | // if preview show a placeholder if empty |
| 1350 | - if ( $this->is_preview() && $output == '' ) { |
|
| 1351 | - $output = $this->preview_placeholder_text( "[{" . $this->base_id . "}]" ); |
|
| 1350 | + if ($this->is_preview() && $output == '') { |
|
| 1351 | + $output = $this->preview_placeholder_text("[{" . $this->base_id . "}]"); |
|
| 1352 | 1352 | } |
| 1353 | 1353 | |
| 1354 | - return apply_filters( 'wp_super_duper_widget_output', $output, $args, $shortcode_args, $this ); |
|
| 1354 | + return apply_filters('wp_super_duper_widget_output', $output, $args, $shortcode_args, $this); |
|
| 1355 | 1355 | } |
| 1356 | 1356 | |
| 1357 | 1357 | /** |
@@ -1361,8 +1361,8 @@ discard block |
||
| 1361 | 1361 | * |
| 1362 | 1362 | * @return string |
| 1363 | 1363 | */ |
| 1364 | - public function preview_placeholder_text( $name = '' ) { |
|
| 1365 | - return "<div style='background:#0185ba33;padding: 10px;border: 4px #ccc dashed;'>" . sprintf( __( 'Placeholder for: %s' ), $name ) . "</div>"; |
|
| 1364 | + public function preview_placeholder_text($name = '') { |
|
| 1365 | + return "<div style='background:#0185ba33;padding: 10px;border: 4px #ccc dashed;'>" . sprintf(__('Placeholder for: %s'), $name) . "</div>"; |
|
| 1366 | 1366 | } |
| 1367 | 1367 | |
| 1368 | 1368 | /** |
@@ -1372,13 +1372,13 @@ discard block |
||
| 1372 | 1372 | * |
| 1373 | 1373 | * @return mixed |
| 1374 | 1374 | */ |
| 1375 | - public function string_to_bool( $options ) { |
|
| 1375 | + public function string_to_bool($options) { |
|
| 1376 | 1376 | // convert bool strings to booleans |
| 1377 | - foreach ( $options as $key => $val ) { |
|
| 1378 | - if ( $val == 'false' ) { |
|
| 1379 | - $options[ $key ] = false; |
|
| 1380 | - } elseif ( $val == 'true' ) { |
|
| 1381 | - $options[ $key ] = true; |
|
| 1377 | + foreach ($options as $key => $val) { |
|
| 1378 | + if ($val == 'false') { |
|
| 1379 | + $options[$key] = false; |
|
| 1380 | + } elseif ($val == 'true') { |
|
| 1381 | + $options[$key] = true; |
|
| 1382 | 1382 | } |
| 1383 | 1383 | } |
| 1384 | 1384 | |
@@ -1394,27 +1394,27 @@ discard block |
||
| 1394 | 1394 | * |
| 1395 | 1395 | * @return array |
| 1396 | 1396 | */ |
| 1397 | - public function argument_values( $instance ) { |
|
| 1397 | + public function argument_values($instance) { |
|
| 1398 | 1398 | $argument_values = array(); |
| 1399 | 1399 | |
| 1400 | 1400 | // set widget instance |
| 1401 | 1401 | $this->instance = $instance; |
| 1402 | 1402 | |
| 1403 | - if ( empty( $this->arguments ) ) { |
|
| 1403 | + if (empty($this->arguments)) { |
|
| 1404 | 1404 | $this->arguments = $this->get_arguments(); |
| 1405 | 1405 | } |
| 1406 | 1406 | |
| 1407 | - if ( ! empty( $this->arguments ) ) { |
|
| 1408 | - foreach ( $this->arguments as $key => $args ) { |
|
| 1407 | + if (!empty($this->arguments)) { |
|
| 1408 | + foreach ($this->arguments as $key => $args) { |
|
| 1409 | 1409 | // set the input name from the key |
| 1410 | 1410 | $args['name'] = $key; |
| 1411 | 1411 | // |
| 1412 | - $argument_values[ $key ] = isset( $instance[ $key ] ) ? $instance[ $key ] : ''; |
|
| 1413 | - if($args['type']=='checkbox' && $argument_values[ $key ] == ''){ |
|
| 1412 | + $argument_values[$key] = isset($instance[$key]) ? $instance[$key] : ''; |
|
| 1413 | + if ($args['type'] == 'checkbox' && $argument_values[$key] == '') { |
|
| 1414 | 1414 | // don't set default for an empty checkbox |
| 1415 | 1415 | } |
| 1416 | - elseif ( $argument_values[ $key ] == '' && isset( $args['default'] ) ) { |
|
| 1417 | - $argument_values[ $key ] = $args['default']; |
|
| 1416 | + elseif ($argument_values[$key] == '' && isset($args['default'])) { |
|
| 1417 | + $argument_values[$key] = $args['default']; |
|
| 1418 | 1418 | } |
| 1419 | 1419 | } |
| 1420 | 1420 | } |
@@ -1441,12 +1441,12 @@ discard block |
||
| 1441 | 1441 | * @return array Get arguments. |
| 1442 | 1442 | */ |
| 1443 | 1443 | public function get_arguments() { |
| 1444 | - if ( empty( $this->arguments ) ) { |
|
| 1444 | + if (empty($this->arguments)) { |
|
| 1445 | 1445 | $this->arguments = $this->set_arguments(); |
| 1446 | 1446 | } |
| 1447 | 1447 | |
| 1448 | - $this->arguments = apply_filters( 'wp_super_duper_arguments', $this->arguments, $this->options, $this->instance ); |
|
| 1449 | - $this->arguments = $this->add_name_from_key( $this->arguments, true ); |
|
| 1448 | + $this->arguments = apply_filters('wp_super_duper_arguments', $this->arguments, $this->options, $this->instance); |
|
| 1449 | + $this->arguments = $this->add_name_from_key($this->arguments, true); |
|
| 1450 | 1450 | |
| 1451 | 1451 | return $this->arguments; |
| 1452 | 1452 | } |
@@ -1458,7 +1458,7 @@ discard block |
||
| 1458 | 1458 | * @param array $widget_args |
| 1459 | 1459 | * @param string $content |
| 1460 | 1460 | */ |
| 1461 | - public function output( $args = array(), $widget_args = array(), $content = '' ) { |
|
| 1461 | + public function output($args = array(), $widget_args = array(), $content = '') { |
|
| 1462 | 1462 | |
| 1463 | 1463 | } |
| 1464 | 1464 | |
@@ -1466,10 +1466,10 @@ discard block |
||
| 1466 | 1466 | * Add the dynamic block code inline when the wp-block in enqueued. |
| 1467 | 1467 | */ |
| 1468 | 1468 | public function register_block() { |
| 1469 | - wp_add_inline_script( 'wp-blocks', $this->block() ); |
|
| 1470 | - if ( class_exists( 'SiteOrigin_Panels' ) ) { |
|
| 1469 | + wp_add_inline_script('wp-blocks', $this->block()); |
|
| 1470 | + if (class_exists('SiteOrigin_Panels')) { |
|
| 1471 | 1471 | |
| 1472 | - wp_add_inline_script( 'wp-blocks', $this->siteorigin_js() ); |
|
| 1472 | + wp_add_inline_script('wp-blocks', $this->siteorigin_js()); |
|
| 1473 | 1473 | |
| 1474 | 1474 | } |
| 1475 | 1475 | } |
@@ -1484,13 +1484,13 @@ discard block |
||
| 1484 | 1484 | $show = false; |
| 1485 | 1485 | $arguments = $this->arguments; |
| 1486 | 1486 | |
| 1487 | - if ( empty( $arguments ) ) { |
|
| 1487 | + if (empty($arguments)) { |
|
| 1488 | 1488 | $arguments = $this->get_arguments(); |
| 1489 | 1489 | } |
| 1490 | 1490 | |
| 1491 | - if ( ! empty( $arguments ) ) { |
|
| 1492 | - foreach ( $arguments as $argument ) { |
|
| 1493 | - if ( isset( $argument['advanced'] ) && $argument['advanced'] ) { |
|
| 1491 | + if (!empty($arguments)) { |
|
| 1492 | + foreach ($arguments as $argument) { |
|
| 1493 | + if (isset($argument['advanced']) && $argument['advanced']) { |
|
| 1494 | 1494 | $show = true; |
| 1495 | 1495 | break; // no need to continue if we know we have it |
| 1496 | 1496 | } |
@@ -1509,15 +1509,15 @@ discard block |
||
| 1509 | 1509 | |
| 1510 | 1510 | $url = $this->url; |
| 1511 | 1511 | |
| 1512 | - if(!$url){ |
|
| 1512 | + if (!$url) { |
|
| 1513 | 1513 | // check if we are inside a plugin |
| 1514 | - $file_dir = str_replace("/includes","", dirname( __FILE__ )); |
|
| 1514 | + $file_dir = str_replace("/includes", "", dirname(__FILE__)); |
|
| 1515 | 1515 | |
| 1516 | - $dir_parts = explode("/wp-content/",$file_dir); |
|
| 1517 | - $url_parts = explode("/wp-content/",plugins_url()); |
|
| 1516 | + $dir_parts = explode("/wp-content/", $file_dir); |
|
| 1517 | + $url_parts = explode("/wp-content/", plugins_url()); |
|
| 1518 | 1518 | |
| 1519 | - if(!empty($url_parts[0]) && !empty($dir_parts[1])){ |
|
| 1520 | - $url = trailingslashit( $url_parts[0]."/wp-content/".$dir_parts[1] ); |
|
| 1519 | + if (!empty($url_parts[0]) && !empty($dir_parts[1])) { |
|
| 1520 | + $url = trailingslashit($url_parts[0] . "/wp-content/" . $dir_parts[1]); |
|
| 1521 | 1521 | $this->url = $url; |
| 1522 | 1522 | } |
| 1523 | 1523 | } |
@@ -1536,46 +1536,46 @@ discard block |
||
| 1536 | 1536 | * @since 1.1.0 |
| 1537 | 1537 | * @return string |
| 1538 | 1538 | */ |
| 1539 | - public function get_block_icon($icon){ |
|
| 1539 | + public function get_block_icon($icon) { |
|
| 1540 | 1540 | |
| 1541 | 1541 | // check if we have a Font Awesome icon |
| 1542 | 1542 | $fa_type = ''; |
| 1543 | - if(substr( $icon, 0, 7 ) === "fas fa-"){ |
|
| 1543 | + if (substr($icon, 0, 7) === "fas fa-") { |
|
| 1544 | 1544 | $fa_type = 'solid'; |
| 1545 | - }elseif(substr( $icon, 0, 7 ) === "far fa-"){ |
|
| 1545 | + }elseif (substr($icon, 0, 7) === "far fa-") { |
|
| 1546 | 1546 | $fa_type = 'regular'; |
| 1547 | - }elseif(substr( $icon, 0, 7 ) === "fab fa-"){ |
|
| 1547 | + }elseif (substr($icon, 0, 7) === "fab fa-") { |
|
| 1548 | 1548 | $fa_type = 'brands'; |
| 1549 | - }else{ |
|
| 1550 | - $icon = "'".$icon."'"; |
|
| 1549 | + } else { |
|
| 1550 | + $icon = "'" . $icon . "'"; |
|
| 1551 | 1551 | } |
| 1552 | 1552 | |
| 1553 | 1553 | // set the icon if we found one |
| 1554 | - if($fa_type){ |
|
| 1555 | - $fa_icon = str_replace(array("fas fa-","far fa-","fab fa-"),"",$icon); |
|
| 1556 | - $icon = "el('svg',{width: 20, height: 20, viewBox: '0 0 20 20'},el('use', {'xlink:href': '".$this->get_url()."icons/".$fa_type.".svg#".$fa_icon."','href': '".$this->get_url()."icons/".$fa_type.".svg#".$fa_icon."'}))"; |
|
| 1554 | + if ($fa_type) { |
|
| 1555 | + $fa_icon = str_replace(array("fas fa-", "far fa-", "fab fa-"), "", $icon); |
|
| 1556 | + $icon = "el('svg',{width: 20, height: 20, viewBox: '0 0 20 20'},el('use', {'xlink:href': '" . $this->get_url() . "icons/" . $fa_type . ".svg#" . $fa_icon . "','href': '" . $this->get_url() . "icons/" . $fa_type . ".svg#" . $fa_icon . "'}))"; |
|
| 1557 | 1557 | } |
| 1558 | 1558 | |
| 1559 | 1559 | return $icon; |
| 1560 | 1560 | } |
| 1561 | 1561 | |
| 1562 | - public function group_arguments($arguments){ |
|
| 1562 | + public function group_arguments($arguments) { |
|
| 1563 | 1563 | // echo '###';print_r($arguments); |
| 1564 | - if(!empty($arguments)){ |
|
| 1564 | + if (!empty($arguments)) { |
|
| 1565 | 1565 | $temp_arguments = array(); |
| 1566 | 1566 | $general = __("General"); |
| 1567 | 1567 | $add_sections = false; |
| 1568 | - foreach($arguments as $key => $args){ |
|
| 1569 | - if(isset($args['group'])){ |
|
| 1568 | + foreach ($arguments as $key => $args) { |
|
| 1569 | + if (isset($args['group'])) { |
|
| 1570 | 1570 | $temp_arguments[$args['group']][$key] = $args; |
| 1571 | 1571 | $add_sections = true; |
| 1572 | - }else{ |
|
| 1572 | + } else { |
|
| 1573 | 1573 | $temp_arguments[$general][$key] = $args; |
| 1574 | 1574 | } |
| 1575 | 1575 | } |
| 1576 | 1576 | |
| 1577 | 1577 | // only add sections if more than one |
| 1578 | - if($add_sections){ |
|
| 1578 | + if ($add_sections) { |
|
| 1579 | 1579 | $arguments = $temp_arguments; |
| 1580 | 1580 | } |
| 1581 | 1581 | } |
@@ -1627,28 +1627,28 @@ discard block |
||
| 1627 | 1627 | * @return {?WPBlock} The block, if it has been successfully |
| 1628 | 1628 | * registered; otherwise `undefined`. |
| 1629 | 1629 | */ |
| 1630 | - registerBlockType('<?php echo str_replace( "_", "-", sanitize_title_with_dashes( $this->options['textdomain'] ) . '/' . sanitize_title_with_dashes( $this->options['class_name'] ) ); ?>', { // Block name. Block names must be string that contains a namespace prefix. Example: my-plugin/my-custom-block. |
|
| 1631 | - title: '<?php echo $this->options['name'];?>', // Block title. |
|
| 1632 | - description: '<?php echo esc_attr( $this->options['widget_ops']['description'] )?>', // Block title. |
|
| 1633 | - icon: <?php echo $this->get_block_icon($this->options['block-icon']);?>,//'<?php echo isset( $this->options['block-icon'] ) ? esc_attr( $this->options['block-icon'] ) : 'shield-alt';?>', // Block icon from Dashicons → https://developer.wordpress.org/resource/dashicons/. |
|
| 1630 | + registerBlockType('<?php echo str_replace("_", "-", sanitize_title_with_dashes($this->options['textdomain']) . '/' . sanitize_title_with_dashes($this->options['class_name'])); ?>', { // Block name. Block names must be string that contains a namespace prefix. Example: my-plugin/my-custom-block. |
|
| 1631 | + title: '<?php echo $this->options['name']; ?>', // Block title. |
|
| 1632 | + description: '<?php echo esc_attr($this->options['widget_ops']['description'])?>', // Block title. |
|
| 1633 | + icon: <?php echo $this->get_block_icon($this->options['block-icon']); ?>,//'<?php echo isset($this->options['block-icon']) ? esc_attr($this->options['block-icon']) : 'shield-alt'; ?>', // Block icon from Dashicons → https://developer.wordpress.org/resource/dashicons/. |
|
| 1634 | 1634 | supports: { |
| 1635 | 1635 | <?php |
| 1636 | - if(isset($this->options['block-supports'])){ |
|
| 1637 | - echo $this->array_to_attributes( $this->options['block-supports'] ); |
|
| 1636 | + if (isset($this->options['block-supports'])) { |
|
| 1637 | + echo $this->array_to_attributes($this->options['block-supports']); |
|
| 1638 | 1638 | } |
| 1639 | 1639 | ?> |
| 1640 | 1640 | }, |
| 1641 | - category: '<?php echo isset( $this->options['block-category'] ) ? esc_attr( $this->options['block-category'] ) : 'common';?>', // Block category — Group blocks together based on common traits E.g. common, formatting, layout widgets, embed. |
|
| 1642 | - <?php if ( isset( $this->options['block-keywords'] ) ) { |
|
| 1641 | + category: '<?php echo isset($this->options['block-category']) ? esc_attr($this->options['block-category']) : 'common'; ?>', // Block category — Group blocks together based on common traits E.g. common, formatting, layout widgets, embed. |
|
| 1642 | + <?php if (isset($this->options['block-keywords'])) { |
|
| 1643 | 1643 | echo "keywords : " . $this->options['block-keywords'] . ","; |
| 1644 | 1644 | }?> |
| 1645 | 1645 | |
| 1646 | 1646 | <?php |
| 1647 | 1647 | |
| 1648 | 1648 | // maybe set no_wrap |
| 1649 | - $no_wrap = isset( $this->options['no_wrap'] ) && $this->options['no_wrap'] ? true : false; |
|
| 1650 | - if( isset( $this->arguments['no_wrap'] ) && $this->arguments['no_wrap'] ){ $no_wrap = true; } |
|
| 1651 | - if( $no_wrap ){ $this->options['block-wrap'] = ''; } |
|
| 1649 | + $no_wrap = isset($this->options['no_wrap']) && $this->options['no_wrap'] ? true : false; |
|
| 1650 | + if (isset($this->arguments['no_wrap']) && $this->arguments['no_wrap']) { $no_wrap = true; } |
|
| 1651 | + if ($no_wrap) { $this->options['block-wrap'] = ''; } |
|
| 1652 | 1652 | |
| 1653 | 1653 | $show_advanced = $this->block_show_advanced(); |
| 1654 | 1654 | |
@@ -1659,10 +1659,10 @@ discard block |
||
| 1659 | 1659 | echo " html: false"; |
| 1660 | 1660 | echo "},";*/ |
| 1661 | 1661 | |
| 1662 | - if ( ! empty( $this->arguments ) ) { |
|
| 1662 | + if (!empty($this->arguments)) { |
|
| 1663 | 1663 | echo "attributes : {"; |
| 1664 | 1664 | |
| 1665 | - if ( $show_advanced ) { |
|
| 1665 | + if ($show_advanced) { |
|
| 1666 | 1666 | echo "show_advanced: {"; |
| 1667 | 1667 | echo " type: 'boolean',"; |
| 1668 | 1668 | echo " default: false,"; |
@@ -1670,41 +1670,41 @@ discard block |
||
| 1670 | 1670 | } |
| 1671 | 1671 | |
| 1672 | 1672 | // block wrap element |
| 1673 | - if ( !empty( $this->options['block-wrap'] ) ) { //@todo we should validate this? |
|
| 1673 | + if (!empty($this->options['block-wrap'])) { //@todo we should validate this? |
|
| 1674 | 1674 | echo "block_wrap: {"; |
| 1675 | 1675 | echo " type: 'string',"; |
| 1676 | - echo " default: '" . esc_attr( $this->options['block-wrap'] ) . "',"; |
|
| 1676 | + echo " default: '" . esc_attr($this->options['block-wrap']) . "',"; |
|
| 1677 | 1677 | echo "},"; |
| 1678 | 1678 | } |
| 1679 | 1679 | |
| 1680 | - foreach ( $this->arguments as $key => $args ) { |
|
| 1680 | + foreach ($this->arguments as $key => $args) { |
|
| 1681 | 1681 | |
| 1682 | 1682 | // set if we should show alignment |
| 1683 | - if ( $key == 'alignment' ) { |
|
| 1683 | + if ($key == 'alignment') { |
|
| 1684 | 1684 | $show_alignment = true; |
| 1685 | 1685 | } |
| 1686 | 1686 | |
| 1687 | 1687 | $extra = ''; |
| 1688 | 1688 | |
| 1689 | - if ( $args['type'] == 'checkbox' ) { |
|
| 1689 | + if ($args['type'] == 'checkbox') { |
|
| 1690 | 1690 | $type = 'boolean'; |
| 1691 | - $default = isset( $args['default'] ) && $args['default'] ? 'true' : 'false'; |
|
| 1692 | - } elseif ( $args['type'] == 'number' ) { |
|
| 1691 | + $default = isset($args['default']) && $args['default'] ? 'true' : 'false'; |
|
| 1692 | + } elseif ($args['type'] == 'number') { |
|
| 1693 | 1693 | $type = 'number'; |
| 1694 | - $default = isset( $args['default'] ) ? "'" . $args['default'] . "'" : "''"; |
|
| 1695 | - } elseif ( $args['type'] == 'select' && ! empty( $args['multiple'] ) ) { |
|
| 1694 | + $default = isset($args['default']) ? "'" . $args['default'] . "'" : "''"; |
|
| 1695 | + } elseif ($args['type'] == 'select' && !empty($args['multiple'])) { |
|
| 1696 | 1696 | $type = 'array'; |
| 1697 | - if ( is_array( $args['default'] ) ) { |
|
| 1698 | - $default = isset( $args['default'] ) ? "['" . implode( "','", $args['default'] ) . "']" : "[]"; |
|
| 1697 | + if (is_array($args['default'])) { |
|
| 1698 | + $default = isset($args['default']) ? "['" . implode("','", $args['default']) . "']" : "[]"; |
|
| 1699 | 1699 | } else { |
| 1700 | - $default = isset( $args['default'] ) ? "'" . $args['default'] . "'" : "''"; |
|
| 1700 | + $default = isset($args['default']) ? "'" . $args['default'] . "'" : "''"; |
|
| 1701 | 1701 | } |
| 1702 | - } elseif ( $args['type'] == 'multiselect' ) { |
|
| 1702 | + } elseif ($args['type'] == 'multiselect') { |
|
| 1703 | 1703 | $type = 'array'; |
| 1704 | - $default = isset( $args['default'] ) ? "'" . $args['default'] . "'" : "''"; |
|
| 1704 | + $default = isset($args['default']) ? "'" . $args['default'] . "'" : "''"; |
|
| 1705 | 1705 | } else { |
| 1706 | 1706 | $type = 'string'; |
| 1707 | - $default = isset( $args['default'] ) ? "'" . $args['default'] . "'" : "''"; |
|
| 1707 | + $default = isset($args['default']) ? "'" . $args['default'] . "'" : "''"; |
|
| 1708 | 1708 | } |
| 1709 | 1709 | echo $key . " : {"; |
| 1710 | 1710 | echo "type : '$type',"; |
@@ -1735,12 +1735,12 @@ discard block |
||
| 1735 | 1735 | is_fetching = true; |
| 1736 | 1736 | var data = { |
| 1737 | 1737 | 'action': 'super_duper_output_shortcode', |
| 1738 | - 'shortcode': '<?php echo $this->options['base_id'];?>', |
|
| 1738 | + 'shortcode': '<?php echo $this->options['base_id']; ?>', |
|
| 1739 | 1739 | 'attributes': props.attributes, |
| 1740 | - 'post_id': <?php global $post; if ( isset( $post->ID ) ) { |
|
| 1740 | + 'post_id': <?php global $post; if (isset($post->ID)) { |
|
| 1741 | 1741 | echo $post->ID; |
| 1742 | 1742 | }?>, |
| 1743 | - '_ajax_nonce': '<?php echo wp_create_nonce( 'super_duper_output_shortcode' );?>' |
|
| 1743 | + '_ajax_nonce': '<?php echo wp_create_nonce('super_duper_output_shortcode'); ?>' |
|
| 1744 | 1744 | }; |
| 1745 | 1745 | |
| 1746 | 1746 | jQuery.post(ajaxurl, data, function (response) { |
@@ -1749,7 +1749,7 @@ discard block |
||
| 1749 | 1749 | |
| 1750 | 1750 | // if the content is empty then we place some placeholder text |
| 1751 | 1751 | if (env == '') { |
| 1752 | - env = "<div style='background:#0185ba33;padding: 10px;border: 4px #ccc dashed;'>" + "<?php _e( 'Placeholder for: ' );?>" + props.name + "</div>"; |
|
| 1752 | + env = "<div style='background:#0185ba33;padding: 10px;border: 4px #ccc dashed;'>" + "<?php _e('Placeholder for: '); ?>" + props.name + "</div>"; |
|
| 1753 | 1753 | } |
| 1754 | 1754 | |
| 1755 | 1755 | props.setAttributes({content: env}); |
@@ -1768,7 +1768,7 @@ discard block |
||
| 1768 | 1768 | |
| 1769 | 1769 | el(wp.blockEditor.BlockControls, {key: 'controls'}, |
| 1770 | 1770 | |
| 1771 | - <?php if($show_alignment){?> |
|
| 1771 | + <?php if ($show_alignment) {?> |
|
| 1772 | 1772 | el( |
| 1773 | 1773 | wp.blockEditor.AlignmentToolbar, |
| 1774 | 1774 | { |
@@ -1786,9 +1786,9 @@ discard block |
||
| 1786 | 1786 | |
| 1787 | 1787 | <?php |
| 1788 | 1788 | |
| 1789 | - if(! empty( $this->arguments )){ |
|
| 1789 | + if (!empty($this->arguments)) { |
|
| 1790 | 1790 | |
| 1791 | - if ( $show_advanced ) { |
|
| 1791 | + if ($show_advanced) { |
|
| 1792 | 1792 | ?> |
| 1793 | 1793 | el( |
| 1794 | 1794 | wp.components.ToggleControl, |
@@ -1810,17 +1810,17 @@ discard block |
||
| 1810 | 1810 | $has_sections = $arguments == $this->arguments ? false : true; |
| 1811 | 1811 | |
| 1812 | 1812 | |
| 1813 | - if($has_sections){ |
|
| 1813 | + if ($has_sections) { |
|
| 1814 | 1814 | $panel_count = 0; |
| 1815 | - foreach($arguments as $key => $args){ |
|
| 1815 | + foreach ($arguments as $key => $args) { |
|
| 1816 | 1816 | ?> |
| 1817 | 1817 | el(wp.components.PanelBody, { |
| 1818 | 1818 | title: '<?php esc_attr_e($key); ?>', |
| 1819 | - initialOpen: <?php if($panel_count){echo "false";}else{echo "true";}?> |
|
| 1819 | + initialOpen: <?php if ($panel_count) {echo "false"; } else {echo "true"; }?> |
|
| 1820 | 1820 | }, |
| 1821 | 1821 | <?php |
| 1822 | 1822 | |
| 1823 | - foreach($args as $k => $a){ |
|
| 1823 | + foreach ($args as $k => $a) { |
|
| 1824 | 1824 | $this->build_block_arguments($k, $a); |
| 1825 | 1825 | } |
| 1826 | 1826 | ?> |
@@ -1829,8 +1829,8 @@ discard block |
||
| 1829 | 1829 | $panel_count++; |
| 1830 | 1830 | |
| 1831 | 1831 | } |
| 1832 | - }else{ |
|
| 1833 | - foreach($this->arguments as $key => $args){ |
|
| 1832 | + } else { |
|
| 1833 | + foreach ($this->arguments as $key => $args) { |
|
| 1834 | 1834 | $this->build_block_arguments($key, $args); |
| 1835 | 1835 | } |
| 1836 | 1836 | } |
@@ -1844,9 +1844,9 @@ discard block |
||
| 1844 | 1844 | |
| 1845 | 1845 | <?php |
| 1846 | 1846 | // If the user sets block-output array then build it |
| 1847 | - if ( ! empty( $this->options['block-output'] ) ) { |
|
| 1848 | - $this->block_element( $this->options['block-output'] ); |
|
| 1849 | - }else{ |
|
| 1847 | + if (!empty($this->options['block-output'])) { |
|
| 1848 | + $this->block_element($this->options['block-output']); |
|
| 1849 | + } else { |
|
| 1850 | 1850 | // if no block-output is set then we try and get the shortcode html output via ajax. |
| 1851 | 1851 | ?> |
| 1852 | 1852 | el('div', { |
@@ -1870,19 +1870,19 @@ discard block |
||
| 1870 | 1870 | var align = ''; |
| 1871 | 1871 | |
| 1872 | 1872 | // build the shortcode. |
| 1873 | - var content = "[<?php echo $this->options['base_id'];?>"; |
|
| 1873 | + var content = "[<?php echo $this->options['base_id']; ?>"; |
|
| 1874 | 1874 | $html = ''; |
| 1875 | 1875 | <?php |
| 1876 | 1876 | |
| 1877 | - if(! empty( $this->arguments )){ |
|
| 1877 | + if (!empty($this->arguments)) { |
|
| 1878 | 1878 | |
| 1879 | - foreach($this->arguments as $key => $args){ |
|
| 1879 | + foreach ($this->arguments as $key => $args) { |
|
| 1880 | 1880 | ?> |
| 1881 | - if (attr.hasOwnProperty("<?php echo esc_attr( $key );?>")) { |
|
| 1882 | - if('<?php echo esc_attr( $key );?>' == 'html'){ |
|
| 1883 | - $html = attr.<?php echo esc_attr( $key );?>; |
|
| 1881 | + if (attr.hasOwnProperty("<?php echo esc_attr($key); ?>")) { |
|
| 1882 | + if('<?php echo esc_attr($key); ?>' == 'html'){ |
|
| 1883 | + $html = attr.<?php echo esc_attr($key); ?>; |
|
| 1884 | 1884 | }else{ |
| 1885 | - content += " <?php echo esc_attr( $key );?>='" + attr.<?php echo esc_attr( $key );?>+ "' "; |
|
| 1885 | + content += " <?php echo esc_attr($key); ?>='" + attr.<?php echo esc_attr($key); ?>+ "' "; |
|
| 1886 | 1886 | } |
| 1887 | 1887 | } |
| 1888 | 1888 | <?php |
@@ -1894,7 +1894,7 @@ discard block |
||
| 1894 | 1894 | |
| 1895 | 1895 | // if has html element |
| 1896 | 1896 | if($html){ |
| 1897 | - content += $html + "[/<?php echo $this->options['base_id'];?>]"; |
|
| 1897 | + content += $html + "[/<?php echo $this->options['base_id']; ?>]"; |
|
| 1898 | 1898 | } |
| 1899 | 1899 | |
| 1900 | 1900 | |
@@ -1912,11 +1912,11 @@ discard block |
||
| 1912 | 1912 | } |
| 1913 | 1913 | |
| 1914 | 1914 | <?php |
| 1915 | - if(isset( $this->options['block-wrap'] ) && $this->options['block-wrap'] == ''){ |
|
| 1915 | + if (isset($this->options['block-wrap']) && $this->options['block-wrap'] == '') { |
|
| 1916 | 1916 | ?> |
| 1917 | 1917 | return content; |
| 1918 | 1918 | <?php |
| 1919 | - }else{ |
|
| 1919 | + } else { |
|
| 1920 | 1920 | ?> |
| 1921 | 1921 | var block_wrap = 'div'; |
| 1922 | 1922 | if (attr.hasOwnProperty("block_wrap")) { |
@@ -1939,88 +1939,88 @@ discard block |
||
| 1939 | 1939 | * We only add the <script> tags for code highlighting, so we strip them from the output. |
| 1940 | 1940 | */ |
| 1941 | 1941 | |
| 1942 | - return str_replace( array( |
|
| 1942 | + return str_replace(array( |
|
| 1943 | 1943 | '<script>', |
| 1944 | 1944 | '</script>' |
| 1945 | - ), '', $output ); |
|
| 1945 | + ), '', $output); |
|
| 1946 | 1946 | } |
| 1947 | 1947 | |
| 1948 | - public function build_block_arguments($key,$args){ |
|
| 1949 | - $custom_attributes = ! empty( $args['custom_attributes'] ) ? $this->array_to_attributes( $args['custom_attributes'] ) : ''; |
|
| 1948 | + public function build_block_arguments($key, $args) { |
|
| 1949 | + $custom_attributes = !empty($args['custom_attributes']) ? $this->array_to_attributes($args['custom_attributes']) : ''; |
|
| 1950 | 1950 | $options = ''; |
| 1951 | 1951 | $extra = ''; |
| 1952 | 1952 | $require = ''; |
| 1953 | 1953 | |
| 1954 | 1954 | // `content` is a protected and special argument |
| 1955 | - if($key == 'content'){return;} |
|
| 1955 | + if ($key == 'content') {return; } |
|
| 1956 | 1956 | |
| 1957 | 1957 | $onchange = "props.setAttributes({ $key: $key } )"; |
| 1958 | 1958 | $value = "props.attributes.$key"; |
| 1959 | - $text_type = array( 'text', 'password', 'number', 'email', 'tel', 'url', 'color' ); |
|
| 1960 | - if ( in_array( $args['type'], $text_type ) ) { |
|
| 1959 | + $text_type = array('text', 'password', 'number', 'email', 'tel', 'url', 'color'); |
|
| 1960 | + if (in_array($args['type'], $text_type)) { |
|
| 1961 | 1961 | $type = 'TextControl'; |
| 1962 | 1962 | // Save numbers as numbers and not strings |
| 1963 | - if ( $args['type'] == 'number' ) { |
|
| 1963 | + if ($args['type'] == 'number') { |
|
| 1964 | 1964 | $onchange = "props.setAttributes({ $key: Number($key) } )"; |
| 1965 | 1965 | } |
| 1966 | 1966 | } |
| 1967 | 1967 | // elseif ( $args['type'] == 'color' ) { //@todo ColorPicker labels are not shown yet, we use html5 color input for now https://github.com/WordPress/gutenberg/issues/14378 |
| 1968 | 1968 | // $type = 'ColorPicker'; |
| 1969 | 1969 | // } |
| 1970 | - elseif ( $args['type'] == 'checkbox' ) { |
|
| 1970 | + elseif ($args['type'] == 'checkbox') { |
|
| 1971 | 1971 | $type = 'CheckboxControl'; |
| 1972 | 1972 | $extra .= "checked: props.attributes.$key,"; |
| 1973 | 1973 | $onchange = "props.setAttributes({ $key: ! props.attributes.$key } )"; |
| 1974 | - }elseif ( $args['type'] == 'textarea' ) { |
|
| 1974 | + }elseif ($args['type'] == 'textarea') { |
|
| 1975 | 1975 | $type = 'TextareaControl'; |
| 1976 | - } elseif ( $args['type'] == 'select' || $args['type'] == 'multiselect' ) { |
|
| 1976 | + } elseif ($args['type'] == 'select' || $args['type'] == 'multiselect') { |
|
| 1977 | 1977 | $type = 'SelectControl'; |
| 1978 | - if ( ! empty( $args['options'] ) ) { |
|
| 1978 | + if (!empty($args['options'])) { |
|
| 1979 | 1979 | $options .= "options : ["; |
| 1980 | - foreach ( $args['options'] as $option_val => $option_label ) { |
|
| 1981 | - $options .= "{ value : '" . esc_attr( $option_val ) . "', label : '" . esc_attr( $option_label ) . "' },"; |
|
| 1980 | + foreach ($args['options'] as $option_val => $option_label) { |
|
| 1981 | + $options .= "{ value : '" . esc_attr($option_val) . "', label : '" . esc_attr($option_label) . "' },"; |
|
| 1982 | 1982 | } |
| 1983 | 1983 | $options .= "],"; |
| 1984 | 1984 | } |
| 1985 | - if ( isset( $args['multiple'] ) && $args['multiple'] ) { //@todo multiselect does not work at the moment: https://github.com/WordPress/gutenberg/issues/5550 |
|
| 1985 | + if (isset($args['multiple']) && $args['multiple']) { //@todo multiselect does not work at the moment: https://github.com/WordPress/gutenberg/issues/5550 |
|
| 1986 | 1986 | $extra .= ' multiple: true, '; |
| 1987 | 1987 | //$onchange = "props.setAttributes({ $key: ['edit'] } )"; |
| 1988 | 1988 | //$value = "['edit', 'delete']"; |
| 1989 | 1989 | } |
| 1990 | - } elseif ( $args['type'] == 'alignment' ) { |
|
| 1990 | + } elseif ($args['type'] == 'alignment') { |
|
| 1991 | 1991 | $type = 'AlignmentToolbar'; // @todo this does not seem to work but cant find a example |
| 1992 | 1992 | } else { |
| 1993 | - return;// if we have not implemented the control then don't break the JS. |
|
| 1993 | + return; // if we have not implemented the control then don't break the JS. |
|
| 1994 | 1994 | } |
| 1995 | 1995 | |
| 1996 | 1996 | // add show only if advanced |
| 1997 | - if ( ! empty( $args['advanced'] ) ) { |
|
| 1997 | + if (!empty($args['advanced'])) { |
|
| 1998 | 1998 | echo "props.attributes.show_advanced && "; |
| 1999 | 1999 | } |
| 2000 | 2000 | // add setting require if defined |
| 2001 | - if ( ! empty( $args['element_require'] ) ) { |
|
| 2002 | - echo $this->block_props_replace( $args['element_require'], true ) . " && "; |
|
| 2001 | + if (!empty($args['element_require'])) { |
|
| 2002 | + echo $this->block_props_replace($args['element_require'], true) . " && "; |
|
| 2003 | 2003 | } |
| 2004 | 2004 | ?> |
| 2005 | 2005 | el( |
| 2006 | - wp.components.<?php echo esc_attr( $type );?>, |
|
| 2006 | + wp.components.<?php echo esc_attr($type); ?>, |
|
| 2007 | 2007 | { |
| 2008 | - label: '<?php echo esc_attr( $args['title'] );?>', |
|
| 2009 | - help: '<?php if ( isset( $args['desc'] ) ) { |
|
| 2010 | - echo esc_attr( $args['desc'] ); |
|
| 2008 | + label: '<?php echo esc_attr($args['title']); ?>', |
|
| 2009 | + help: '<?php if (isset($args['desc'])) { |
|
| 2010 | + echo esc_attr($args['desc']); |
|
| 2011 | 2011 | }?>', |
| 2012 | - value: <?php echo $value;?>, |
|
| 2013 | - <?php if ( $type == 'TextControl' && $args['type'] != 'text' ) { |
|
| 2014 | - echo "type: '" . esc_attr( $args['type'] ) . "',"; |
|
| 2012 | + value: <?php echo $value; ?>, |
|
| 2013 | + <?php if ($type == 'TextControl' && $args['type'] != 'text') { |
|
| 2014 | + echo "type: '" . esc_attr($args['type']) . "',"; |
|
| 2015 | 2015 | }?> |
| 2016 | - <?php if ( ! empty( $args['placeholder'] ) ) { |
|
| 2017 | - echo "placeholder: '" . esc_attr( $args['placeholder'] ) . "',"; |
|
| 2016 | + <?php if (!empty($args['placeholder'])) { |
|
| 2017 | + echo "placeholder: '" . esc_attr($args['placeholder']) . "',"; |
|
| 2018 | 2018 | }?> |
| 2019 | - <?php echo $options;?> |
|
| 2020 | - <?php echo $extra;?> |
|
| 2021 | - <?php echo $custom_attributes;?> |
|
| 2022 | - onChange: function ( <?php echo $key;?> ) { |
|
| 2023 | - <?php echo $onchange;?> |
|
| 2019 | + <?php echo $options; ?> |
|
| 2020 | + <?php echo $extra; ?> |
|
| 2021 | + <?php echo $custom_attributes; ?> |
|
| 2022 | + onChange: function ( <?php echo $key; ?> ) { |
|
| 2023 | + <?php echo $onchange; ?> |
|
| 2024 | 2024 | } |
| 2025 | 2025 | } |
| 2026 | 2026 | ), |
@@ -2036,16 +2036,16 @@ discard block |
||
| 2036 | 2036 | * |
| 2037 | 2037 | * @return string |
| 2038 | 2038 | */ |
| 2039 | - public function array_to_attributes( $custom_attributes, $html = false ) { |
|
| 2039 | + public function array_to_attributes($custom_attributes, $html = false) { |
|
| 2040 | 2040 | $attributes = ''; |
| 2041 | - if ( ! empty( $custom_attributes ) ) { |
|
| 2041 | + if (!empty($custom_attributes)) { |
|
| 2042 | 2042 | |
| 2043 | - if ( $html ) { |
|
| 2044 | - foreach ( $custom_attributes as $key => $val ) { |
|
| 2043 | + if ($html) { |
|
| 2044 | + foreach ($custom_attributes as $key => $val) { |
|
| 2045 | 2045 | $attributes .= " $key='$val' "; |
| 2046 | 2046 | } |
| 2047 | 2047 | } else { |
| 2048 | - foreach ( $custom_attributes as $key => $val ) { |
|
| 2048 | + foreach ($custom_attributes as $key => $val) { |
|
| 2049 | 2049 | $attributes .= "'$key': '$val',"; |
| 2050 | 2050 | } |
| 2051 | 2051 | } |
@@ -2061,86 +2061,86 @@ discard block |
||
| 2061 | 2061 | * |
| 2062 | 2062 | * @param $args |
| 2063 | 2063 | */ |
| 2064 | - public function block_element( $args ) { |
|
| 2064 | + public function block_element($args) { |
|
| 2065 | 2065 | |
| 2066 | 2066 | |
| 2067 | - if ( ! empty( $args ) ) { |
|
| 2068 | - foreach ( $args as $element => $new_args ) { |
|
| 2067 | + if (!empty($args)) { |
|
| 2068 | + foreach ($args as $element => $new_args) { |
|
| 2069 | 2069 | |
| 2070 | - if ( is_array( $new_args ) ) { // its an element |
|
| 2070 | + if (is_array($new_args)) { // its an element |
|
| 2071 | 2071 | |
| 2072 | 2072 | |
| 2073 | - if ( isset( $new_args['element'] ) ) { |
|
| 2073 | + if (isset($new_args['element'])) { |
|
| 2074 | 2074 | |
| 2075 | - if ( isset( $new_args['element_require'] ) ) { |
|
| 2076 | - echo str_replace( array( |
|
| 2075 | + if (isset($new_args['element_require'])) { |
|
| 2076 | + echo str_replace(array( |
|
| 2077 | 2077 | "'+", |
| 2078 | 2078 | "+'" |
| 2079 | - ), '', $this->block_props_replace( $new_args['element_require'] ) ) . " && "; |
|
| 2080 | - unset( $new_args['element_require'] ); |
|
| 2079 | + ), '', $this->block_props_replace($new_args['element_require'])) . " && "; |
|
| 2080 | + unset($new_args['element_require']); |
|
| 2081 | 2081 | } |
| 2082 | 2082 | |
| 2083 | 2083 | echo "\n el( '" . $new_args['element'] . "', {"; |
| 2084 | 2084 | |
| 2085 | 2085 | // get the attributes |
| 2086 | - foreach ( $new_args as $new_key => $new_value ) { |
|
| 2086 | + foreach ($new_args as $new_key => $new_value) { |
|
| 2087 | 2087 | |
| 2088 | 2088 | |
| 2089 | - if ( $new_key == 'element' || $new_key == 'content' || $new_key == 'element_require' || $new_key == 'element_repeat' || is_array( $new_value ) ) { |
|
| 2089 | + if ($new_key == 'element' || $new_key == 'content' || $new_key == 'element_require' || $new_key == 'element_repeat' || is_array($new_value)) { |
|
| 2090 | 2090 | // do nothing |
| 2091 | 2091 | } else { |
| 2092 | - echo $this->block_element( array( $new_key => $new_value ) ); |
|
| 2092 | + echo $this->block_element(array($new_key => $new_value)); |
|
| 2093 | 2093 | } |
| 2094 | 2094 | } |
| 2095 | 2095 | |
| 2096 | - echo "},";// end attributes |
|
| 2096 | + echo "},"; // end attributes |
|
| 2097 | 2097 | |
| 2098 | 2098 | // get the content |
| 2099 | 2099 | $first_item = 0; |
| 2100 | - foreach ( $new_args as $new_key => $new_value ) { |
|
| 2101 | - if ( $new_key === 'content' || is_array( $new_value ) ) { |
|
| 2100 | + foreach ($new_args as $new_key => $new_value) { |
|
| 2101 | + if ($new_key === 'content' || is_array($new_value)) { |
|
| 2102 | 2102 | |
| 2103 | - if ( $new_key === 'content' ) { |
|
| 2104 | - echo "'" . $this->block_props_replace( wp_slash( $new_value ) ) . "'"; |
|
| 2103 | + if ($new_key === 'content') { |
|
| 2104 | + echo "'" . $this->block_props_replace(wp_slash($new_value)) . "'"; |
|
| 2105 | 2105 | } |
| 2106 | 2106 | |
| 2107 | - if ( is_array( $new_value ) ) { |
|
| 2107 | + if (is_array($new_value)) { |
|
| 2108 | 2108 | |
| 2109 | - if ( isset( $new_value['element_require'] ) ) { |
|
| 2110 | - echo str_replace( array( |
|
| 2109 | + if (isset($new_value['element_require'])) { |
|
| 2110 | + echo str_replace(array( |
|
| 2111 | 2111 | "'+", |
| 2112 | 2112 | "+'" |
| 2113 | - ), '', $this->block_props_replace( $new_value['element_require'] ) ) . " && "; |
|
| 2114 | - unset( $new_value['element_require'] ); |
|
| 2113 | + ), '', $this->block_props_replace($new_value['element_require'])) . " && "; |
|
| 2114 | + unset($new_value['element_require']); |
|
| 2115 | 2115 | } |
| 2116 | 2116 | |
| 2117 | - if ( isset( $new_value['element_repeat'] ) ) { |
|
| 2117 | + if (isset($new_value['element_repeat'])) { |
|
| 2118 | 2118 | $x = 1; |
| 2119 | - while ( $x <= absint( $new_value['element_repeat'] ) ) { |
|
| 2120 | - $this->block_element( array( '' => $new_value ) ); |
|
| 2121 | - $x ++; |
|
| 2119 | + while ($x <= absint($new_value['element_repeat'])) { |
|
| 2120 | + $this->block_element(array('' => $new_value)); |
|
| 2121 | + $x++; |
|
| 2122 | 2122 | } |
| 2123 | 2123 | } else { |
| 2124 | - $this->block_element( array( '' => $new_value ) ); |
|
| 2124 | + $this->block_element(array('' => $new_value)); |
|
| 2125 | 2125 | } |
| 2126 | 2126 | } |
| 2127 | - $first_item ++; |
|
| 2127 | + $first_item++; |
|
| 2128 | 2128 | } |
| 2129 | 2129 | } |
| 2130 | 2130 | |
| 2131 | - echo ")";// end content |
|
| 2131 | + echo ")"; // end content |
|
| 2132 | 2132 | |
| 2133 | 2133 | echo ", \n"; |
| 2134 | 2134 | |
| 2135 | 2135 | } |
| 2136 | 2136 | } else { |
| 2137 | 2137 | |
| 2138 | - if ( substr( $element, 0, 3 ) === "if_" ) { |
|
| 2139 | - echo str_replace( "if_", "", $element ) . ": " . $this->block_props_replace( $new_args, true ) . ","; |
|
| 2140 | - } elseif ( $element == 'style' ) { |
|
| 2141 | - echo $element . ": " . $this->block_props_replace( $new_args ) . ","; |
|
| 2138 | + if (substr($element, 0, 3) === "if_") { |
|
| 2139 | + echo str_replace("if_", "", $element) . ": " . $this->block_props_replace($new_args, true) . ","; |
|
| 2140 | + } elseif ($element == 'style') { |
|
| 2141 | + echo $element . ": " . $this->block_props_replace($new_args) . ","; |
|
| 2142 | 2142 | } else { |
| 2143 | - echo $element . ": '" . $this->block_props_replace( $new_args ) . "',"; |
|
| 2143 | + echo $element . ": '" . $this->block_props_replace($new_args) . "',"; |
|
| 2144 | 2144 | } |
| 2145 | 2145 | |
| 2146 | 2146 | } |
@@ -2155,12 +2155,12 @@ discard block |
||
| 2155 | 2155 | * |
| 2156 | 2156 | * @return mixed |
| 2157 | 2157 | */ |
| 2158 | - public function block_props_replace( $string, $no_wrap = false ) { |
|
| 2158 | + public function block_props_replace($string, $no_wrap = false) { |
|
| 2159 | 2159 | |
| 2160 | - if ( $no_wrap ) { |
|
| 2161 | - $string = str_replace( array( "[%", "%]" ), array( "props.attributes.", "" ), $string ); |
|
| 2160 | + if ($no_wrap) { |
|
| 2161 | + $string = str_replace(array("[%", "%]"), array("props.attributes.", ""), $string); |
|
| 2162 | 2162 | } else { |
| 2163 | - $string = str_replace( array( "[%", "%]" ), array( "'+props.attributes.", "+'" ), $string ); |
|
| 2163 | + $string = str_replace(array("[%", "%]"), array("'+props.attributes.", "+'"), $string); |
|
| 2164 | 2164 | } |
| 2165 | 2165 | |
| 2166 | 2166 | return $string; |
@@ -2172,48 +2172,48 @@ discard block |
||
| 2172 | 2172 | * @param array $args |
| 2173 | 2173 | * @param array $instance |
| 2174 | 2174 | */ |
| 2175 | - public function widget( $args, $instance ) { |
|
| 2175 | + public function widget($args, $instance) { |
|
| 2176 | 2176 | |
| 2177 | 2177 | // get the filtered values |
| 2178 | - $argument_values = $this->argument_values( $instance ); |
|
| 2179 | - $argument_values = $this->string_to_bool( $argument_values ); |
|
| 2180 | - $output = $this->output( $argument_values, $args ); |
|
| 2178 | + $argument_values = $this->argument_values($instance); |
|
| 2179 | + $argument_values = $this->string_to_bool($argument_values); |
|
| 2180 | + $output = $this->output($argument_values, $args); |
|
| 2181 | 2181 | |
| 2182 | 2182 | $no_wrap = false; |
| 2183 | - if( isset( $argument_values['no_wrap'] ) && $argument_values['no_wrap'] ){ $no_wrap = true; } |
|
| 2183 | + if (isset($argument_values['no_wrap']) && $argument_values['no_wrap']) { $no_wrap = true; } |
|
| 2184 | 2184 | |
| 2185 | 2185 | ob_start(); |
| 2186 | - if ( $output && !$no_wrap) { |
|
| 2186 | + if ($output && !$no_wrap) { |
|
| 2187 | 2187 | // Before widget |
| 2188 | 2188 | $before_widget = $args['before_widget']; |
| 2189 | - $before_widget = apply_filters( 'wp_super_duper_before_widget', $before_widget, $args, $instance, $this ); |
|
| 2190 | - $before_widget = apply_filters( 'wp_super_duper_before_widget_' . $this->base_id, $before_widget, $args, $instance, $this ); |
|
| 2189 | + $before_widget = apply_filters('wp_super_duper_before_widget', $before_widget, $args, $instance, $this); |
|
| 2190 | + $before_widget = apply_filters('wp_super_duper_before_widget_' . $this->base_id, $before_widget, $args, $instance, $this); |
|
| 2191 | 2191 | |
| 2192 | 2192 | // After widget |
| 2193 | 2193 | $after_widget = $args['after_widget']; |
| 2194 | - $after_widget = apply_filters( 'wp_super_duper_after_widget', $after_widget, $args, $instance, $this ); |
|
| 2195 | - $after_widget = apply_filters( 'wp_super_duper_after_widget_' . $this->base_id, $after_widget, $args, $instance, $this ); |
|
| 2194 | + $after_widget = apply_filters('wp_super_duper_after_widget', $after_widget, $args, $instance, $this); |
|
| 2195 | + $after_widget = apply_filters('wp_super_duper_after_widget_' . $this->base_id, $after_widget, $args, $instance, $this); |
|
| 2196 | 2196 | |
| 2197 | 2197 | echo $before_widget; |
| 2198 | 2198 | // elementor strips the widget wrapping div so we check for and add it back if needed |
| 2199 | - if ( $this->is_elementor_widget_output() ) { |
|
| 2200 | - echo ! empty( $this->options['widget_ops']['classname'] ) ? "<span class='" . esc_attr( $this->options['widget_ops']['classname'] ) . "'>" : ''; |
|
| 2199 | + if ($this->is_elementor_widget_output()) { |
|
| 2200 | + echo !empty($this->options['widget_ops']['classname']) ? "<span class='" . esc_attr($this->options['widget_ops']['classname']) . "'>" : ''; |
|
| 2201 | 2201 | } |
| 2202 | - echo $this->output_title( $args, $instance ); |
|
| 2202 | + echo $this->output_title($args, $instance); |
|
| 2203 | 2203 | echo $output; |
| 2204 | - if ( $this->is_elementor_widget_output() ) { |
|
| 2205 | - echo ! empty( $this->options['widget_ops']['classname'] ) ? "</span>" : ''; |
|
| 2204 | + if ($this->is_elementor_widget_output()) { |
|
| 2205 | + echo !empty($this->options['widget_ops']['classname']) ? "</span>" : ''; |
|
| 2206 | 2206 | } |
| 2207 | 2207 | echo $after_widget; |
| 2208 | - } elseif ( $this->is_preview() && $output == '' ) {// if preview show a placeholder if empty |
|
| 2209 | - $output = $this->preview_placeholder_text( "{{" . $this->base_id . "}}" ); |
|
| 2208 | + } elseif ($this->is_preview() && $output == '') {// if preview show a placeholder if empty |
|
| 2209 | + $output = $this->preview_placeholder_text("{{" . $this->base_id . "}}"); |
|
| 2210 | 2210 | echo $output; |
| 2211 | - } elseif($output && $no_wrap){ |
|
| 2211 | + } elseif ($output && $no_wrap) { |
|
| 2212 | 2212 | echo $output; |
| 2213 | 2213 | } |
| 2214 | 2214 | $output = ob_get_clean(); |
| 2215 | 2215 | |
| 2216 | - $output = apply_filters( 'wp_super_duper_widget_output', $output, $instance, $args, $this ); |
|
| 2216 | + $output = apply_filters('wp_super_duper_widget_output', $output, $instance, $args, $this); |
|
| 2217 | 2217 | |
| 2218 | 2218 | echo $output; |
| 2219 | 2219 | } |
@@ -2226,7 +2226,7 @@ discard block |
||
| 2226 | 2226 | */ |
| 2227 | 2227 | public function is_elementor_widget_output() { |
| 2228 | 2228 | $result = false; |
| 2229 | - if ( defined( 'ELEMENTOR_VERSION' ) && isset( $this->number ) && $this->number == 'REPLACE_TO_ID' ) { |
|
| 2229 | + if (defined('ELEMENTOR_VERSION') && isset($this->number) && $this->number == 'REPLACE_TO_ID') { |
|
| 2230 | 2230 | $result = true; |
| 2231 | 2231 | } |
| 2232 | 2232 | |
@@ -2241,7 +2241,7 @@ discard block |
||
| 2241 | 2241 | */ |
| 2242 | 2242 | public function is_elementor_preview() { |
| 2243 | 2243 | $result = false; |
| 2244 | - if ( isset( $_REQUEST['elementor-preview'] ) || ( is_admin() && isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'elementor' ) || ( isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'elementor_ajax' ) ) { |
|
| 2244 | + if (isset($_REQUEST['elementor-preview']) || (is_admin() && isset($_REQUEST['action']) && $_REQUEST['action'] == 'elementor') || (isset($_REQUEST['action']) && $_REQUEST['action'] == 'elementor_ajax')) { |
|
| 2245 | 2245 | $result = true; |
| 2246 | 2246 | } |
| 2247 | 2247 | |
@@ -2256,7 +2256,7 @@ discard block |
||
| 2256 | 2256 | */ |
| 2257 | 2257 | public function is_divi_preview() { |
| 2258 | 2258 | $result = false; |
| 2259 | - if ( isset( $_REQUEST['et_fb'] ) || isset( $_REQUEST['et_pb_preview'] ) || ( is_admin() && isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'elementor' ) ) { |
|
| 2259 | + if (isset($_REQUEST['et_fb']) || isset($_REQUEST['et_pb_preview']) || (is_admin() && isset($_REQUEST['action']) && $_REQUEST['action'] == 'elementor')) { |
|
| 2260 | 2260 | $result = true; |
| 2261 | 2261 | } |
| 2262 | 2262 | |
@@ -2271,7 +2271,7 @@ discard block |
||
| 2271 | 2271 | */ |
| 2272 | 2272 | public function is_beaver_preview() { |
| 2273 | 2273 | $result = false; |
| 2274 | - if ( isset( $_REQUEST['fl_builder'] ) ) { |
|
| 2274 | + if (isset($_REQUEST['fl_builder'])) { |
|
| 2275 | 2275 | $result = true; |
| 2276 | 2276 | } |
| 2277 | 2277 | |
@@ -2286,7 +2286,7 @@ discard block |
||
| 2286 | 2286 | */ |
| 2287 | 2287 | public function is_siteorigin_preview() { |
| 2288 | 2288 | $result = false; |
| 2289 | - if ( ! empty( $_REQUEST['siteorigin_panels_live_editor'] ) ) { |
|
| 2289 | + if (!empty($_REQUEST['siteorigin_panels_live_editor'])) { |
|
| 2290 | 2290 | $result = true; |
| 2291 | 2291 | } |
| 2292 | 2292 | |
@@ -2301,7 +2301,7 @@ discard block |
||
| 2301 | 2301 | */ |
| 2302 | 2302 | public function is_cornerstone_preview() { |
| 2303 | 2303 | $result = false; |
| 2304 | - if ( ! empty( $_REQUEST['cornerstone_preview'] ) || basename( $_SERVER['REQUEST_URI'] ) == 'cornerstone-endpoint' ) { |
|
| 2304 | + if (!empty($_REQUEST['cornerstone_preview']) || basename($_SERVER['REQUEST_URI']) == 'cornerstone-endpoint') { |
|
| 2305 | 2305 | $result = true; |
| 2306 | 2306 | } |
| 2307 | 2307 | |
@@ -2316,7 +2316,7 @@ discard block |
||
| 2316 | 2316 | */ |
| 2317 | 2317 | public function is_fusion_preview() { |
| 2318 | 2318 | $result = false; |
| 2319 | - if ( ! empty( $_REQUEST['fb-edit'] ) || ! empty( $_REQUEST['fusion_load_nonce'] ) ) { |
|
| 2319 | + if (!empty($_REQUEST['fb-edit']) || !empty($_REQUEST['fusion_load_nonce'])) { |
|
| 2320 | 2320 | $result = true; |
| 2321 | 2321 | } |
| 2322 | 2322 | |
@@ -2331,17 +2331,17 @@ discard block |
||
| 2331 | 2331 | */ |
| 2332 | 2332 | public function is_preview() { |
| 2333 | 2333 | $preview = false; |
| 2334 | - if ( $this->is_divi_preview() ) { |
|
| 2334 | + if ($this->is_divi_preview()) { |
|
| 2335 | 2335 | $preview = true; |
| 2336 | - } elseif ( $this->is_elementor_preview() ) { |
|
| 2336 | + } elseif ($this->is_elementor_preview()) { |
|
| 2337 | 2337 | $preview = true; |
| 2338 | - } elseif ( $this->is_beaver_preview() ) { |
|
| 2338 | + } elseif ($this->is_beaver_preview()) { |
|
| 2339 | 2339 | $preview = true; |
| 2340 | - } elseif ( $this->is_siteorigin_preview() ) { |
|
| 2340 | + } elseif ($this->is_siteorigin_preview()) { |
|
| 2341 | 2341 | $preview = true; |
| 2342 | - } elseif ( $this->is_cornerstone_preview() ) { |
|
| 2342 | + } elseif ($this->is_cornerstone_preview()) { |
|
| 2343 | 2343 | $preview = true; |
| 2344 | - } elseif ( $this->is_fusion_preview() ) { |
|
| 2344 | + } elseif ($this->is_fusion_preview()) { |
|
| 2345 | 2345 | $preview = true; |
| 2346 | 2346 | } |
| 2347 | 2347 | |
@@ -2356,11 +2356,11 @@ discard block |
||
| 2356 | 2356 | * |
| 2357 | 2357 | * @return string |
| 2358 | 2358 | */ |
| 2359 | - public function output_title( $args, $instance = array() ) { |
|
| 2359 | + public function output_title($args, $instance = array()) { |
|
| 2360 | 2360 | $output = ''; |
| 2361 | - if ( ! empty( $instance['title'] ) ) { |
|
| 2361 | + if (!empty($instance['title'])) { |
|
| 2362 | 2362 | /** This filter is documented in wp-includes/widgets/class-wp-widget-pages.php */ |
| 2363 | - $title = apply_filters( 'widget_title', $instance['title'], $instance, $this->id_base ); |
|
| 2363 | + $title = apply_filters('widget_title', $instance['title'], $instance, $this->id_base); |
|
| 2364 | 2364 | $output = $args['before_title'] . $title . $args['after_title']; |
| 2365 | 2365 | } |
| 2366 | 2366 | |
@@ -2372,7 +2372,7 @@ discard block |
||
| 2372 | 2372 | * |
| 2373 | 2373 | * @param array $instance The widget options. |
| 2374 | 2374 | */ |
| 2375 | - public function form( $instance ) { |
|
| 2375 | + public function form($instance) { |
|
| 2376 | 2376 | |
| 2377 | 2377 | // set widget instance |
| 2378 | 2378 | $this->instance = $instance; |
@@ -2380,10 +2380,10 @@ discard block |
||
| 2380 | 2380 | // set it as a SD widget |
| 2381 | 2381 | echo $this->widget_advanced_toggle(); |
| 2382 | 2382 | |
| 2383 | - echo "<p>" . esc_attr( $this->options['widget_ops']['description'] ) . "</p>"; |
|
| 2383 | + echo "<p>" . esc_attr($this->options['widget_ops']['description']) . "</p>"; |
|
| 2384 | 2384 | $arguments_raw = $this->get_arguments(); |
| 2385 | 2385 | |
| 2386 | - if ( is_array( $arguments_raw ) ) { |
|
| 2386 | + if (is_array($arguments_raw)) { |
|
| 2387 | 2387 | |
| 2388 | 2388 | $arguments = $this->group_arguments($arguments_raw); |
| 2389 | 2389 | |
@@ -2391,9 +2391,9 @@ discard block |
||
| 2391 | 2391 | $has_sections = $arguments == $arguments_raw ? false : true; |
| 2392 | 2392 | |
| 2393 | 2393 | |
| 2394 | - if($has_sections){ |
|
| 2394 | + if ($has_sections) { |
|
| 2395 | 2395 | $panel_count = 0; |
| 2396 | - foreach($arguments as $key => $args){ |
|
| 2396 | + foreach ($arguments as $key => $args) { |
|
| 2397 | 2397 | |
| 2398 | 2398 | ?> |
| 2399 | 2399 | <script> |
@@ -2403,10 +2403,10 @@ discard block |
||
| 2403 | 2403 | |
| 2404 | 2404 | $hide = $panel_count ? ' style="display:none;" ' : ''; |
| 2405 | 2405 | $icon_class = $panel_count ? 'fas fa-chevron-up' : 'fas fa-chevron-down'; |
| 2406 | - echo "<button onclick='jQuery(this).find(\"i\").toggleClass(\"fas fa-chevron-up fas fa-chevron-down\");jQuery(this).next().slideToggle();' type='button' class='sd-toggle-group-button sd-input-group-toggle".sanitize_title_with_dashes($key)."'>".esc_attr($key)." <i style='float:right;' class='".$icon_class."'></i></button>"; |
|
| 2407 | - echo "<div class='sd-toggle-group sd-input-group-".sanitize_title_with_dashes($key)."' $hide>"; |
|
| 2406 | + echo "<button onclick='jQuery(this).find(\"i\").toggleClass(\"fas fa-chevron-up fas fa-chevron-down\");jQuery(this).next().slideToggle();' type='button' class='sd-toggle-group-button sd-input-group-toggle" . sanitize_title_with_dashes($key) . "'>" . esc_attr($key) . " <i style='float:right;' class='" . $icon_class . "'></i></button>"; |
|
| 2407 | + echo "<div class='sd-toggle-group sd-input-group-" . sanitize_title_with_dashes($key) . "' $hide>"; |
|
| 2408 | 2408 | |
| 2409 | - foreach($args as $k => $a){ |
|
| 2409 | + foreach ($args as $k => $a) { |
|
| 2410 | 2410 | $this->widget_inputs($a, $instance); |
| 2411 | 2411 | } |
| 2412 | 2412 | |
@@ -2415,9 +2415,9 @@ discard block |
||
| 2415 | 2415 | $panel_count++; |
| 2416 | 2416 | |
| 2417 | 2417 | } |
| 2418 | - }else{ |
|
| 2419 | - foreach ( $arguments as $key => $args ) { |
|
| 2420 | - $this->widget_inputs( $args, $instance ); |
|
| 2418 | + } else { |
|
| 2419 | + foreach ($arguments as $key => $args) { |
|
| 2420 | + $this->widget_inputs($args, $instance); |
|
| 2421 | 2421 | } |
| 2422 | 2422 | } |
| 2423 | 2423 | |
@@ -2432,7 +2432,7 @@ discard block |
||
| 2432 | 2432 | public function widget_advanced_toggle() { |
| 2433 | 2433 | |
| 2434 | 2434 | $output = ''; |
| 2435 | - if ( $this->block_show_advanced() ) { |
|
| 2435 | + if ($this->block_show_advanced()) { |
|
| 2436 | 2436 | $val = 1; |
| 2437 | 2437 | } else { |
| 2438 | 2438 | $val = 0; |
@@ -2452,14 +2452,14 @@ discard block |
||
| 2452 | 2452 | * |
| 2453 | 2453 | * @return string $output |
| 2454 | 2454 | */ |
| 2455 | - public function convert_element_require( $input ) { |
|
| 2455 | + public function convert_element_require($input) { |
|
| 2456 | 2456 | |
| 2457 | - $input = str_replace( "'", '"', $input );// we only want double quotes |
|
| 2457 | + $input = str_replace("'", '"', $input); // we only want double quotes |
|
| 2458 | 2458 | |
| 2459 | - $output = esc_attr( str_replace( array( "[%", "%]" ), array( |
|
| 2459 | + $output = esc_attr(str_replace(array("[%", "%]"), array( |
|
| 2460 | 2460 | "jQuery(form).find('[data-argument=\"", |
| 2461 | 2461 | "\"]').find('input,select,textarea').val()" |
| 2462 | - ), $input ) ); |
|
| 2462 | + ), $input)); |
|
| 2463 | 2463 | |
| 2464 | 2464 | return $output; |
| 2465 | 2465 | } |
@@ -2470,54 +2470,54 @@ discard block |
||
| 2470 | 2470 | * @param $args |
| 2471 | 2471 | * @param $instance |
| 2472 | 2472 | */ |
| 2473 | - public function widget_inputs( $args, $instance ) { |
|
| 2473 | + public function widget_inputs($args, $instance) { |
|
| 2474 | 2474 | |
| 2475 | 2475 | $class = ""; |
| 2476 | 2476 | $element_require = ""; |
| 2477 | 2477 | $custom_attributes = ""; |
| 2478 | 2478 | |
| 2479 | 2479 | // get value |
| 2480 | - if ( isset( $instance[ $args['name'] ] ) ) { |
|
| 2481 | - $value = $instance[ $args['name'] ]; |
|
| 2482 | - } elseif ( ! isset( $instance[ $args['name'] ] ) && ! empty( $args['default'] ) ) { |
|
| 2483 | - $value = is_array( $args['default'] ) ? array_map( "esc_html", $args['default'] ) : esc_html( $args['default'] ); |
|
| 2480 | + if (isset($instance[$args['name']])) { |
|
| 2481 | + $value = $instance[$args['name']]; |
|
| 2482 | + } elseif (!isset($instance[$args['name']]) && !empty($args['default'])) { |
|
| 2483 | + $value = is_array($args['default']) ? array_map("esc_html", $args['default']) : esc_html($args['default']); |
|
| 2484 | 2484 | } else { |
| 2485 | 2485 | $value = ''; |
| 2486 | 2486 | } |
| 2487 | 2487 | |
| 2488 | 2488 | // get placeholder |
| 2489 | - if ( ! empty( $args['placeholder'] ) ) { |
|
| 2490 | - $placeholder = "placeholder='" . esc_html( $args['placeholder'] ) . "'"; |
|
| 2489 | + if (!empty($args['placeholder'])) { |
|
| 2490 | + $placeholder = "placeholder='" . esc_html($args['placeholder']) . "'"; |
|
| 2491 | 2491 | } else { |
| 2492 | 2492 | $placeholder = ''; |
| 2493 | 2493 | } |
| 2494 | 2494 | |
| 2495 | 2495 | // get if advanced |
| 2496 | - if ( isset( $args['advanced'] ) && $args['advanced'] ) { |
|
| 2496 | + if (isset($args['advanced']) && $args['advanced']) { |
|
| 2497 | 2497 | $class .= " sd-advanced-setting "; |
| 2498 | 2498 | } |
| 2499 | 2499 | |
| 2500 | 2500 | // element_require |
| 2501 | - if ( isset( $args['element_require'] ) && $args['element_require'] ) { |
|
| 2501 | + if (isset($args['element_require']) && $args['element_require']) { |
|
| 2502 | 2502 | $element_require = $args['element_require']; |
| 2503 | 2503 | } |
| 2504 | 2504 | |
| 2505 | 2505 | // custom_attributes |
| 2506 | - if ( isset( $args['custom_attributes'] ) && $args['custom_attributes'] ) { |
|
| 2507 | - $custom_attributes = $this->array_to_attributes( $args['custom_attributes'], true ); |
|
| 2506 | + if (isset($args['custom_attributes']) && $args['custom_attributes']) { |
|
| 2507 | + $custom_attributes = $this->array_to_attributes($args['custom_attributes'], true); |
|
| 2508 | 2508 | } |
| 2509 | 2509 | |
| 2510 | 2510 | // before wrapper |
| 2511 | 2511 | ?> |
| 2512 | - <p class="sd-argument <?php echo esc_attr( $class ); ?>" |
|
| 2513 | - data-argument='<?php echo esc_attr( $args['name'] ); ?>' |
|
| 2514 | - data-element_require='<?php if ( $element_require ) { |
|
| 2515 | - echo $this->convert_element_require( $element_require ); |
|
| 2512 | + <p class="sd-argument <?php echo esc_attr($class); ?>" |
|
| 2513 | + data-argument='<?php echo esc_attr($args['name']); ?>' |
|
| 2514 | + data-element_require='<?php if ($element_require) { |
|
| 2515 | + echo $this->convert_element_require($element_require); |
|
| 2516 | 2516 | } ?>' |
| 2517 | 2517 | > |
| 2518 | 2518 | <?php |
| 2519 | 2519 | |
| 2520 | - switch ( $args['type'] ) { |
|
| 2520 | + switch ($args['type']) { |
|
| 2521 | 2521 | //array('text','password','number','email','tel','url','color') |
| 2522 | 2522 | case "text": |
| 2523 | 2523 | case "password": |
@@ -2528,46 +2528,46 @@ discard block |
||
| 2528 | 2528 | case "color": |
| 2529 | 2529 | ?> |
| 2530 | 2530 | <label |
| 2531 | - for="<?php echo esc_attr( $this->get_field_id( $args['name'] ) ); ?>"><?php echo esc_attr( $args['title'] ); ?><?php echo $this->widget_field_desc( $args ); ?></label> |
|
| 2531 | + for="<?php echo esc_attr($this->get_field_id($args['name'])); ?>"><?php echo esc_attr($args['title']); ?><?php echo $this->widget_field_desc($args); ?></label> |
|
| 2532 | 2532 | <input <?php echo $placeholder; ?> class="widefat" |
| 2533 | 2533 | <?php echo $custom_attributes; ?> |
| 2534 | - id="<?php echo esc_attr( $this->get_field_id( $args['name'] ) ); ?>" |
|
| 2535 | - name="<?php echo esc_attr( $this->get_field_name( $args['name'] ) ); ?>" |
|
| 2536 | - type="<?php echo esc_attr( $args['type'] ); ?>" |
|
| 2537 | - value="<?php echo esc_attr( $value ); ?>"> |
|
| 2534 | + id="<?php echo esc_attr($this->get_field_id($args['name'])); ?>" |
|
| 2535 | + name="<?php echo esc_attr($this->get_field_name($args['name'])); ?>" |
|
| 2536 | + type="<?php echo esc_attr($args['type']); ?>" |
|
| 2537 | + value="<?php echo esc_attr($value); ?>"> |
|
| 2538 | 2538 | <?php |
| 2539 | 2539 | |
| 2540 | 2540 | break; |
| 2541 | 2541 | case "select": |
| 2542 | - $multiple = isset( $args['multiple'] ) && $args['multiple'] ? true : false; |
|
| 2543 | - if ( $multiple ) { |
|
| 2544 | - if ( empty( $value ) ) { |
|
| 2542 | + $multiple = isset($args['multiple']) && $args['multiple'] ? true : false; |
|
| 2543 | + if ($multiple) { |
|
| 2544 | + if (empty($value)) { |
|
| 2545 | 2545 | $value = array(); |
| 2546 | 2546 | } |
| 2547 | 2547 | } |
| 2548 | 2548 | ?> |
| 2549 | 2549 | <label |
| 2550 | - for="<?php echo esc_attr( $this->get_field_id( $args['name'] ) ); ?>"><?php echo esc_attr( $args['title'] ); ?><?php echo $this->widget_field_desc( $args ); ?></label> |
|
| 2550 | + for="<?php echo esc_attr($this->get_field_id($args['name'])); ?>"><?php echo esc_attr($args['title']); ?><?php echo $this->widget_field_desc($args); ?></label> |
|
| 2551 | 2551 | <select <?php echo $placeholder; ?> class="widefat" |
| 2552 | 2552 | <?php echo $custom_attributes; ?> |
| 2553 | - id="<?php echo esc_attr( $this->get_field_id( $args['name'] ) ); ?>" |
|
| 2554 | - name="<?php echo esc_attr( $this->get_field_name( $args['name'] ) ); |
|
| 2555 | - if ( $multiple ) { |
|
| 2553 | + id="<?php echo esc_attr($this->get_field_id($args['name'])); ?>" |
|
| 2554 | + name="<?php echo esc_attr($this->get_field_name($args['name'])); |
|
| 2555 | + if ($multiple) { |
|
| 2556 | 2556 | echo "[]"; |
| 2557 | 2557 | } ?>" |
| 2558 | - <?php if ( $multiple ) { |
|
| 2558 | + <?php if ($multiple) { |
|
| 2559 | 2559 | echo "multiple"; |
| 2560 | 2560 | } //@todo not implemented yet due to gutenberg not supporting it |
| 2561 | 2561 | ?> |
| 2562 | 2562 | > |
| 2563 | 2563 | <?php |
| 2564 | 2564 | |
| 2565 | - if ( ! empty( $args['options'] ) ) { |
|
| 2566 | - foreach ( $args['options'] as $val => $label ) { |
|
| 2567 | - if ( $multiple ) { |
|
| 2568 | - $selected = in_array( $val, $value ) ? 'selected="selected"' : ''; |
|
| 2565 | + if (!empty($args['options'])) { |
|
| 2566 | + foreach ($args['options'] as $val => $label) { |
|
| 2567 | + if ($multiple) { |
|
| 2568 | + $selected = in_array($val, $value) ? 'selected="selected"' : ''; |
|
| 2569 | 2569 | } else { |
| 2570 | - $selected = selected( $value, $val, false ); |
|
| 2570 | + $selected = selected($value, $val, false); |
|
| 2571 | 2571 | } |
| 2572 | 2572 | echo "<option value='$val' " . $selected . ">$label</option>"; |
| 2573 | 2573 | } |
@@ -2579,32 +2579,32 @@ discard block |
||
| 2579 | 2579 | case "checkbox": |
| 2580 | 2580 | ?> |
| 2581 | 2581 | <input <?php echo $placeholder; ?> |
| 2582 | - <?php checked( 1, $value, true ) ?> |
|
| 2582 | + <?php checked(1, $value, true) ?> |
|
| 2583 | 2583 | <?php echo $custom_attributes; ?> |
| 2584 | - class="widefat" id="<?php echo esc_attr( $this->get_field_id( $args['name'] ) ); ?>" |
|
| 2585 | - name="<?php echo esc_attr( $this->get_field_name( $args['name'] ) ); ?>" type="checkbox" |
|
| 2584 | + class="widefat" id="<?php echo esc_attr($this->get_field_id($args['name'])); ?>" |
|
| 2585 | + name="<?php echo esc_attr($this->get_field_name($args['name'])); ?>" type="checkbox" |
|
| 2586 | 2586 | value="1"> |
| 2587 | 2587 | <label |
| 2588 | - for="<?php echo esc_attr( $this->get_field_id( $args['name'] ) ); ?>"><?php echo esc_attr( $args['title'] ); ?><?php echo $this->widget_field_desc( $args ); ?></label> |
|
| 2588 | + for="<?php echo esc_attr($this->get_field_id($args['name'])); ?>"><?php echo esc_attr($args['title']); ?><?php echo $this->widget_field_desc($args); ?></label> |
|
| 2589 | 2589 | <?php |
| 2590 | 2590 | break; |
| 2591 | 2591 | case "textarea": |
| 2592 | 2592 | ?> |
| 2593 | 2593 | <label |
| 2594 | - for="<?php echo esc_attr( $this->get_field_id( $args['name'] ) ); ?>"><?php echo esc_attr( $args['title'] ); ?><?php echo $this->widget_field_desc( $args ); ?></label> |
|
| 2594 | + for="<?php echo esc_attr($this->get_field_id($args['name'])); ?>"><?php echo esc_attr($args['title']); ?><?php echo $this->widget_field_desc($args); ?></label> |
|
| 2595 | 2595 | <textarea <?php echo $placeholder; ?> class="widefat" |
| 2596 | 2596 | <?php echo $custom_attributes; ?> |
| 2597 | - id="<?php echo esc_attr( $this->get_field_id( $args['name'] ) ); ?>" |
|
| 2598 | - name="<?php echo esc_attr( $this->get_field_name( $args['name'] ) ); ?>" |
|
| 2599 | - ><?php echo esc_attr( $value ); ?></textarea> |
|
| 2597 | + id="<?php echo esc_attr($this->get_field_id($args['name'])); ?>" |
|
| 2598 | + name="<?php echo esc_attr($this->get_field_name($args['name'])); ?>" |
|
| 2599 | + ><?php echo esc_attr($value); ?></textarea> |
|
| 2600 | 2600 | <?php |
| 2601 | 2601 | |
| 2602 | 2602 | break; |
| 2603 | 2603 | case "hidden": |
| 2604 | 2604 | ?> |
| 2605 | - <input id="<?php echo esc_attr( $this->get_field_id( $args['name'] ) ); ?>" |
|
| 2606 | - name="<?php echo esc_attr( $this->get_field_name( $args['name'] ) ); ?>" type="hidden" |
|
| 2607 | - value="<?php echo esc_attr( $value ); ?>"> |
|
| 2605 | + <input id="<?php echo esc_attr($this->get_field_id($args['name'])); ?>" |
|
| 2606 | + name="<?php echo esc_attr($this->get_field_name($args['name'])); ?>" type="hidden" |
|
| 2607 | + value="<?php echo esc_attr($value); ?>"> |
|
| 2608 | 2608 | <?php |
| 2609 | 2609 | break; |
| 2610 | 2610 | default: |
@@ -2626,14 +2626,14 @@ discard block |
||
| 2626 | 2626 | * @return string |
| 2627 | 2627 | * @todo, need to make its own tooltip script |
| 2628 | 2628 | */ |
| 2629 | - public function widget_field_desc( $args ) { |
|
| 2629 | + public function widget_field_desc($args) { |
|
| 2630 | 2630 | |
| 2631 | 2631 | $description = ''; |
| 2632 | - if ( isset( $args['desc'] ) && $args['desc'] ) { |
|
| 2633 | - if ( isset( $args['desc_tip'] ) && $args['desc_tip'] ) { |
|
| 2634 | - $description = $this->desc_tip( $args['desc'] ); |
|
| 2632 | + if (isset($args['desc']) && $args['desc']) { |
|
| 2633 | + if (isset($args['desc_tip']) && $args['desc_tip']) { |
|
| 2634 | + $description = $this->desc_tip($args['desc']); |
|
| 2635 | 2635 | } else { |
| 2636 | - $description = '<span class="description">' . wp_kses_post( $args['desc'] ) . '</span>'; |
|
| 2636 | + $description = '<span class="description">' . wp_kses_post($args['desc']) . '</span>'; |
|
| 2637 | 2637 | } |
| 2638 | 2638 | } |
| 2639 | 2639 | |
@@ -2648,11 +2648,11 @@ discard block |
||
| 2648 | 2648 | * |
| 2649 | 2649 | * @return string |
| 2650 | 2650 | */ |
| 2651 | - function desc_tip( $tip, $allow_html = false ) { |
|
| 2652 | - if ( $allow_html ) { |
|
| 2653 | - $tip = $this->sanitize_tooltip( $tip ); |
|
| 2651 | + function desc_tip($tip, $allow_html = false) { |
|
| 2652 | + if ($allow_html) { |
|
| 2653 | + $tip = $this->sanitize_tooltip($tip); |
|
| 2654 | 2654 | } else { |
| 2655 | - $tip = esc_attr( $tip ); |
|
| 2655 | + $tip = esc_attr($tip); |
|
| 2656 | 2656 | } |
| 2657 | 2657 | |
| 2658 | 2658 | return '<span class="gd-help-tip dashicons dashicons-editor-help" title="' . $tip . '"></span>'; |
@@ -2665,8 +2665,8 @@ discard block |
||
| 2665 | 2665 | * |
| 2666 | 2666 | * @return string |
| 2667 | 2667 | */ |
| 2668 | - public function sanitize_tooltip( $var ) { |
|
| 2669 | - return htmlspecialchars( wp_kses( html_entity_decode( $var ), array( |
|
| 2668 | + public function sanitize_tooltip($var) { |
|
| 2669 | + return htmlspecialchars(wp_kses(html_entity_decode($var), array( |
|
| 2670 | 2670 | 'br' => array(), |
| 2671 | 2671 | 'em' => array(), |
| 2672 | 2672 | 'strong' => array(), |
@@ -2676,7 +2676,7 @@ discard block |
||
| 2676 | 2676 | 'li' => array(), |
| 2677 | 2677 | 'ol' => array(), |
| 2678 | 2678 | 'p' => array(), |
| 2679 | - ) ) ); |
|
| 2679 | + ))); |
|
| 2680 | 2680 | } |
| 2681 | 2681 | |
| 2682 | 2682 | /** |
@@ -2688,23 +2688,23 @@ discard block |
||
| 2688 | 2688 | * @return array |
| 2689 | 2689 | * @todo we should add some sanitation here. |
| 2690 | 2690 | */ |
| 2691 | - public function update( $new_instance, $old_instance ) { |
|
| 2691 | + public function update($new_instance, $old_instance) { |
|
| 2692 | 2692 | |
| 2693 | 2693 | //save the widget |
| 2694 | - $instance = array_merge( (array) $old_instance, (array) $new_instance ); |
|
| 2694 | + $instance = array_merge((array) $old_instance, (array) $new_instance); |
|
| 2695 | 2695 | |
| 2696 | 2696 | // set widget instance |
| 2697 | 2697 | $this->instance = $instance; |
| 2698 | 2698 | |
| 2699 | - if ( empty( $this->arguments ) ) { |
|
| 2699 | + if (empty($this->arguments)) { |
|
| 2700 | 2700 | $this->get_arguments(); |
| 2701 | 2701 | } |
| 2702 | 2702 | |
| 2703 | 2703 | // check for checkboxes |
| 2704 | - if ( ! empty( $this->arguments ) ) { |
|
| 2705 | - foreach ( $this->arguments as $argument ) { |
|
| 2706 | - if ( isset( $argument['type'] ) && $argument['type'] == 'checkbox' && ! isset( $new_instance[ $argument['name'] ] ) ) { |
|
| 2707 | - $instance[ $argument['name'] ] = '0'; |
|
| 2704 | + if (!empty($this->arguments)) { |
|
| 2705 | + foreach ($this->arguments as $argument) { |
|
| 2706 | + if (isset($argument['type']) && $argument['type'] == 'checkbox' && !isset($new_instance[$argument['name']])) { |
|
| 2707 | + $instance[$argument['name']] = '0'; |
|
| 2708 | 2708 | } |
| 2709 | 2709 | } |
| 2710 | 2710 | } |
@@ -2722,7 +2722,7 @@ discard block |
||
| 2722 | 2722 | */ |
| 2723 | 2723 | public function is_block_content_call() { |
| 2724 | 2724 | $result = false; |
| 2725 | - if ( wp_doing_ajax() && isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'super_duper_output_shortcode' ) { |
|
| 2725 | + if (wp_doing_ajax() && isset($_REQUEST['action']) && $_REQUEST['action'] == 'super_duper_output_shortcode') { |
|
| 2726 | 2726 | $result = true; |
| 2727 | 2727 | } |
| 2728 | 2728 | |
@@ -180,9 +180,9 @@ discard block |
||
| 180 | 180 | unset($param['default']); |
| 181 | 181 | } |
| 182 | 182 | $param['value'] = array(''=>__("No"),'1'=>__("Yes")); |
| 183 | - }elseif($param['type'] == 'select'){ |
|
| 183 | + } elseif($param['type'] == 'select'){ |
|
| 184 | 184 | $param['value'] = isset($val['options']) ? $val['options'] : array(); |
| 185 | - }else{ |
|
| 185 | + } else{ |
|
| 186 | 186 | $param['value'] = isset($val['default']) ? $val['default'] : ''; |
| 187 | 187 | } |
| 188 | 188 | |
@@ -640,7 +640,7 @@ discard block |
||
| 640 | 640 | <?php |
| 641 | 641 | if(! empty( $insert_shortcode_function )){ |
| 642 | 642 | echo $insert_shortcode_function; |
| 643 | - }else{ |
|
| 643 | + } else{ |
|
| 644 | 644 | |
| 645 | 645 | /** |
| 646 | 646 | * Function for super duper insert shortcode. |
@@ -1412,8 +1412,7 @@ discard block |
||
| 1412 | 1412 | $argument_values[ $key ] = isset( $instance[ $key ] ) ? $instance[ $key ] : ''; |
| 1413 | 1413 | if($args['type']=='checkbox' && $argument_values[ $key ] == ''){ |
| 1414 | 1414 | // don't set default for an empty checkbox |
| 1415 | - } |
|
| 1416 | - elseif ( $argument_values[ $key ] == '' && isset( $args['default'] ) ) { |
|
| 1415 | + } elseif ( $argument_values[ $key ] == '' && isset( $args['default'] ) ) { |
|
| 1417 | 1416 | $argument_values[ $key ] = $args['default']; |
| 1418 | 1417 | } |
| 1419 | 1418 | } |
@@ -1542,11 +1541,11 @@ discard block |
||
| 1542 | 1541 | $fa_type = ''; |
| 1543 | 1542 | if(substr( $icon, 0, 7 ) === "fas fa-"){ |
| 1544 | 1543 | $fa_type = 'solid'; |
| 1545 | - }elseif(substr( $icon, 0, 7 ) === "far fa-"){ |
|
| 1544 | + } elseif(substr( $icon, 0, 7 ) === "far fa-"){ |
|
| 1546 | 1545 | $fa_type = 'regular'; |
| 1547 | - }elseif(substr( $icon, 0, 7 ) === "fab fa-"){ |
|
| 1546 | + } elseif(substr( $icon, 0, 7 ) === "fab fa-"){ |
|
| 1548 | 1547 | $fa_type = 'brands'; |
| 1549 | - }else{ |
|
| 1548 | + } else{ |
|
| 1550 | 1549 | $icon = "'".$icon."'"; |
| 1551 | 1550 | } |
| 1552 | 1551 | |
@@ -1569,7 +1568,7 @@ discard block |
||
| 1569 | 1568 | if(isset($args['group'])){ |
| 1570 | 1569 | $temp_arguments[$args['group']][$key] = $args; |
| 1571 | 1570 | $add_sections = true; |
| 1572 | - }else{ |
|
| 1571 | + } else{ |
|
| 1573 | 1572 | $temp_arguments[$general][$key] = $args; |
| 1574 | 1573 | } |
| 1575 | 1574 | } |
@@ -1816,7 +1815,7 @@ discard block |
||
| 1816 | 1815 | ?> |
| 1817 | 1816 | el(wp.components.PanelBody, { |
| 1818 | 1817 | title: '<?php esc_attr_e($key); ?>', |
| 1819 | - initialOpen: <?php if($panel_count){echo "false";}else{echo "true";}?> |
|
| 1818 | + initialOpen: <?php if($panel_count){echo "false";} else{echo "true";}?> |
|
| 1820 | 1819 | }, |
| 1821 | 1820 | <?php |
| 1822 | 1821 | |
@@ -1829,7 +1828,7 @@ discard block |
||
| 1829 | 1828 | $panel_count++; |
| 1830 | 1829 | |
| 1831 | 1830 | } |
| 1832 | - }else{ |
|
| 1831 | + } else{ |
|
| 1833 | 1832 | foreach($this->arguments as $key => $args){ |
| 1834 | 1833 | $this->build_block_arguments($key, $args); |
| 1835 | 1834 | } |
@@ -1846,7 +1845,7 @@ discard block |
||
| 1846 | 1845 | // If the user sets block-output array then build it |
| 1847 | 1846 | if ( ! empty( $this->options['block-output'] ) ) { |
| 1848 | 1847 | $this->block_element( $this->options['block-output'] ); |
| 1849 | - }else{ |
|
| 1848 | + } else{ |
|
| 1850 | 1849 | // if no block-output is set then we try and get the shortcode html output via ajax. |
| 1851 | 1850 | ?> |
| 1852 | 1851 | el('div', { |
@@ -1916,7 +1915,7 @@ discard block |
||
| 1916 | 1915 | ?> |
| 1917 | 1916 | return content; |
| 1918 | 1917 | <?php |
| 1919 | - }else{ |
|
| 1918 | + } else{ |
|
| 1920 | 1919 | ?> |
| 1921 | 1920 | var block_wrap = 'div'; |
| 1922 | 1921 | if (attr.hasOwnProperty("block_wrap")) { |
@@ -1971,7 +1970,7 @@ discard block |
||
| 1971 | 1970 | $type = 'CheckboxControl'; |
| 1972 | 1971 | $extra .= "checked: props.attributes.$key,"; |
| 1973 | 1972 | $onchange = "props.setAttributes({ $key: ! props.attributes.$key } )"; |
| 1974 | - }elseif ( $args['type'] == 'textarea' ) { |
|
| 1973 | + } elseif ( $args['type'] == 'textarea' ) { |
|
| 1975 | 1974 | $type = 'TextareaControl'; |
| 1976 | 1975 | } elseif ( $args['type'] == 'select' || $args['type'] == 'multiselect' ) { |
| 1977 | 1976 | $type = 'SelectControl'; |
@@ -2415,7 +2414,7 @@ discard block |
||
| 2415 | 2414 | $panel_count++; |
| 2416 | 2415 | |
| 2417 | 2416 | } |
| 2418 | - }else{ |
|
| 2417 | + } else{ |
|
| 2419 | 2418 | foreach ( $arguments as $key => $args ) { |
| 2420 | 2419 | $this->widget_inputs( $args, $instance ); |
| 2421 | 2420 | } |
@@ -11,289 +11,289 @@ |
||
| 11 | 11 | defined( 'ABSPATH' ) || exit; |
| 12 | 12 | |
| 13 | 13 | return array( |
| 14 | - 'AF' => array( |
|
| 15 | - 'name' => __( 'Africa', 'invoicing' ), |
|
| 16 | - 'countries' => array( |
|
| 17 | - 'AO', |
|
| 18 | - 'BF', |
|
| 19 | - 'BI', |
|
| 20 | - 'BJ', |
|
| 21 | - 'BW', |
|
| 22 | - 'CD', |
|
| 23 | - 'CF', |
|
| 24 | - 'CG', |
|
| 25 | - 'CI', |
|
| 26 | - 'CM', |
|
| 27 | - 'CV', |
|
| 28 | - 'DJ', |
|
| 29 | - 'DZ', |
|
| 30 | - 'EG', |
|
| 31 | - 'EH', |
|
| 32 | - 'ER', |
|
| 33 | - 'ET', |
|
| 34 | - 'GA', |
|
| 35 | - 'GH', |
|
| 36 | - 'GM', |
|
| 37 | - 'GN', |
|
| 38 | - 'GQ', |
|
| 39 | - 'GW', |
|
| 40 | - 'KE', |
|
| 41 | - 'KM', |
|
| 42 | - 'LR', |
|
| 43 | - 'LS', |
|
| 44 | - 'LY', |
|
| 45 | - 'MA', |
|
| 46 | - 'MG', |
|
| 47 | - 'ML', |
|
| 48 | - 'MR', |
|
| 49 | - 'MU', |
|
| 50 | - 'MW', |
|
| 51 | - 'MZ', |
|
| 52 | - 'NA', |
|
| 53 | - 'NE', |
|
| 54 | - 'NG', |
|
| 55 | - 'RE', |
|
| 56 | - 'RW', |
|
| 57 | - 'SC', |
|
| 58 | - 'SD', |
|
| 59 | - 'SH', |
|
| 60 | - 'SL', |
|
| 61 | - 'SN', |
|
| 62 | - 'SO', |
|
| 63 | - 'SS', |
|
| 64 | - 'ST', |
|
| 65 | - 'SZ', |
|
| 66 | - 'TD', |
|
| 67 | - 'TG', |
|
| 68 | - 'TN', |
|
| 69 | - 'TZ', |
|
| 70 | - 'UG', |
|
| 71 | - 'YT', |
|
| 72 | - 'ZA', |
|
| 73 | - 'ZM', |
|
| 74 | - 'ZW', |
|
| 75 | - ), |
|
| 76 | - ), |
|
| 77 | - 'AN' => array( |
|
| 78 | - 'name' => __( 'Antarctica', 'invoicing' ), |
|
| 79 | - 'countries' => array( |
|
| 80 | - 'AQ', |
|
| 81 | - 'BV', |
|
| 82 | - 'GS', |
|
| 83 | - 'HM', |
|
| 84 | - 'TF', |
|
| 85 | - ), |
|
| 86 | - ), |
|
| 87 | - 'AS' => array( |
|
| 88 | - 'name' => __( 'Asia', 'invoicing' ), |
|
| 89 | - 'countries' => array( |
|
| 90 | - 'AE', |
|
| 91 | - 'AF', |
|
| 92 | - 'AM', |
|
| 93 | - 'AZ', |
|
| 94 | - 'BD', |
|
| 95 | - 'BH', |
|
| 96 | - 'BN', |
|
| 97 | - 'BT', |
|
| 98 | - 'CC', |
|
| 99 | - 'CN', |
|
| 100 | - 'CX', |
|
| 101 | - 'CY', |
|
| 102 | - 'GE', |
|
| 103 | - 'HK', |
|
| 104 | - 'ID', |
|
| 105 | - 'IL', |
|
| 106 | - 'IN', |
|
| 107 | - 'IO', |
|
| 108 | - 'IQ', |
|
| 109 | - 'IR', |
|
| 110 | - 'JO', |
|
| 111 | - 'JP', |
|
| 112 | - 'KG', |
|
| 113 | - 'KH', |
|
| 114 | - 'KP', |
|
| 115 | - 'KR', |
|
| 116 | - 'KW', |
|
| 117 | - 'KZ', |
|
| 118 | - 'LA', |
|
| 119 | - 'LB', |
|
| 120 | - 'LK', |
|
| 121 | - 'MM', |
|
| 122 | - 'MN', |
|
| 123 | - 'MO', |
|
| 124 | - 'MV', |
|
| 125 | - 'MY', |
|
| 126 | - 'NP', |
|
| 127 | - 'OM', |
|
| 128 | - 'PH', |
|
| 129 | - 'PK', |
|
| 130 | - 'PS', |
|
| 131 | - 'QA', |
|
| 132 | - 'SA', |
|
| 133 | - 'SG', |
|
| 134 | - 'SY', |
|
| 135 | - 'TH', |
|
| 136 | - 'TJ', |
|
| 137 | - 'TL', |
|
| 138 | - 'TM', |
|
| 139 | - 'TW', |
|
| 140 | - 'UZ', |
|
| 141 | - 'VN', |
|
| 142 | - 'YE', |
|
| 143 | - ), |
|
| 144 | - ), |
|
| 145 | - 'EU' => array( |
|
| 146 | - 'name' => __( 'Europe', 'invoicing' ), |
|
| 147 | - 'countries' => array( |
|
| 148 | - 'AD', |
|
| 149 | - 'AL', |
|
| 150 | - 'AT', |
|
| 151 | - 'AX', |
|
| 152 | - 'BA', |
|
| 153 | - 'BE', |
|
| 154 | - 'BG', |
|
| 155 | - 'BY', |
|
| 156 | - 'CH', |
|
| 157 | - 'CY', |
|
| 158 | - 'CZ', |
|
| 159 | - 'DE', |
|
| 160 | - 'DK', |
|
| 161 | - 'EE', |
|
| 162 | - 'ES', |
|
| 163 | - 'FI', |
|
| 164 | - 'FO', |
|
| 165 | - 'FR', |
|
| 166 | - 'GB', |
|
| 167 | - 'GG', |
|
| 168 | - 'GI', |
|
| 169 | - 'GR', |
|
| 170 | - 'HR', |
|
| 171 | - 'HU', |
|
| 172 | - 'IE', |
|
| 173 | - 'IM', |
|
| 174 | - 'IS', |
|
| 175 | - 'IT', |
|
| 176 | - 'JE', |
|
| 177 | - 'LI', |
|
| 178 | - 'LT', |
|
| 179 | - 'LU', |
|
| 180 | - 'LV', |
|
| 181 | - 'MC', |
|
| 182 | - 'MD', |
|
| 183 | - 'ME', |
|
| 184 | - 'MK', |
|
| 185 | - 'MT', |
|
| 186 | - 'NL', |
|
| 187 | - 'NO', |
|
| 188 | - 'PL', |
|
| 189 | - 'PT', |
|
| 190 | - 'RO', |
|
| 191 | - 'RS', |
|
| 192 | - 'RU', |
|
| 193 | - 'SE', |
|
| 194 | - 'SI', |
|
| 195 | - 'SJ', |
|
| 196 | - 'SK', |
|
| 197 | - 'SM', |
|
| 198 | - 'TR', |
|
| 199 | - 'UA', |
|
| 200 | - 'VA', |
|
| 201 | - ), |
|
| 202 | - ), |
|
| 203 | - 'NA' => array( |
|
| 204 | - 'name' => __( 'North America', 'invoicing' ), |
|
| 205 | - 'countries' => array( |
|
| 206 | - 'AG', |
|
| 207 | - 'AI', |
|
| 208 | - 'AW', |
|
| 209 | - 'BB', |
|
| 210 | - 'BL', |
|
| 211 | - 'BM', |
|
| 212 | - 'BQ', |
|
| 213 | - 'BS', |
|
| 214 | - 'BZ', |
|
| 215 | - 'CA', |
|
| 216 | - 'CR', |
|
| 217 | - 'CU', |
|
| 218 | - 'CW', |
|
| 219 | - 'DM', |
|
| 220 | - 'DO', |
|
| 221 | - 'GD', |
|
| 222 | - 'GL', |
|
| 223 | - 'GP', |
|
| 224 | - 'GT', |
|
| 225 | - 'HN', |
|
| 226 | - 'HT', |
|
| 227 | - 'JM', |
|
| 228 | - 'KN', |
|
| 229 | - 'KY', |
|
| 230 | - 'LC', |
|
| 231 | - 'MF', |
|
| 232 | - 'MQ', |
|
| 233 | - 'MS', |
|
| 234 | - 'MX', |
|
| 235 | - 'NI', |
|
| 236 | - 'PA', |
|
| 237 | - 'PM', |
|
| 238 | - 'PR', |
|
| 239 | - 'SV', |
|
| 240 | - 'SX', |
|
| 241 | - 'TC', |
|
| 242 | - 'TT', |
|
| 243 | - 'US', |
|
| 244 | - 'VC', |
|
| 245 | - 'VG', |
|
| 246 | - 'VI', |
|
| 247 | - ), |
|
| 248 | - ), |
|
| 249 | - 'OC' => array( |
|
| 250 | - 'name' => __( 'Oceania', 'invoicing' ), |
|
| 251 | - 'countries' => array( |
|
| 252 | - 'AS', |
|
| 253 | - 'AU', |
|
| 254 | - 'CK', |
|
| 255 | - 'FJ', |
|
| 256 | - 'FM', |
|
| 257 | - 'GU', |
|
| 258 | - 'KI', |
|
| 259 | - 'MH', |
|
| 260 | - 'MP', |
|
| 261 | - 'NC', |
|
| 262 | - 'NF', |
|
| 263 | - 'NR', |
|
| 264 | - 'NU', |
|
| 265 | - 'NZ', |
|
| 266 | - 'PF', |
|
| 267 | - 'PG', |
|
| 268 | - 'PN', |
|
| 269 | - 'PW', |
|
| 270 | - 'SB', |
|
| 271 | - 'TK', |
|
| 272 | - 'TO', |
|
| 273 | - 'TV', |
|
| 274 | - 'UM', |
|
| 275 | - 'VU', |
|
| 276 | - 'WF', |
|
| 277 | - 'WS', |
|
| 278 | - ), |
|
| 279 | - ), |
|
| 280 | - 'SA' => array( |
|
| 281 | - 'name' => __( 'South America', 'invoicing' ), |
|
| 282 | - 'countries' => array( |
|
| 283 | - 'AR', |
|
| 284 | - 'BO', |
|
| 285 | - 'BR', |
|
| 286 | - 'CL', |
|
| 287 | - 'CO', |
|
| 288 | - 'EC', |
|
| 289 | - 'FK', |
|
| 290 | - 'GF', |
|
| 291 | - 'GY', |
|
| 292 | - 'PE', |
|
| 293 | - 'PY', |
|
| 294 | - 'SR', |
|
| 295 | - 'UY', |
|
| 296 | - 'VE', |
|
| 297 | - ), |
|
| 298 | - ), |
|
| 14 | + 'AF' => array( |
|
| 15 | + 'name' => __( 'Africa', 'invoicing' ), |
|
| 16 | + 'countries' => array( |
|
| 17 | + 'AO', |
|
| 18 | + 'BF', |
|
| 19 | + 'BI', |
|
| 20 | + 'BJ', |
|
| 21 | + 'BW', |
|
| 22 | + 'CD', |
|
| 23 | + 'CF', |
|
| 24 | + 'CG', |
|
| 25 | + 'CI', |
|
| 26 | + 'CM', |
|
| 27 | + 'CV', |
|
| 28 | + 'DJ', |
|
| 29 | + 'DZ', |
|
| 30 | + 'EG', |
|
| 31 | + 'EH', |
|
| 32 | + 'ER', |
|
| 33 | + 'ET', |
|
| 34 | + 'GA', |
|
| 35 | + 'GH', |
|
| 36 | + 'GM', |
|
| 37 | + 'GN', |
|
| 38 | + 'GQ', |
|
| 39 | + 'GW', |
|
| 40 | + 'KE', |
|
| 41 | + 'KM', |
|
| 42 | + 'LR', |
|
| 43 | + 'LS', |
|
| 44 | + 'LY', |
|
| 45 | + 'MA', |
|
| 46 | + 'MG', |
|
| 47 | + 'ML', |
|
| 48 | + 'MR', |
|
| 49 | + 'MU', |
|
| 50 | + 'MW', |
|
| 51 | + 'MZ', |
|
| 52 | + 'NA', |
|
| 53 | + 'NE', |
|
| 54 | + 'NG', |
|
| 55 | + 'RE', |
|
| 56 | + 'RW', |
|
| 57 | + 'SC', |
|
| 58 | + 'SD', |
|
| 59 | + 'SH', |
|
| 60 | + 'SL', |
|
| 61 | + 'SN', |
|
| 62 | + 'SO', |
|
| 63 | + 'SS', |
|
| 64 | + 'ST', |
|
| 65 | + 'SZ', |
|
| 66 | + 'TD', |
|
| 67 | + 'TG', |
|
| 68 | + 'TN', |
|
| 69 | + 'TZ', |
|
| 70 | + 'UG', |
|
| 71 | + 'YT', |
|
| 72 | + 'ZA', |
|
| 73 | + 'ZM', |
|
| 74 | + 'ZW', |
|
| 75 | + ), |
|
| 76 | + ), |
|
| 77 | + 'AN' => array( |
|
| 78 | + 'name' => __( 'Antarctica', 'invoicing' ), |
|
| 79 | + 'countries' => array( |
|
| 80 | + 'AQ', |
|
| 81 | + 'BV', |
|
| 82 | + 'GS', |
|
| 83 | + 'HM', |
|
| 84 | + 'TF', |
|
| 85 | + ), |
|
| 86 | + ), |
|
| 87 | + 'AS' => array( |
|
| 88 | + 'name' => __( 'Asia', 'invoicing' ), |
|
| 89 | + 'countries' => array( |
|
| 90 | + 'AE', |
|
| 91 | + 'AF', |
|
| 92 | + 'AM', |
|
| 93 | + 'AZ', |
|
| 94 | + 'BD', |
|
| 95 | + 'BH', |
|
| 96 | + 'BN', |
|
| 97 | + 'BT', |
|
| 98 | + 'CC', |
|
| 99 | + 'CN', |
|
| 100 | + 'CX', |
|
| 101 | + 'CY', |
|
| 102 | + 'GE', |
|
| 103 | + 'HK', |
|
| 104 | + 'ID', |
|
| 105 | + 'IL', |
|
| 106 | + 'IN', |
|
| 107 | + 'IO', |
|
| 108 | + 'IQ', |
|
| 109 | + 'IR', |
|
| 110 | + 'JO', |
|
| 111 | + 'JP', |
|
| 112 | + 'KG', |
|
| 113 | + 'KH', |
|
| 114 | + 'KP', |
|
| 115 | + 'KR', |
|
| 116 | + 'KW', |
|
| 117 | + 'KZ', |
|
| 118 | + 'LA', |
|
| 119 | + 'LB', |
|
| 120 | + 'LK', |
|
| 121 | + 'MM', |
|
| 122 | + 'MN', |
|
| 123 | + 'MO', |
|
| 124 | + 'MV', |
|
| 125 | + 'MY', |
|
| 126 | + 'NP', |
|
| 127 | + 'OM', |
|
| 128 | + 'PH', |
|
| 129 | + 'PK', |
|
| 130 | + 'PS', |
|
| 131 | + 'QA', |
|
| 132 | + 'SA', |
|
| 133 | + 'SG', |
|
| 134 | + 'SY', |
|
| 135 | + 'TH', |
|
| 136 | + 'TJ', |
|
| 137 | + 'TL', |
|
| 138 | + 'TM', |
|
| 139 | + 'TW', |
|
| 140 | + 'UZ', |
|
| 141 | + 'VN', |
|
| 142 | + 'YE', |
|
| 143 | + ), |
|
| 144 | + ), |
|
| 145 | + 'EU' => array( |
|
| 146 | + 'name' => __( 'Europe', 'invoicing' ), |
|
| 147 | + 'countries' => array( |
|
| 148 | + 'AD', |
|
| 149 | + 'AL', |
|
| 150 | + 'AT', |
|
| 151 | + 'AX', |
|
| 152 | + 'BA', |
|
| 153 | + 'BE', |
|
| 154 | + 'BG', |
|
| 155 | + 'BY', |
|
| 156 | + 'CH', |
|
| 157 | + 'CY', |
|
| 158 | + 'CZ', |
|
| 159 | + 'DE', |
|
| 160 | + 'DK', |
|
| 161 | + 'EE', |
|
| 162 | + 'ES', |
|
| 163 | + 'FI', |
|
| 164 | + 'FO', |
|
| 165 | + 'FR', |
|
| 166 | + 'GB', |
|
| 167 | + 'GG', |
|
| 168 | + 'GI', |
|
| 169 | + 'GR', |
|
| 170 | + 'HR', |
|
| 171 | + 'HU', |
|
| 172 | + 'IE', |
|
| 173 | + 'IM', |
|
| 174 | + 'IS', |
|
| 175 | + 'IT', |
|
| 176 | + 'JE', |
|
| 177 | + 'LI', |
|
| 178 | + 'LT', |
|
| 179 | + 'LU', |
|
| 180 | + 'LV', |
|
| 181 | + 'MC', |
|
| 182 | + 'MD', |
|
| 183 | + 'ME', |
|
| 184 | + 'MK', |
|
| 185 | + 'MT', |
|
| 186 | + 'NL', |
|
| 187 | + 'NO', |
|
| 188 | + 'PL', |
|
| 189 | + 'PT', |
|
| 190 | + 'RO', |
|
| 191 | + 'RS', |
|
| 192 | + 'RU', |
|
| 193 | + 'SE', |
|
| 194 | + 'SI', |
|
| 195 | + 'SJ', |
|
| 196 | + 'SK', |
|
| 197 | + 'SM', |
|
| 198 | + 'TR', |
|
| 199 | + 'UA', |
|
| 200 | + 'VA', |
|
| 201 | + ), |
|
| 202 | + ), |
|
| 203 | + 'NA' => array( |
|
| 204 | + 'name' => __( 'North America', 'invoicing' ), |
|
| 205 | + 'countries' => array( |
|
| 206 | + 'AG', |
|
| 207 | + 'AI', |
|
| 208 | + 'AW', |
|
| 209 | + 'BB', |
|
| 210 | + 'BL', |
|
| 211 | + 'BM', |
|
| 212 | + 'BQ', |
|
| 213 | + 'BS', |
|
| 214 | + 'BZ', |
|
| 215 | + 'CA', |
|
| 216 | + 'CR', |
|
| 217 | + 'CU', |
|
| 218 | + 'CW', |
|
| 219 | + 'DM', |
|
| 220 | + 'DO', |
|
| 221 | + 'GD', |
|
| 222 | + 'GL', |
|
| 223 | + 'GP', |
|
| 224 | + 'GT', |
|
| 225 | + 'HN', |
|
| 226 | + 'HT', |
|
| 227 | + 'JM', |
|
| 228 | + 'KN', |
|
| 229 | + 'KY', |
|
| 230 | + 'LC', |
|
| 231 | + 'MF', |
|
| 232 | + 'MQ', |
|
| 233 | + 'MS', |
|
| 234 | + 'MX', |
|
| 235 | + 'NI', |
|
| 236 | + 'PA', |
|
| 237 | + 'PM', |
|
| 238 | + 'PR', |
|
| 239 | + 'SV', |
|
| 240 | + 'SX', |
|
| 241 | + 'TC', |
|
| 242 | + 'TT', |
|
| 243 | + 'US', |
|
| 244 | + 'VC', |
|
| 245 | + 'VG', |
|
| 246 | + 'VI', |
|
| 247 | + ), |
|
| 248 | + ), |
|
| 249 | + 'OC' => array( |
|
| 250 | + 'name' => __( 'Oceania', 'invoicing' ), |
|
| 251 | + 'countries' => array( |
|
| 252 | + 'AS', |
|
| 253 | + 'AU', |
|
| 254 | + 'CK', |
|
| 255 | + 'FJ', |
|
| 256 | + 'FM', |
|
| 257 | + 'GU', |
|
| 258 | + 'KI', |
|
| 259 | + 'MH', |
|
| 260 | + 'MP', |
|
| 261 | + 'NC', |
|
| 262 | + 'NF', |
|
| 263 | + 'NR', |
|
| 264 | + 'NU', |
|
| 265 | + 'NZ', |
|
| 266 | + 'PF', |
|
| 267 | + 'PG', |
|
| 268 | + 'PN', |
|
| 269 | + 'PW', |
|
| 270 | + 'SB', |
|
| 271 | + 'TK', |
|
| 272 | + 'TO', |
|
| 273 | + 'TV', |
|
| 274 | + 'UM', |
|
| 275 | + 'VU', |
|
| 276 | + 'WF', |
|
| 277 | + 'WS', |
|
| 278 | + ), |
|
| 279 | + ), |
|
| 280 | + 'SA' => array( |
|
| 281 | + 'name' => __( 'South America', 'invoicing' ), |
|
| 282 | + 'countries' => array( |
|
| 283 | + 'AR', |
|
| 284 | + 'BO', |
|
| 285 | + 'BR', |
|
| 286 | + 'CL', |
|
| 287 | + 'CO', |
|
| 288 | + 'EC', |
|
| 289 | + 'FK', |
|
| 290 | + 'GF', |
|
| 291 | + 'GY', |
|
| 292 | + 'PE', |
|
| 293 | + 'PY', |
|
| 294 | + 'SR', |
|
| 295 | + 'UY', |
|
| 296 | + 'VE', |
|
| 297 | + ), |
|
| 298 | + ), |
|
| 299 | 299 | ); |
@@ -8,11 +8,11 @@ discard block |
||
| 8 | 8 | * @version 1.0.14 |
| 9 | 9 | */ |
| 10 | 10 | |
| 11 | -defined( 'ABSPATH' ) || exit; |
|
| 11 | +defined('ABSPATH') || exit; |
|
| 12 | 12 | |
| 13 | 13 | return array( |
| 14 | 14 | 'AF' => array( |
| 15 | - 'name' => __( 'Africa', 'invoicing' ), |
|
| 15 | + 'name' => __('Africa', 'invoicing'), |
|
| 16 | 16 | 'countries' => array( |
| 17 | 17 | 'AO', |
| 18 | 18 | 'BF', |
@@ -75,7 +75,7 @@ discard block |
||
| 75 | 75 | ), |
| 76 | 76 | ), |
| 77 | 77 | 'AN' => array( |
| 78 | - 'name' => __( 'Antarctica', 'invoicing' ), |
|
| 78 | + 'name' => __('Antarctica', 'invoicing'), |
|
| 79 | 79 | 'countries' => array( |
| 80 | 80 | 'AQ', |
| 81 | 81 | 'BV', |
@@ -85,7 +85,7 @@ discard block |
||
| 85 | 85 | ), |
| 86 | 86 | ), |
| 87 | 87 | 'AS' => array( |
| 88 | - 'name' => __( 'Asia', 'invoicing' ), |
|
| 88 | + 'name' => __('Asia', 'invoicing'), |
|
| 89 | 89 | 'countries' => array( |
| 90 | 90 | 'AE', |
| 91 | 91 | 'AF', |
@@ -143,7 +143,7 @@ discard block |
||
| 143 | 143 | ), |
| 144 | 144 | ), |
| 145 | 145 | 'EU' => array( |
| 146 | - 'name' => __( 'Europe', 'invoicing' ), |
|
| 146 | + 'name' => __('Europe', 'invoicing'), |
|
| 147 | 147 | 'countries' => array( |
| 148 | 148 | 'AD', |
| 149 | 149 | 'AL', |
@@ -201,7 +201,7 @@ discard block |
||
| 201 | 201 | ), |
| 202 | 202 | ), |
| 203 | 203 | 'NA' => array( |
| 204 | - 'name' => __( 'North America', 'invoicing' ), |
|
| 204 | + 'name' => __('North America', 'invoicing'), |
|
| 205 | 205 | 'countries' => array( |
| 206 | 206 | 'AG', |
| 207 | 207 | 'AI', |
@@ -247,7 +247,7 @@ discard block |
||
| 247 | 247 | ), |
| 248 | 248 | ), |
| 249 | 249 | 'OC' => array( |
| 250 | - 'name' => __( 'Oceania', 'invoicing' ), |
|
| 250 | + 'name' => __('Oceania', 'invoicing'), |
|
| 251 | 251 | 'countries' => array( |
| 252 | 252 | 'AS', |
| 253 | 253 | 'AU', |
@@ -278,7 +278,7 @@ discard block |
||
| 278 | 278 | ), |
| 279 | 279 | ), |
| 280 | 280 | 'SA' => array( |
| 281 | - 'name' => __( 'South America', 'invoicing' ), |
|
| 281 | + 'name' => __('South America', 'invoicing'), |
|
| 282 | 282 | 'countries' => array( |
| 283 | 283 | 'AR', |
| 284 | 284 | 'BO', |
@@ -14,1537 +14,1537 @@ |
||
| 14 | 14 | defined( 'ABSPATH' ) || exit; |
| 15 | 15 | |
| 16 | 16 | return array( |
| 17 | - 'AF' => array(), |
|
| 18 | - 'AO' => array( // Angola states. |
|
| 19 | - 'BGO' => __( 'Bengo', 'invoicing' ), |
|
| 20 | - 'BLU' => __( 'Benguela', 'invoicing' ), |
|
| 21 | - 'BIE' => __( 'Bié', 'invoicing' ), |
|
| 22 | - 'CAB' => __( 'Cabinda', 'invoicing' ), |
|
| 23 | - 'CNN' => __( 'Cunene', 'invoicing' ), |
|
| 24 | - 'HUA' => __( 'Huambo', 'invoicing' ), |
|
| 25 | - 'HUI' => __( 'Huíla', 'invoicing' ), |
|
| 26 | - 'CCU' => __( 'Kuando Kubango', 'invoicing' ), |
|
| 27 | - 'CNO' => __( 'Kwanza-Norte', 'invoicing' ), |
|
| 28 | - 'CUS' => __( 'Kwanza-Sul', 'invoicing' ), |
|
| 29 | - 'LUA' => __( 'Luanda', 'invoicing' ), |
|
| 30 | - 'LNO' => __( 'Lunda-Norte', 'invoicing' ), |
|
| 31 | - 'LSU' => __( 'Lunda-Sul', 'invoicing' ), |
|
| 32 | - 'MAL' => __( 'Malanje', 'invoicing' ), |
|
| 33 | - 'MOX' => __( 'Moxico', 'invoicing' ), |
|
| 34 | - 'NAM' => __( 'Namibe', 'invoicing' ), |
|
| 35 | - 'UIG' => __( 'Uíge', 'invoicing' ), |
|
| 36 | - 'ZAI' => __( 'Zaire', 'invoicing' ), |
|
| 37 | - ), |
|
| 38 | - 'AR' => array( // Argentinian provinces. |
|
| 39 | - 'C' => __( 'Ciudad Autónoma de Buenos Aires', 'invoicing' ), |
|
| 40 | - 'B' => __( 'Buenos Aires', 'invoicing' ), |
|
| 41 | - 'K' => __( 'Catamarca', 'invoicing' ), |
|
| 42 | - 'H' => __( 'Chaco', 'invoicing' ), |
|
| 43 | - 'U' => __( 'Chubut', 'invoicing' ), |
|
| 44 | - 'X' => __( 'Córdoba', 'invoicing' ), |
|
| 45 | - 'W' => __( 'Corrientes', 'invoicing' ), |
|
| 46 | - 'E' => __( 'Entre Ríos', 'invoicing' ), |
|
| 47 | - 'P' => __( 'Formosa', 'invoicing' ), |
|
| 48 | - 'Y' => __( 'Jujuy', 'invoicing' ), |
|
| 49 | - 'L' => __( 'La Pampa', 'invoicing' ), |
|
| 50 | - 'F' => __( 'La Rioja', 'invoicing' ), |
|
| 51 | - 'M' => __( 'Mendoza', 'invoicing' ), |
|
| 52 | - 'N' => __( 'Misiones', 'invoicing' ), |
|
| 53 | - 'Q' => __( 'Neuquén', 'invoicing' ), |
|
| 54 | - 'R' => __( 'Río Negro', 'invoicing' ), |
|
| 55 | - 'A' => __( 'Salta', 'invoicing' ), |
|
| 56 | - 'J' => __( 'San Juan', 'invoicing' ), |
|
| 57 | - 'D' => __( 'San Luis', 'invoicing' ), |
|
| 58 | - 'Z' => __( 'Santa Cruz', 'invoicing' ), |
|
| 59 | - 'S' => __( 'Santa Fe', 'invoicing' ), |
|
| 60 | - 'G' => __( 'Santiago del Estero', 'invoicing' ), |
|
| 61 | - 'V' => __( 'Tierra del Fuego', 'invoicing' ), |
|
| 62 | - 'T' => __( 'Tucumán', 'invoicing' ), |
|
| 63 | - ), |
|
| 64 | - 'AT' => array(), |
|
| 65 | - 'AU' => array( // Australian states. |
|
| 66 | - 'ACT' => __( 'Australian Capital Territory', 'invoicing' ), |
|
| 67 | - 'NSW' => __( 'New South Wales', 'invoicing' ), |
|
| 68 | - 'NT' => __( 'Northern Territory', 'invoicing' ), |
|
| 69 | - 'QLD' => __( 'Queensland', 'invoicing' ), |
|
| 70 | - 'SA' => __( 'South Australia', 'invoicing' ), |
|
| 71 | - 'TAS' => __( 'Tasmania', 'invoicing' ), |
|
| 72 | - 'VIC' => __( 'Victoria', 'invoicing' ), |
|
| 73 | - 'WA' => __( 'Western Australia', 'invoicing' ), |
|
| 74 | - ), |
|
| 75 | - 'AX' => array(), |
|
| 76 | - 'BD' => array( // Bangladeshi states (districts). |
|
| 77 | - 'BD-05' => __( 'Bagerhat', 'invoicing' ), |
|
| 78 | - 'BD-01' => __( 'Bandarban', 'invoicing' ), |
|
| 79 | - 'BD-02' => __( 'Barguna', 'invoicing' ), |
|
| 80 | - 'BD-06' => __( 'Barishal', 'invoicing' ), |
|
| 81 | - 'BD-07' => __( 'Bhola', 'invoicing' ), |
|
| 82 | - 'BD-03' => __( 'Bogura', 'invoicing' ), |
|
| 83 | - 'BD-04' => __( 'Brahmanbaria', 'invoicing' ), |
|
| 84 | - 'BD-09' => __( 'Chandpur', 'invoicing' ), |
|
| 85 | - 'BD-10' => __( 'Chattogram', 'invoicing' ), |
|
| 86 | - 'BD-12' => __( 'Chuadanga', 'invoicing' ), |
|
| 87 | - 'BD-11' => __( "Cox's Bazar", 'invoicing' ), |
|
| 88 | - 'BD-08' => __( 'Cumilla', 'invoicing' ), |
|
| 89 | - 'BD-13' => __( 'Dhaka', 'invoicing' ), |
|
| 90 | - 'BD-14' => __( 'Dinajpur', 'invoicing' ), |
|
| 91 | - 'BD-15' => __( 'Faridpur ', 'invoicing' ), |
|
| 92 | - 'BD-16' => __( 'Feni', 'invoicing' ), |
|
| 93 | - 'BD-19' => __( 'Gaibandha', 'invoicing' ), |
|
| 94 | - 'BD-18' => __( 'Gazipur', 'invoicing' ), |
|
| 95 | - 'BD-17' => __( 'Gopalganj', 'invoicing' ), |
|
| 96 | - 'BD-20' => __( 'Habiganj', 'invoicing' ), |
|
| 97 | - 'BD-21' => __( 'Jamalpur', 'invoicing' ), |
|
| 98 | - 'BD-22' => __( 'Jashore', 'invoicing' ), |
|
| 99 | - 'BD-25' => __( 'Jhalokati', 'invoicing' ), |
|
| 100 | - 'BD-23' => __( 'Jhenaidah', 'invoicing' ), |
|
| 101 | - 'BD-24' => __( 'Joypurhat', 'invoicing' ), |
|
| 102 | - 'BD-29' => __( 'Khagrachhari', 'invoicing' ), |
|
| 103 | - 'BD-27' => __( 'Khulna', 'invoicing' ), |
|
| 104 | - 'BD-26' => __( 'Kishoreganj', 'invoicing' ), |
|
| 105 | - 'BD-28' => __( 'Kurigram', 'invoicing' ), |
|
| 106 | - 'BD-30' => __( 'Kushtia', 'invoicing' ), |
|
| 107 | - 'BD-31' => __( 'Lakshmipur', 'invoicing' ), |
|
| 108 | - 'BD-32' => __( 'Lalmonirhat', 'invoicing' ), |
|
| 109 | - 'BD-36' => __( 'Madaripur', 'invoicing' ), |
|
| 110 | - 'BD-37' => __( 'Magura', 'invoicing' ), |
|
| 111 | - 'BD-33' => __( 'Manikganj ', 'invoicing' ), |
|
| 112 | - 'BD-39' => __( 'Meherpur', 'invoicing' ), |
|
| 113 | - 'BD-38' => __( 'Moulvibazar', 'invoicing' ), |
|
| 114 | - 'BD-35' => __( 'Munshiganj', 'invoicing' ), |
|
| 115 | - 'BD-34' => __( 'Mymensingh', 'invoicing' ), |
|
| 116 | - 'BD-48' => __( 'Naogaon', 'invoicing' ), |
|
| 117 | - 'BD-43' => __( 'Narail', 'invoicing' ), |
|
| 118 | - 'BD-40' => __( 'Narayanganj', 'invoicing' ), |
|
| 119 | - 'BD-42' => __( 'Narsingdi', 'invoicing' ), |
|
| 120 | - 'BD-44' => __( 'Natore', 'invoicing' ), |
|
| 121 | - 'BD-45' => __( 'Nawabganj', 'invoicing' ), |
|
| 122 | - 'BD-41' => __( 'Netrakona', 'invoicing' ), |
|
| 123 | - 'BD-46' => __( 'Nilphamari', 'invoicing' ), |
|
| 124 | - 'BD-47' => __( 'Noakhali', 'invoicing' ), |
|
| 125 | - 'BD-49' => __( 'Pabna', 'invoicing' ), |
|
| 126 | - 'BD-52' => __( 'Panchagarh', 'invoicing' ), |
|
| 127 | - 'BD-51' => __( 'Patuakhali', 'invoicing' ), |
|
| 128 | - 'BD-50' => __( 'Pirojpur', 'invoicing' ), |
|
| 129 | - 'BD-53' => __( 'Rajbari', 'invoicing' ), |
|
| 130 | - 'BD-54' => __( 'Rajshahi', 'invoicing' ), |
|
| 131 | - 'BD-56' => __( 'Rangamati', 'invoicing' ), |
|
| 132 | - 'BD-55' => __( 'Rangpur', 'invoicing' ), |
|
| 133 | - 'BD-58' => __( 'Satkhira', 'invoicing' ), |
|
| 134 | - 'BD-62' => __( 'Shariatpur', 'invoicing' ), |
|
| 135 | - 'BD-57' => __( 'Sherpur', 'invoicing' ), |
|
| 136 | - 'BD-59' => __( 'Sirajganj', 'invoicing' ), |
|
| 137 | - 'BD-61' => __( 'Sunamganj', 'invoicing' ), |
|
| 138 | - 'BD-60' => __( 'Sylhet', 'invoicing' ), |
|
| 139 | - 'BD-63' => __( 'Tangail', 'invoicing' ), |
|
| 140 | - 'BD-64' => __( 'Thakurgaon', 'invoicing' ), |
|
| 141 | - ), |
|
| 142 | - 'BE' => array(), |
|
| 143 | - 'BG' => array( // Bulgarian states. |
|
| 144 | - 'BG-01' => __( 'Blagoevgrad', 'invoicing' ), |
|
| 145 | - 'BG-02' => __( 'Burgas', 'invoicing' ), |
|
| 146 | - 'BG-08' => __( 'Dobrich', 'invoicing' ), |
|
| 147 | - 'BG-07' => __( 'Gabrovo', 'invoicing' ), |
|
| 148 | - 'BG-26' => __( 'Haskovo', 'invoicing' ), |
|
| 149 | - 'BG-09' => __( 'Kardzhali', 'invoicing' ), |
|
| 150 | - 'BG-10' => __( 'Kyustendil', 'invoicing' ), |
|
| 151 | - 'BG-11' => __( 'Lovech', 'invoicing' ), |
|
| 152 | - 'BG-12' => __( 'Montana', 'invoicing' ), |
|
| 153 | - 'BG-13' => __( 'Pazardzhik', 'invoicing' ), |
|
| 154 | - 'BG-14' => __( 'Pernik', 'invoicing' ), |
|
| 155 | - 'BG-15' => __( 'Pleven', 'invoicing' ), |
|
| 156 | - 'BG-16' => __( 'Plovdiv', 'invoicing' ), |
|
| 157 | - 'BG-17' => __( 'Razgrad', 'invoicing' ), |
|
| 158 | - 'BG-18' => __( 'Ruse', 'invoicing' ), |
|
| 159 | - 'BG-27' => __( 'Shumen', 'invoicing' ), |
|
| 160 | - 'BG-19' => __( 'Silistra', 'invoicing' ), |
|
| 161 | - 'BG-20' => __( 'Sliven', 'invoicing' ), |
|
| 162 | - 'BG-21' => __( 'Smolyan', 'invoicing' ), |
|
| 163 | - 'BG-23' => __( 'Sofia', 'invoicing' ), |
|
| 164 | - 'BG-22' => __( 'Sofia-Grad', 'invoicing' ), |
|
| 165 | - 'BG-24' => __( 'Stara Zagora', 'invoicing' ), |
|
| 166 | - 'BG-25' => __( 'Targovishte', 'invoicing' ), |
|
| 167 | - 'BG-03' => __( 'Varna', 'invoicing' ), |
|
| 168 | - 'BG-04' => __( 'Veliko Tarnovo', 'invoicing' ), |
|
| 169 | - 'BG-05' => __( 'Vidin', 'invoicing' ), |
|
| 170 | - 'BG-06' => __( 'Vratsa', 'invoicing' ), |
|
| 171 | - 'BG-28' => __( 'Yambol', 'invoicing' ), |
|
| 172 | - ), |
|
| 173 | - 'BH' => array(), |
|
| 174 | - 'BI' => array(), |
|
| 175 | - 'BO' => array( // Bolivian states. |
|
| 176 | - 'B' => __( 'Chuquisaca', 'invoicing' ), |
|
| 177 | - 'H' => __( 'Beni', 'invoicing' ), |
|
| 178 | - 'C' => __( 'Cochabamba', 'invoicing' ), |
|
| 179 | - 'L' => __( 'La Paz', 'invoicing' ), |
|
| 180 | - 'O' => __( 'Oruro', 'invoicing' ), |
|
| 181 | - 'N' => __( 'Pando', 'invoicing' ), |
|
| 182 | - 'P' => __( 'Potosí', 'invoicing' ), |
|
| 183 | - 'S' => __( 'Santa Cruz', 'invoicing' ), |
|
| 184 | - 'T' => __( 'Tarija', 'invoicing' ), |
|
| 185 | - ), |
|
| 186 | - 'BR' => array( // Brazillian states. |
|
| 187 | - 'AC' => __( 'Acre', 'invoicing' ), |
|
| 188 | - 'AL' => __( 'Alagoas', 'invoicing' ), |
|
| 189 | - 'AP' => __( 'Amapá', 'invoicing' ), |
|
| 190 | - 'AM' => __( 'Amazonas', 'invoicing' ), |
|
| 191 | - 'BA' => __( 'Bahia', 'invoicing' ), |
|
| 192 | - 'CE' => __( 'Ceará', 'invoicing' ), |
|
| 193 | - 'DF' => __( 'Distrito Federal', 'invoicing' ), |
|
| 194 | - 'ES' => __( 'Espírito Santo', 'invoicing' ), |
|
| 195 | - 'GO' => __( 'Goiás', 'invoicing' ), |
|
| 196 | - 'MA' => __( 'Maranhão', 'invoicing' ), |
|
| 197 | - 'MT' => __( 'Mato Grosso', 'invoicing' ), |
|
| 198 | - 'MS' => __( 'Mato Grosso do Sul', 'invoicing' ), |
|
| 199 | - 'MG' => __( 'Minas Gerais', 'invoicing' ), |
|
| 200 | - 'PA' => __( 'Pará', 'invoicing' ), |
|
| 201 | - 'PB' => __( 'Paraíba', 'invoicing' ), |
|
| 202 | - 'PR' => __( 'Paraná', 'invoicing' ), |
|
| 203 | - 'PE' => __( 'Pernambuco', 'invoicing' ), |
|
| 204 | - 'PI' => __( 'Piauí', 'invoicing' ), |
|
| 205 | - 'RJ' => __( 'Rio de Janeiro', 'invoicing' ), |
|
| 206 | - 'RN' => __( 'Rio Grande do Norte', 'invoicing' ), |
|
| 207 | - 'RS' => __( 'Rio Grande do Sul', 'invoicing' ), |
|
| 208 | - 'RO' => __( 'Rondônia', 'invoicing' ), |
|
| 209 | - 'RR' => __( 'Roraima', 'invoicing' ), |
|
| 210 | - 'SC' => __( 'Santa Catarina', 'invoicing' ), |
|
| 211 | - 'SP' => __( 'São Paulo', 'invoicing' ), |
|
| 212 | - 'SE' => __( 'Sergipe', 'invoicing' ), |
|
| 213 | - 'TO' => __( 'Tocantins', 'invoicing' ), |
|
| 214 | - ), |
|
| 215 | - 'CA' => array( // Canadian states. |
|
| 216 | - 'AB' => __( 'Alberta', 'invoicing' ), |
|
| 217 | - 'BC' => __( 'British Columbia', 'invoicing' ), |
|
| 218 | - 'MB' => __( 'Manitoba', 'invoicing' ), |
|
| 219 | - 'NB' => __( 'New Brunswick', 'invoicing' ), |
|
| 220 | - 'NL' => __( 'Newfoundland and Labrador', 'invoicing' ), |
|
| 221 | - 'NT' => __( 'Northwest Territories', 'invoicing' ), |
|
| 222 | - 'NS' => __( 'Nova Scotia', 'invoicing' ), |
|
| 223 | - 'NU' => __( 'Nunavut', 'invoicing' ), |
|
| 224 | - 'ON' => __( 'Ontario', 'invoicing' ), |
|
| 225 | - 'PE' => __( 'Prince Edward Island', 'invoicing' ), |
|
| 226 | - 'QC' => __( 'Quebec', 'invoicing' ), |
|
| 227 | - 'SK' => __( 'Saskatchewan', 'invoicing' ), |
|
| 228 | - 'YT' => __( 'Yukon Territory', 'invoicing' ), |
|
| 229 | - ), |
|
| 230 | - 'CH' => array( // Cantons of Switzerland. |
|
| 231 | - 'AG' => __( 'Aargau', 'invoicing' ), |
|
| 232 | - 'AR' => __( 'Appenzell Ausserrhoden', 'invoicing' ), |
|
| 233 | - 'AI' => __( 'Appenzell Innerrhoden', 'invoicing' ), |
|
| 234 | - 'BL' => __( 'Basel-Landschaft', 'invoicing' ), |
|
| 235 | - 'BS' => __( 'Basel-Stadt', 'invoicing' ), |
|
| 236 | - 'BE' => __( 'Bern', 'invoicing' ), |
|
| 237 | - 'FR' => __( 'Fribourg', 'invoicing' ), |
|
| 238 | - 'GE' => __( 'Geneva', 'invoicing' ), |
|
| 239 | - 'GL' => __( 'Glarus', 'invoicing' ), |
|
| 240 | - 'GR' => __( 'Graubünden', 'invoicing' ), |
|
| 241 | - 'JU' => __( 'Jura', 'invoicing' ), |
|
| 242 | - 'LU' => __( 'Luzern', 'invoicing' ), |
|
| 243 | - 'NE' => __( 'Neuchâtel', 'invoicing' ), |
|
| 244 | - 'NW' => __( 'Nidwalden', 'invoicing' ), |
|
| 245 | - 'OW' => __( 'Obwalden', 'invoicing' ), |
|
| 246 | - 'SH' => __( 'Schaffhausen', 'invoicing' ), |
|
| 247 | - 'SZ' => __( 'Schwyz', 'invoicing' ), |
|
| 248 | - 'SO' => __( 'Solothurn', 'invoicing' ), |
|
| 249 | - 'SG' => __( 'St. Gallen', 'invoicing' ), |
|
| 250 | - 'TG' => __( 'Thurgau', 'invoicing' ), |
|
| 251 | - 'TI' => __( 'Ticino', 'invoicing' ), |
|
| 252 | - 'UR' => __( 'Uri', 'invoicing' ), |
|
| 253 | - 'VS' => __( 'Valais', 'invoicing' ), |
|
| 254 | - 'VD' => __( 'Vaud', 'invoicing' ), |
|
| 255 | - 'ZG' => __( 'Zug', 'invoicing' ), |
|
| 256 | - 'ZH' => __( 'Zürich', 'invoicing' ), |
|
| 257 | - ), |
|
| 258 | - 'CN' => array( // Chinese states. |
|
| 259 | - 'CN1' => __( 'Yunnan / 云南', 'invoicing' ), |
|
| 260 | - 'CN2' => __( 'Beijing / 北京', 'invoicing' ), |
|
| 261 | - 'CN3' => __( 'Tianjin / 天津', 'invoicing' ), |
|
| 262 | - 'CN4' => __( 'Hebei / 河北', 'invoicing' ), |
|
| 263 | - 'CN5' => __( 'Shanxi / 山西', 'invoicing' ), |
|
| 264 | - 'CN6' => __( 'Inner Mongolia / 內蒙古', 'invoicing' ), |
|
| 265 | - 'CN7' => __( 'Liaoning / 辽宁', 'invoicing' ), |
|
| 266 | - 'CN8' => __( 'Jilin / 吉林', 'invoicing' ), |
|
| 267 | - 'CN9' => __( 'Heilongjiang / 黑龙江', 'invoicing' ), |
|
| 268 | - 'CN10' => __( 'Shanghai / 上海', 'invoicing' ), |
|
| 269 | - 'CN11' => __( 'Jiangsu / 江苏', 'invoicing' ), |
|
| 270 | - 'CN12' => __( 'Zhejiang / 浙江', 'invoicing' ), |
|
| 271 | - 'CN13' => __( 'Anhui / 安徽', 'invoicing' ), |
|
| 272 | - 'CN14' => __( 'Fujian / 福建', 'invoicing' ), |
|
| 273 | - 'CN15' => __( 'Jiangxi / 江西', 'invoicing' ), |
|
| 274 | - 'CN16' => __( 'Shandong / 山东', 'invoicing' ), |
|
| 275 | - 'CN17' => __( 'Henan / 河南', 'invoicing' ), |
|
| 276 | - 'CN18' => __( 'Hubei / 湖北', 'invoicing' ), |
|
| 277 | - 'CN19' => __( 'Hunan / 湖南', 'invoicing' ), |
|
| 278 | - 'CN20' => __( 'Guangdong / 广东', 'invoicing' ), |
|
| 279 | - 'CN21' => __( 'Guangxi Zhuang / 广西壮族', 'invoicing' ), |
|
| 280 | - 'CN22' => __( 'Hainan / 海南', 'invoicing' ), |
|
| 281 | - 'CN23' => __( 'Chongqing / 重庆', 'invoicing' ), |
|
| 282 | - 'CN24' => __( 'Sichuan / 四川', 'invoicing' ), |
|
| 283 | - 'CN25' => __( 'Guizhou / 贵州', 'invoicing' ), |
|
| 284 | - 'CN26' => __( 'Shaanxi / 陕西', 'invoicing' ), |
|
| 285 | - 'CN27' => __( 'Gansu / 甘肃', 'invoicing' ), |
|
| 286 | - 'CN28' => __( 'Qinghai / 青海', 'invoicing' ), |
|
| 287 | - 'CN29' => __( 'Ningxia Hui / 宁夏', 'invoicing' ), |
|
| 288 | - 'CN30' => __( 'Macao / 澳门', 'invoicing' ), |
|
| 289 | - 'CN31' => __( 'Tibet / 西藏', 'invoicing' ), |
|
| 290 | - 'CN32' => __( 'Xinjiang / 新疆', 'invoicing' ), |
|
| 291 | - ), |
|
| 292 | - 'CZ' => array(), |
|
| 293 | - 'DE' => array(), |
|
| 294 | - 'DK' => array(), |
|
| 295 | - 'EE' => array(), |
|
| 296 | - 'ES' => array( // Spanish states. |
|
| 297 | - 'C' => __( 'A Coruña', 'invoicing' ), |
|
| 298 | - 'VI' => __( 'Araba/Álava', 'invoicing' ), |
|
| 299 | - 'AB' => __( 'Albacete', 'invoicing' ), |
|
| 300 | - 'A' => __( 'Alicante', 'invoicing' ), |
|
| 301 | - 'AL' => __( 'Almería', 'invoicing' ), |
|
| 302 | - 'O' => __( 'Asturias', 'invoicing' ), |
|
| 303 | - 'AV' => __( 'Ávila', 'invoicing' ), |
|
| 304 | - 'BA' => __( 'Badajoz', 'invoicing' ), |
|
| 305 | - 'PM' => __( 'Baleares', 'invoicing' ), |
|
| 306 | - 'B' => __( 'Barcelona', 'invoicing' ), |
|
| 307 | - 'BU' => __( 'Burgos', 'invoicing' ), |
|
| 308 | - 'CC' => __( 'Cáceres', 'invoicing' ), |
|
| 309 | - 'CA' => __( 'Cádiz', 'invoicing' ), |
|
| 310 | - 'S' => __( 'Cantabria', 'invoicing' ), |
|
| 311 | - 'CS' => __( 'Castellón', 'invoicing' ), |
|
| 312 | - 'CE' => __( 'Ceuta', 'invoicing' ), |
|
| 313 | - 'CR' => __( 'Ciudad Real', 'invoicing' ), |
|
| 314 | - 'CO' => __( 'Córdoba', 'invoicing' ), |
|
| 315 | - 'CU' => __( 'Cuenca', 'invoicing' ), |
|
| 316 | - 'GI' => __( 'Girona', 'invoicing' ), |
|
| 317 | - 'GR' => __( 'Granada', 'invoicing' ), |
|
| 318 | - 'GU' => __( 'Guadalajara', 'invoicing' ), |
|
| 319 | - 'SS' => __( 'Gipuzkoa', 'invoicing' ), |
|
| 320 | - 'H' => __( 'Huelva', 'invoicing' ), |
|
| 321 | - 'HU' => __( 'Huesca', 'invoicing' ), |
|
| 322 | - 'J' => __( 'Jaén', 'invoicing' ), |
|
| 323 | - 'LO' => __( 'La Rioja', 'invoicing' ), |
|
| 324 | - 'GC' => __( 'Las Palmas', 'invoicing' ), |
|
| 325 | - 'LE' => __( 'León', 'invoicing' ), |
|
| 326 | - 'L' => __( 'Lleida', 'invoicing' ), |
|
| 327 | - 'LU' => __( 'Lugo', 'invoicing' ), |
|
| 328 | - 'M' => __( 'Madrid', 'invoicing' ), |
|
| 329 | - 'MA' => __( 'Málaga', 'invoicing' ), |
|
| 330 | - 'ML' => __( 'Melilla', 'invoicing' ), |
|
| 331 | - 'MU' => __( 'Murcia', 'invoicing' ), |
|
| 332 | - 'NA' => __( 'Navarra', 'invoicing' ), |
|
| 333 | - 'OR' => __( 'Ourense', 'invoicing' ), |
|
| 334 | - 'P' => __( 'Palencia', 'invoicing' ), |
|
| 335 | - 'PO' => __( 'Pontevedra', 'invoicing' ), |
|
| 336 | - 'SA' => __( 'Salamanca', 'invoicing' ), |
|
| 337 | - 'TF' => __( 'Santa Cruz de Tenerife', 'invoicing' ), |
|
| 338 | - 'SG' => __( 'Segovia', 'invoicing' ), |
|
| 339 | - 'SE' => __( 'Sevilla', 'invoicing' ), |
|
| 340 | - 'SO' => __( 'Soria', 'invoicing' ), |
|
| 341 | - 'T' => __( 'Tarragona', 'invoicing' ), |
|
| 342 | - 'TE' => __( 'Teruel', 'invoicing' ), |
|
| 343 | - 'TO' => __( 'Toledo', 'invoicing' ), |
|
| 344 | - 'V' => __( 'Valencia', 'invoicing' ), |
|
| 345 | - 'VA' => __( 'Valladolid', 'invoicing' ), |
|
| 346 | - 'BI' => __( 'Bizkaia', 'invoicing' ), |
|
| 347 | - 'ZA' => __( 'Zamora', 'invoicing' ), |
|
| 348 | - 'Z' => __( 'Zaragoza', 'invoicing' ), |
|
| 349 | - ), |
|
| 350 | - 'FI' => array(), |
|
| 351 | - 'FR' => array(), |
|
| 352 | - 'GP' => array(), |
|
| 353 | - 'GR' => array( // Greek Regions. |
|
| 354 | - 'I' => __( 'Αττική', 'invoicing' ), |
|
| 355 | - 'A' => __( 'Ανατολική Μακεδονία και Θράκη', 'invoicing' ), |
|
| 356 | - 'B' => __( 'Κεντρική Μακεδονία', 'invoicing' ), |
|
| 357 | - 'C' => __( 'Δυτική Μακεδονία', 'invoicing' ), |
|
| 358 | - 'D' => __( 'Ήπειρος', 'invoicing' ), |
|
| 359 | - 'E' => __( 'Θεσσαλία', 'invoicing' ), |
|
| 360 | - 'F' => __( 'Ιόνιοι Νήσοι', 'invoicing' ), |
|
| 361 | - 'G' => __( 'Δυτική Ελλάδα', 'invoicing' ), |
|
| 362 | - 'H' => __( 'Στερεά Ελλάδα', 'invoicing' ), |
|
| 363 | - 'J' => __( 'Πελοπόννησος', 'invoicing' ), |
|
| 364 | - 'K' => __( 'Βόρειο Αιγαίο', 'invoicing' ), |
|
| 365 | - 'L' => __( 'Νότιο Αιγαίο', 'invoicing' ), |
|
| 366 | - 'M' => __( 'Κρήτη', 'invoicing' ), |
|
| 367 | - ), |
|
| 368 | - 'GF' => array(), |
|
| 369 | - 'HK' => array( // Hong Kong states. |
|
| 370 | - 'HONG KONG' => __( 'Hong Kong Island', 'invoicing' ), |
|
| 371 | - 'KOWLOON' => __( 'Kowloon', 'invoicing' ), |
|
| 372 | - 'NEW TERRITORIES' => __( 'New Territories', 'invoicing' ), |
|
| 373 | - ), |
|
| 374 | - 'HU' => array( // Hungary states. |
|
| 375 | - 'BK' => __( 'Bács-Kiskun', 'invoicing' ), |
|
| 376 | - 'BE' => __( 'Békés', 'invoicing' ), |
|
| 377 | - 'BA' => __( 'Baranya', 'invoicing' ), |
|
| 378 | - 'BZ' => __( 'Borsod-Abaúj-Zemplén', 'invoicing' ), |
|
| 379 | - 'BU' => __( 'Budapest', 'invoicing' ), |
|
| 380 | - 'CS' => __( 'Csongrád', 'invoicing' ), |
|
| 381 | - 'FE' => __( 'Fejér', 'invoicing' ), |
|
| 382 | - 'GS' => __( 'Győr-Moson-Sopron', 'invoicing' ), |
|
| 383 | - 'HB' => __( 'Hajdú-Bihar', 'invoicing' ), |
|
| 384 | - 'HE' => __( 'Heves', 'invoicing' ), |
|
| 385 | - 'JN' => __( 'Jász-Nagykun-Szolnok', 'invoicing' ), |
|
| 386 | - 'KE' => __( 'Komárom-Esztergom', 'invoicing' ), |
|
| 387 | - 'NO' => __( 'Nógrád', 'invoicing' ), |
|
| 388 | - 'PE' => __( 'Pest', 'invoicing' ), |
|
| 389 | - 'SO' => __( 'Somogy', 'invoicing' ), |
|
| 390 | - 'SZ' => __( 'Szabolcs-Szatmár-Bereg', 'invoicing' ), |
|
| 391 | - 'TO' => __( 'Tolna', 'invoicing' ), |
|
| 392 | - 'VA' => __( 'Vas', 'invoicing' ), |
|
| 393 | - 'VE' => __( 'Veszprém', 'invoicing' ), |
|
| 394 | - 'ZA' => __( 'Zala', 'invoicing' ), |
|
| 395 | - ), |
|
| 396 | - 'ID' => array( // Indonesia Provinces. |
|
| 397 | - 'AC' => __( 'Daerah Istimewa Aceh', 'invoicing' ), |
|
| 398 | - 'SU' => __( 'Sumatera Utara', 'invoicing' ), |
|
| 399 | - 'SB' => __( 'Sumatera Barat', 'invoicing' ), |
|
| 400 | - 'RI' => __( 'Riau', 'invoicing' ), |
|
| 401 | - 'KR' => __( 'Kepulauan Riau', 'invoicing' ), |
|
| 402 | - 'JA' => __( 'Jambi', 'invoicing' ), |
|
| 403 | - 'SS' => __( 'Sumatera Selatan', 'invoicing' ), |
|
| 404 | - 'BB' => __( 'Bangka Belitung', 'invoicing' ), |
|
| 405 | - 'BE' => __( 'Bengkulu', 'invoicing' ), |
|
| 406 | - 'LA' => __( 'Lampung', 'invoicing' ), |
|
| 407 | - 'JK' => __( 'DKI Jakarta', 'invoicing' ), |
|
| 408 | - 'JB' => __( 'Jawa Barat', 'invoicing' ), |
|
| 409 | - 'BT' => __( 'Banten', 'invoicing' ), |
|
| 410 | - 'JT' => __( 'Jawa Tengah', 'invoicing' ), |
|
| 411 | - 'JI' => __( 'Jawa Timur', 'invoicing' ), |
|
| 412 | - 'YO' => __( 'Daerah Istimewa Yogyakarta', 'invoicing' ), |
|
| 413 | - 'BA' => __( 'Bali', 'invoicing' ), |
|
| 414 | - 'NB' => __( 'Nusa Tenggara Barat', 'invoicing' ), |
|
| 415 | - 'NT' => __( 'Nusa Tenggara Timur', 'invoicing' ), |
|
| 416 | - 'KB' => __( 'Kalimantan Barat', 'invoicing' ), |
|
| 417 | - 'KT' => __( 'Kalimantan Tengah', 'invoicing' ), |
|
| 418 | - 'KI' => __( 'Kalimantan Timur', 'invoicing' ), |
|
| 419 | - 'KS' => __( 'Kalimantan Selatan', 'invoicing' ), |
|
| 420 | - 'KU' => __( 'Kalimantan Utara', 'invoicing' ), |
|
| 421 | - 'SA' => __( 'Sulawesi Utara', 'invoicing' ), |
|
| 422 | - 'ST' => __( 'Sulawesi Tengah', 'invoicing' ), |
|
| 423 | - 'SG' => __( 'Sulawesi Tenggara', 'invoicing' ), |
|
| 424 | - 'SR' => __( 'Sulawesi Barat', 'invoicing' ), |
|
| 425 | - 'SN' => __( 'Sulawesi Selatan', 'invoicing' ), |
|
| 426 | - 'GO' => __( 'Gorontalo', 'invoicing' ), |
|
| 427 | - 'MA' => __( 'Maluku', 'invoicing' ), |
|
| 428 | - 'MU' => __( 'Maluku Utara', 'invoicing' ), |
|
| 429 | - 'PA' => __( 'Papua', 'invoicing' ), |
|
| 430 | - 'PB' => __( 'Papua Barat', 'invoicing' ), |
|
| 431 | - ), |
|
| 432 | - 'IE' => array( // Republic of Ireland. |
|
| 433 | - 'CW' => __( 'Carlow', 'invoicing' ), |
|
| 434 | - 'CN' => __( 'Cavan', 'invoicing' ), |
|
| 435 | - 'CE' => __( 'Clare', 'invoicing' ), |
|
| 436 | - 'CO' => __( 'Cork', 'invoicing' ), |
|
| 437 | - 'DL' => __( 'Donegal', 'invoicing' ), |
|
| 438 | - 'D' => __( 'Dublin', 'invoicing' ), |
|
| 439 | - 'G' => __( 'Galway', 'invoicing' ), |
|
| 440 | - 'KY' => __( 'Kerry', 'invoicing' ), |
|
| 441 | - 'KE' => __( 'Kildare', 'invoicing' ), |
|
| 442 | - 'KK' => __( 'Kilkenny', 'invoicing' ), |
|
| 443 | - 'LS' => __( 'Laois', 'invoicing' ), |
|
| 444 | - 'LM' => __( 'Leitrim', 'invoicing' ), |
|
| 445 | - 'LK' => __( 'Limerick', 'invoicing' ), |
|
| 446 | - 'LD' => __( 'Longford', 'invoicing' ), |
|
| 447 | - 'LH' => __( 'Louth', 'invoicing' ), |
|
| 448 | - 'MO' => __( 'Mayo', 'invoicing' ), |
|
| 449 | - 'MH' => __( 'Meath', 'invoicing' ), |
|
| 450 | - 'MN' => __( 'Monaghan', 'invoicing' ), |
|
| 451 | - 'OY' => __( 'Offaly', 'invoicing' ), |
|
| 452 | - 'RN' => __( 'Roscommon', 'invoicing' ), |
|
| 453 | - 'SO' => __( 'Sligo', 'invoicing' ), |
|
| 454 | - 'TA' => __( 'Tipperary', 'invoicing' ), |
|
| 455 | - 'WD' => __( 'Waterford', 'invoicing' ), |
|
| 456 | - 'WH' => __( 'Westmeath', 'invoicing' ), |
|
| 457 | - 'WX' => __( 'Wexford', 'invoicing' ), |
|
| 458 | - 'WW' => __( 'Wicklow', 'invoicing' ), |
|
| 459 | - ), |
|
| 460 | - 'IN' => array( // Indian states. |
|
| 461 | - 'AP' => __( 'Andhra Pradesh', 'invoicing' ), |
|
| 462 | - 'AR' => __( 'Arunachal Pradesh', 'invoicing' ), |
|
| 463 | - 'AS' => __( 'Assam', 'invoicing' ), |
|
| 464 | - 'BR' => __( 'Bihar', 'invoicing' ), |
|
| 465 | - 'CT' => __( 'Chhattisgarh', 'invoicing' ), |
|
| 466 | - 'GA' => __( 'Goa', 'invoicing' ), |
|
| 467 | - 'GJ' => __( 'Gujarat', 'invoicing' ), |
|
| 468 | - 'HR' => __( 'Haryana', 'invoicing' ), |
|
| 469 | - 'HP' => __( 'Himachal Pradesh', 'invoicing' ), |
|
| 470 | - 'JK' => __( 'Jammu and Kashmir', 'invoicing' ), |
|
| 471 | - 'JH' => __( 'Jharkhand', 'invoicing' ), |
|
| 472 | - 'KA' => __( 'Karnataka', 'invoicing' ), |
|
| 473 | - 'KL' => __( 'Kerala', 'invoicing' ), |
|
| 474 | - 'MP' => __( 'Madhya Pradesh', 'invoicing' ), |
|
| 475 | - 'MH' => __( 'Maharashtra', 'invoicing' ), |
|
| 476 | - 'MN' => __( 'Manipur', 'invoicing' ), |
|
| 477 | - 'ML' => __( 'Meghalaya', 'invoicing' ), |
|
| 478 | - 'MZ' => __( 'Mizoram', 'invoicing' ), |
|
| 479 | - 'NL' => __( 'Nagaland', 'invoicing' ), |
|
| 480 | - 'OR' => __( 'Orissa', 'invoicing' ), |
|
| 481 | - 'PB' => __( 'Punjab', 'invoicing' ), |
|
| 482 | - 'RJ' => __( 'Rajasthan', 'invoicing' ), |
|
| 483 | - 'SK' => __( 'Sikkim', 'invoicing' ), |
|
| 484 | - 'TN' => __( 'Tamil Nadu', 'invoicing' ), |
|
| 485 | - 'TS' => __( 'Telangana', 'invoicing' ), |
|
| 486 | - 'TR' => __( 'Tripura', 'invoicing' ), |
|
| 487 | - 'UK' => __( 'Uttarakhand', 'invoicing' ), |
|
| 488 | - 'UP' => __( 'Uttar Pradesh', 'invoicing' ), |
|
| 489 | - 'WB' => __( 'West Bengal', 'invoicing' ), |
|
| 490 | - 'AN' => __( 'Andaman and Nicobar Islands', 'invoicing' ), |
|
| 491 | - 'CH' => __( 'Chandigarh', 'invoicing' ), |
|
| 492 | - 'DN' => __( 'Dadra and Nagar Haveli', 'invoicing' ), |
|
| 493 | - 'DD' => __( 'Daman and Diu', 'invoicing' ), |
|
| 494 | - 'DL' => __( 'Delhi', 'invoicing' ), |
|
| 495 | - 'LD' => __( 'Lakshadeep', 'invoicing' ), |
|
| 496 | - 'PY' => __( 'Pondicherry (Puducherry)', 'invoicing' ), |
|
| 497 | - ), |
|
| 498 | - 'IR' => array( // Iran States. |
|
| 499 | - 'KHZ' => __( 'Khuzestan (خوزستان)', 'invoicing' ), |
|
| 500 | - 'THR' => __( 'Tehran (تهران)', 'invoicing' ), |
|
| 501 | - 'ILM' => __( 'Ilaam (ایلام)', 'invoicing' ), |
|
| 502 | - 'BHR' => __( 'Bushehr (بوشهر)', 'invoicing' ), |
|
| 503 | - 'ADL' => __( 'Ardabil (اردبیل)', 'invoicing' ), |
|
| 504 | - 'ESF' => __( 'Isfahan (اصفهان)', 'invoicing' ), |
|
| 505 | - 'YZD' => __( 'Yazd (یزد)', 'invoicing' ), |
|
| 506 | - 'KRH' => __( 'Kermanshah (کرمانشاه)', 'invoicing' ), |
|
| 507 | - 'KRN' => __( 'Kerman (کرمان)', 'invoicing' ), |
|
| 508 | - 'HDN' => __( 'Hamadan (همدان)', 'invoicing' ), |
|
| 509 | - 'GZN' => __( 'Ghazvin (قزوین)', 'invoicing' ), |
|
| 510 | - 'ZJN' => __( 'Zanjan (زنجان)', 'invoicing' ), |
|
| 511 | - 'LRS' => __( 'Luristan (لرستان)', 'invoicing' ), |
|
| 512 | - 'ABZ' => __( 'Alborz (البرز)', 'invoicing' ), |
|
| 513 | - 'EAZ' => __( 'East Azarbaijan (آذربایجان شرقی)', 'invoicing' ), |
|
| 514 | - 'WAZ' => __( 'West Azarbaijan (آذربایجان غربی)', 'invoicing' ), |
|
| 515 | - 'CHB' => __( 'Chaharmahal and Bakhtiari (چهارمحال و بختیاری)', 'invoicing' ), |
|
| 516 | - 'SKH' => __( 'South Khorasan (خراسان جنوبی)', 'invoicing' ), |
|
| 517 | - 'RKH' => __( 'Razavi Khorasan (خراسان رضوی)', 'invoicing' ), |
|
| 518 | - 'NKH' => __( 'North Khorasan (خراسان شمالی)', 'invoicing' ), |
|
| 519 | - 'SMN' => __( 'Semnan (سمنان)', 'invoicing' ), |
|
| 520 | - 'FRS' => __( 'Fars (فارس)', 'invoicing' ), |
|
| 521 | - 'QHM' => __( 'Qom (قم)', 'invoicing' ), |
|
| 522 | - 'KRD' => __( 'Kurdistan / کردستان)', 'invoicing' ), |
|
| 523 | - 'KBD' => __( 'Kohgiluyeh and BoyerAhmad (کهگیلوییه و بویراحمد)', 'invoicing' ), |
|
| 524 | - 'GLS' => __( 'Golestan (گلستان)', 'invoicing' ), |
|
| 525 | - 'GIL' => __( 'Gilan (گیلان)', 'invoicing' ), |
|
| 526 | - 'MZN' => __( 'Mazandaran (مازندران)', 'invoicing' ), |
|
| 527 | - 'MKZ' => __( 'Markazi (مرکزی)', 'invoicing' ), |
|
| 528 | - 'HRZ' => __( 'Hormozgan (هرمزگان)', 'invoicing' ), |
|
| 529 | - 'SBN' => __( 'Sistan and Baluchestan (سیستان و بلوچستان)', 'invoicing' ), |
|
| 530 | - ), |
|
| 531 | - 'IS' => array(), |
|
| 532 | - 'IT' => array( // Italy Provinces. |
|
| 533 | - 'AG' => __( 'Agrigento', 'invoicing' ), |
|
| 534 | - 'AL' => __( 'Alessandria', 'invoicing' ), |
|
| 535 | - 'AN' => __( 'Ancona', 'invoicing' ), |
|
| 536 | - 'AO' => __( 'Aosta', 'invoicing' ), |
|
| 537 | - 'AR' => __( 'Arezzo', 'invoicing' ), |
|
| 538 | - 'AP' => __( 'Ascoli Piceno', 'invoicing' ), |
|
| 539 | - 'AT' => __( 'Asti', 'invoicing' ), |
|
| 540 | - 'AV' => __( 'Avellino', 'invoicing' ), |
|
| 541 | - 'BA' => __( 'Bari', 'invoicing' ), |
|
| 542 | - 'BT' => __( 'Barletta-Andria-Trani', 'invoicing' ), |
|
| 543 | - 'BL' => __( 'Belluno', 'invoicing' ), |
|
| 544 | - 'BN' => __( 'Benevento', 'invoicing' ), |
|
| 545 | - 'BG' => __( 'Bergamo', 'invoicing' ), |
|
| 546 | - 'BI' => __( 'Biella', 'invoicing' ), |
|
| 547 | - 'BO' => __( 'Bologna', 'invoicing' ), |
|
| 548 | - 'BZ' => __( 'Bolzano', 'invoicing' ), |
|
| 549 | - 'BS' => __( 'Brescia', 'invoicing' ), |
|
| 550 | - 'BR' => __( 'Brindisi', 'invoicing' ), |
|
| 551 | - 'CA' => __( 'Cagliari', 'invoicing' ), |
|
| 552 | - 'CL' => __( 'Caltanissetta', 'invoicing' ), |
|
| 553 | - 'CB' => __( 'Campobasso', 'invoicing' ), |
|
| 554 | - 'CE' => __( 'Caserta', 'invoicing' ), |
|
| 555 | - 'CT' => __( 'Catania', 'invoicing' ), |
|
| 556 | - 'CZ' => __( 'Catanzaro', 'invoicing' ), |
|
| 557 | - 'CH' => __( 'Chieti', 'invoicing' ), |
|
| 558 | - 'CO' => __( 'Como', 'invoicing' ), |
|
| 559 | - 'CS' => __( 'Cosenza', 'invoicing' ), |
|
| 560 | - 'CR' => __( 'Cremona', 'invoicing' ), |
|
| 561 | - 'KR' => __( 'Crotone', 'invoicing' ), |
|
| 562 | - 'CN' => __( 'Cuneo', 'invoicing' ), |
|
| 563 | - 'EN' => __( 'Enna', 'invoicing' ), |
|
| 564 | - 'FM' => __( 'Fermo', 'invoicing' ), |
|
| 565 | - 'FE' => __( 'Ferrara', 'invoicing' ), |
|
| 566 | - 'FI' => __( 'Firenze', 'invoicing' ), |
|
| 567 | - 'FG' => __( 'Foggia', 'invoicing' ), |
|
| 568 | - 'FC' => __( 'Forlì-Cesena', 'invoicing' ), |
|
| 569 | - 'FR' => __( 'Frosinone', 'invoicing' ), |
|
| 570 | - 'GE' => __( 'Genova', 'invoicing' ), |
|
| 571 | - 'GO' => __( 'Gorizia', 'invoicing' ), |
|
| 572 | - 'GR' => __( 'Grosseto', 'invoicing' ), |
|
| 573 | - 'IM' => __( 'Imperia', 'invoicing' ), |
|
| 574 | - 'IS' => __( 'Isernia', 'invoicing' ), |
|
| 575 | - 'SP' => __( 'La Spezia', 'invoicing' ), |
|
| 576 | - 'AQ' => __( "L'Aquila", 'invoicing' ), |
|
| 577 | - 'LT' => __( 'Latina', 'invoicing' ), |
|
| 578 | - 'LE' => __( 'Lecce', 'invoicing' ), |
|
| 579 | - 'LC' => __( 'Lecco', 'invoicing' ), |
|
| 580 | - 'LI' => __( 'Livorno', 'invoicing' ), |
|
| 581 | - 'LO' => __( 'Lodi', 'invoicing' ), |
|
| 582 | - 'LU' => __( 'Lucca', 'invoicing' ), |
|
| 583 | - 'MC' => __( 'Macerata', 'invoicing' ), |
|
| 584 | - 'MN' => __( 'Mantova', 'invoicing' ), |
|
| 585 | - 'MS' => __( 'Massa-Carrara', 'invoicing' ), |
|
| 586 | - 'MT' => __( 'Matera', 'invoicing' ), |
|
| 587 | - 'ME' => __( 'Messina', 'invoicing' ), |
|
| 588 | - 'MI' => __( 'Milano', 'invoicing' ), |
|
| 589 | - 'MO' => __( 'Modena', 'invoicing' ), |
|
| 590 | - 'MB' => __( 'Monza e della Brianza', 'invoicing' ), |
|
| 591 | - 'NA' => __( 'Napoli', 'invoicing' ), |
|
| 592 | - 'NO' => __( 'Novara', 'invoicing' ), |
|
| 593 | - 'NU' => __( 'Nuoro', 'invoicing' ), |
|
| 594 | - 'OR' => __( 'Oristano', 'invoicing' ), |
|
| 595 | - 'PD' => __( 'Padova', 'invoicing' ), |
|
| 596 | - 'PA' => __( 'Palermo', 'invoicing' ), |
|
| 597 | - 'PR' => __( 'Parma', 'invoicing' ), |
|
| 598 | - 'PV' => __( 'Pavia', 'invoicing' ), |
|
| 599 | - 'PG' => __( 'Perugia', 'invoicing' ), |
|
| 600 | - 'PU' => __( 'Pesaro e Urbino', 'invoicing' ), |
|
| 601 | - 'PE' => __( 'Pescara', 'invoicing' ), |
|
| 602 | - 'PC' => __( 'Piacenza', 'invoicing' ), |
|
| 603 | - 'PI' => __( 'Pisa', 'invoicing' ), |
|
| 604 | - 'PT' => __( 'Pistoia', 'invoicing' ), |
|
| 605 | - 'PN' => __( 'Pordenone', 'invoicing' ), |
|
| 606 | - 'PZ' => __( 'Potenza', 'invoicing' ), |
|
| 607 | - 'PO' => __( 'Prato', 'invoicing' ), |
|
| 608 | - 'RG' => __( 'Ragusa', 'invoicing' ), |
|
| 609 | - 'RA' => __( 'Ravenna', 'invoicing' ), |
|
| 610 | - 'RC' => __( 'Reggio Calabria', 'invoicing' ), |
|
| 611 | - 'RE' => __( 'Reggio Emilia', 'invoicing' ), |
|
| 612 | - 'RI' => __( 'Rieti', 'invoicing' ), |
|
| 613 | - 'RN' => __( 'Rimini', 'invoicing' ), |
|
| 614 | - 'RM' => __( 'Roma', 'invoicing' ), |
|
| 615 | - 'RO' => __( 'Rovigo', 'invoicing' ), |
|
| 616 | - 'SA' => __( 'Salerno', 'invoicing' ), |
|
| 617 | - 'SS' => __( 'Sassari', 'invoicing' ), |
|
| 618 | - 'SV' => __( 'Savona', 'invoicing' ), |
|
| 619 | - 'SI' => __( 'Siena', 'invoicing' ), |
|
| 620 | - 'SR' => __( 'Siracusa', 'invoicing' ), |
|
| 621 | - 'SO' => __( 'Sondrio', 'invoicing' ), |
|
| 622 | - 'SU' => __( 'Sud Sardegna', 'invoicing' ), |
|
| 623 | - 'TA' => __( 'Taranto', 'invoicing' ), |
|
| 624 | - 'TE' => __( 'Teramo', 'invoicing' ), |
|
| 625 | - 'TR' => __( 'Terni', 'invoicing' ), |
|
| 626 | - 'TO' => __( 'Torino', 'invoicing' ), |
|
| 627 | - 'TP' => __( 'Trapani', 'invoicing' ), |
|
| 628 | - 'TN' => __( 'Trento', 'invoicing' ), |
|
| 629 | - 'TV' => __( 'Treviso', 'invoicing' ), |
|
| 630 | - 'TS' => __( 'Trieste', 'invoicing' ), |
|
| 631 | - 'UD' => __( 'Udine', 'invoicing' ), |
|
| 632 | - 'VA' => __( 'Varese', 'invoicing' ), |
|
| 633 | - 'VE' => __( 'Venezia', 'invoicing' ), |
|
| 634 | - 'VB' => __( 'Verbano-Cusio-Ossola', 'invoicing' ), |
|
| 635 | - 'VC' => __( 'Vercelli', 'invoicing' ), |
|
| 636 | - 'VR' => __( 'Verona', 'invoicing' ), |
|
| 637 | - 'VV' => __( 'Vibo Valentia', 'invoicing' ), |
|
| 638 | - 'VI' => __( 'Vicenza', 'invoicing' ), |
|
| 639 | - 'VT' => __( 'Viterbo', 'invoicing' ), |
|
| 640 | - ), |
|
| 641 | - 'IL' => array(), |
|
| 642 | - 'IM' => array(), |
|
| 17 | + 'AF' => array(), |
|
| 18 | + 'AO' => array( // Angola states. |
|
| 19 | + 'BGO' => __( 'Bengo', 'invoicing' ), |
|
| 20 | + 'BLU' => __( 'Benguela', 'invoicing' ), |
|
| 21 | + 'BIE' => __( 'Bié', 'invoicing' ), |
|
| 22 | + 'CAB' => __( 'Cabinda', 'invoicing' ), |
|
| 23 | + 'CNN' => __( 'Cunene', 'invoicing' ), |
|
| 24 | + 'HUA' => __( 'Huambo', 'invoicing' ), |
|
| 25 | + 'HUI' => __( 'Huíla', 'invoicing' ), |
|
| 26 | + 'CCU' => __( 'Kuando Kubango', 'invoicing' ), |
|
| 27 | + 'CNO' => __( 'Kwanza-Norte', 'invoicing' ), |
|
| 28 | + 'CUS' => __( 'Kwanza-Sul', 'invoicing' ), |
|
| 29 | + 'LUA' => __( 'Luanda', 'invoicing' ), |
|
| 30 | + 'LNO' => __( 'Lunda-Norte', 'invoicing' ), |
|
| 31 | + 'LSU' => __( 'Lunda-Sul', 'invoicing' ), |
|
| 32 | + 'MAL' => __( 'Malanje', 'invoicing' ), |
|
| 33 | + 'MOX' => __( 'Moxico', 'invoicing' ), |
|
| 34 | + 'NAM' => __( 'Namibe', 'invoicing' ), |
|
| 35 | + 'UIG' => __( 'Uíge', 'invoicing' ), |
|
| 36 | + 'ZAI' => __( 'Zaire', 'invoicing' ), |
|
| 37 | + ), |
|
| 38 | + 'AR' => array( // Argentinian provinces. |
|
| 39 | + 'C' => __( 'Ciudad Autónoma de Buenos Aires', 'invoicing' ), |
|
| 40 | + 'B' => __( 'Buenos Aires', 'invoicing' ), |
|
| 41 | + 'K' => __( 'Catamarca', 'invoicing' ), |
|
| 42 | + 'H' => __( 'Chaco', 'invoicing' ), |
|
| 43 | + 'U' => __( 'Chubut', 'invoicing' ), |
|
| 44 | + 'X' => __( 'Córdoba', 'invoicing' ), |
|
| 45 | + 'W' => __( 'Corrientes', 'invoicing' ), |
|
| 46 | + 'E' => __( 'Entre Ríos', 'invoicing' ), |
|
| 47 | + 'P' => __( 'Formosa', 'invoicing' ), |
|
| 48 | + 'Y' => __( 'Jujuy', 'invoicing' ), |
|
| 49 | + 'L' => __( 'La Pampa', 'invoicing' ), |
|
| 50 | + 'F' => __( 'La Rioja', 'invoicing' ), |
|
| 51 | + 'M' => __( 'Mendoza', 'invoicing' ), |
|
| 52 | + 'N' => __( 'Misiones', 'invoicing' ), |
|
| 53 | + 'Q' => __( 'Neuquén', 'invoicing' ), |
|
| 54 | + 'R' => __( 'Río Negro', 'invoicing' ), |
|
| 55 | + 'A' => __( 'Salta', 'invoicing' ), |
|
| 56 | + 'J' => __( 'San Juan', 'invoicing' ), |
|
| 57 | + 'D' => __( 'San Luis', 'invoicing' ), |
|
| 58 | + 'Z' => __( 'Santa Cruz', 'invoicing' ), |
|
| 59 | + 'S' => __( 'Santa Fe', 'invoicing' ), |
|
| 60 | + 'G' => __( 'Santiago del Estero', 'invoicing' ), |
|
| 61 | + 'V' => __( 'Tierra del Fuego', 'invoicing' ), |
|
| 62 | + 'T' => __( 'Tucumán', 'invoicing' ), |
|
| 63 | + ), |
|
| 64 | + 'AT' => array(), |
|
| 65 | + 'AU' => array( // Australian states. |
|
| 66 | + 'ACT' => __( 'Australian Capital Territory', 'invoicing' ), |
|
| 67 | + 'NSW' => __( 'New South Wales', 'invoicing' ), |
|
| 68 | + 'NT' => __( 'Northern Territory', 'invoicing' ), |
|
| 69 | + 'QLD' => __( 'Queensland', 'invoicing' ), |
|
| 70 | + 'SA' => __( 'South Australia', 'invoicing' ), |
|
| 71 | + 'TAS' => __( 'Tasmania', 'invoicing' ), |
|
| 72 | + 'VIC' => __( 'Victoria', 'invoicing' ), |
|
| 73 | + 'WA' => __( 'Western Australia', 'invoicing' ), |
|
| 74 | + ), |
|
| 75 | + 'AX' => array(), |
|
| 76 | + 'BD' => array( // Bangladeshi states (districts). |
|
| 77 | + 'BD-05' => __( 'Bagerhat', 'invoicing' ), |
|
| 78 | + 'BD-01' => __( 'Bandarban', 'invoicing' ), |
|
| 79 | + 'BD-02' => __( 'Barguna', 'invoicing' ), |
|
| 80 | + 'BD-06' => __( 'Barishal', 'invoicing' ), |
|
| 81 | + 'BD-07' => __( 'Bhola', 'invoicing' ), |
|
| 82 | + 'BD-03' => __( 'Bogura', 'invoicing' ), |
|
| 83 | + 'BD-04' => __( 'Brahmanbaria', 'invoicing' ), |
|
| 84 | + 'BD-09' => __( 'Chandpur', 'invoicing' ), |
|
| 85 | + 'BD-10' => __( 'Chattogram', 'invoicing' ), |
|
| 86 | + 'BD-12' => __( 'Chuadanga', 'invoicing' ), |
|
| 87 | + 'BD-11' => __( "Cox's Bazar", 'invoicing' ), |
|
| 88 | + 'BD-08' => __( 'Cumilla', 'invoicing' ), |
|
| 89 | + 'BD-13' => __( 'Dhaka', 'invoicing' ), |
|
| 90 | + 'BD-14' => __( 'Dinajpur', 'invoicing' ), |
|
| 91 | + 'BD-15' => __( 'Faridpur ', 'invoicing' ), |
|
| 92 | + 'BD-16' => __( 'Feni', 'invoicing' ), |
|
| 93 | + 'BD-19' => __( 'Gaibandha', 'invoicing' ), |
|
| 94 | + 'BD-18' => __( 'Gazipur', 'invoicing' ), |
|
| 95 | + 'BD-17' => __( 'Gopalganj', 'invoicing' ), |
|
| 96 | + 'BD-20' => __( 'Habiganj', 'invoicing' ), |
|
| 97 | + 'BD-21' => __( 'Jamalpur', 'invoicing' ), |
|
| 98 | + 'BD-22' => __( 'Jashore', 'invoicing' ), |
|
| 99 | + 'BD-25' => __( 'Jhalokati', 'invoicing' ), |
|
| 100 | + 'BD-23' => __( 'Jhenaidah', 'invoicing' ), |
|
| 101 | + 'BD-24' => __( 'Joypurhat', 'invoicing' ), |
|
| 102 | + 'BD-29' => __( 'Khagrachhari', 'invoicing' ), |
|
| 103 | + 'BD-27' => __( 'Khulna', 'invoicing' ), |
|
| 104 | + 'BD-26' => __( 'Kishoreganj', 'invoicing' ), |
|
| 105 | + 'BD-28' => __( 'Kurigram', 'invoicing' ), |
|
| 106 | + 'BD-30' => __( 'Kushtia', 'invoicing' ), |
|
| 107 | + 'BD-31' => __( 'Lakshmipur', 'invoicing' ), |
|
| 108 | + 'BD-32' => __( 'Lalmonirhat', 'invoicing' ), |
|
| 109 | + 'BD-36' => __( 'Madaripur', 'invoicing' ), |
|
| 110 | + 'BD-37' => __( 'Magura', 'invoicing' ), |
|
| 111 | + 'BD-33' => __( 'Manikganj ', 'invoicing' ), |
|
| 112 | + 'BD-39' => __( 'Meherpur', 'invoicing' ), |
|
| 113 | + 'BD-38' => __( 'Moulvibazar', 'invoicing' ), |
|
| 114 | + 'BD-35' => __( 'Munshiganj', 'invoicing' ), |
|
| 115 | + 'BD-34' => __( 'Mymensingh', 'invoicing' ), |
|
| 116 | + 'BD-48' => __( 'Naogaon', 'invoicing' ), |
|
| 117 | + 'BD-43' => __( 'Narail', 'invoicing' ), |
|
| 118 | + 'BD-40' => __( 'Narayanganj', 'invoicing' ), |
|
| 119 | + 'BD-42' => __( 'Narsingdi', 'invoicing' ), |
|
| 120 | + 'BD-44' => __( 'Natore', 'invoicing' ), |
|
| 121 | + 'BD-45' => __( 'Nawabganj', 'invoicing' ), |
|
| 122 | + 'BD-41' => __( 'Netrakona', 'invoicing' ), |
|
| 123 | + 'BD-46' => __( 'Nilphamari', 'invoicing' ), |
|
| 124 | + 'BD-47' => __( 'Noakhali', 'invoicing' ), |
|
| 125 | + 'BD-49' => __( 'Pabna', 'invoicing' ), |
|
| 126 | + 'BD-52' => __( 'Panchagarh', 'invoicing' ), |
|
| 127 | + 'BD-51' => __( 'Patuakhali', 'invoicing' ), |
|
| 128 | + 'BD-50' => __( 'Pirojpur', 'invoicing' ), |
|
| 129 | + 'BD-53' => __( 'Rajbari', 'invoicing' ), |
|
| 130 | + 'BD-54' => __( 'Rajshahi', 'invoicing' ), |
|
| 131 | + 'BD-56' => __( 'Rangamati', 'invoicing' ), |
|
| 132 | + 'BD-55' => __( 'Rangpur', 'invoicing' ), |
|
| 133 | + 'BD-58' => __( 'Satkhira', 'invoicing' ), |
|
| 134 | + 'BD-62' => __( 'Shariatpur', 'invoicing' ), |
|
| 135 | + 'BD-57' => __( 'Sherpur', 'invoicing' ), |
|
| 136 | + 'BD-59' => __( 'Sirajganj', 'invoicing' ), |
|
| 137 | + 'BD-61' => __( 'Sunamganj', 'invoicing' ), |
|
| 138 | + 'BD-60' => __( 'Sylhet', 'invoicing' ), |
|
| 139 | + 'BD-63' => __( 'Tangail', 'invoicing' ), |
|
| 140 | + 'BD-64' => __( 'Thakurgaon', 'invoicing' ), |
|
| 141 | + ), |
|
| 142 | + 'BE' => array(), |
|
| 143 | + 'BG' => array( // Bulgarian states. |
|
| 144 | + 'BG-01' => __( 'Blagoevgrad', 'invoicing' ), |
|
| 145 | + 'BG-02' => __( 'Burgas', 'invoicing' ), |
|
| 146 | + 'BG-08' => __( 'Dobrich', 'invoicing' ), |
|
| 147 | + 'BG-07' => __( 'Gabrovo', 'invoicing' ), |
|
| 148 | + 'BG-26' => __( 'Haskovo', 'invoicing' ), |
|
| 149 | + 'BG-09' => __( 'Kardzhali', 'invoicing' ), |
|
| 150 | + 'BG-10' => __( 'Kyustendil', 'invoicing' ), |
|
| 151 | + 'BG-11' => __( 'Lovech', 'invoicing' ), |
|
| 152 | + 'BG-12' => __( 'Montana', 'invoicing' ), |
|
| 153 | + 'BG-13' => __( 'Pazardzhik', 'invoicing' ), |
|
| 154 | + 'BG-14' => __( 'Pernik', 'invoicing' ), |
|
| 155 | + 'BG-15' => __( 'Pleven', 'invoicing' ), |
|
| 156 | + 'BG-16' => __( 'Plovdiv', 'invoicing' ), |
|
| 157 | + 'BG-17' => __( 'Razgrad', 'invoicing' ), |
|
| 158 | + 'BG-18' => __( 'Ruse', 'invoicing' ), |
|
| 159 | + 'BG-27' => __( 'Shumen', 'invoicing' ), |
|
| 160 | + 'BG-19' => __( 'Silistra', 'invoicing' ), |
|
| 161 | + 'BG-20' => __( 'Sliven', 'invoicing' ), |
|
| 162 | + 'BG-21' => __( 'Smolyan', 'invoicing' ), |
|
| 163 | + 'BG-23' => __( 'Sofia', 'invoicing' ), |
|
| 164 | + 'BG-22' => __( 'Sofia-Grad', 'invoicing' ), |
|
| 165 | + 'BG-24' => __( 'Stara Zagora', 'invoicing' ), |
|
| 166 | + 'BG-25' => __( 'Targovishte', 'invoicing' ), |
|
| 167 | + 'BG-03' => __( 'Varna', 'invoicing' ), |
|
| 168 | + 'BG-04' => __( 'Veliko Tarnovo', 'invoicing' ), |
|
| 169 | + 'BG-05' => __( 'Vidin', 'invoicing' ), |
|
| 170 | + 'BG-06' => __( 'Vratsa', 'invoicing' ), |
|
| 171 | + 'BG-28' => __( 'Yambol', 'invoicing' ), |
|
| 172 | + ), |
|
| 173 | + 'BH' => array(), |
|
| 174 | + 'BI' => array(), |
|
| 175 | + 'BO' => array( // Bolivian states. |
|
| 176 | + 'B' => __( 'Chuquisaca', 'invoicing' ), |
|
| 177 | + 'H' => __( 'Beni', 'invoicing' ), |
|
| 178 | + 'C' => __( 'Cochabamba', 'invoicing' ), |
|
| 179 | + 'L' => __( 'La Paz', 'invoicing' ), |
|
| 180 | + 'O' => __( 'Oruro', 'invoicing' ), |
|
| 181 | + 'N' => __( 'Pando', 'invoicing' ), |
|
| 182 | + 'P' => __( 'Potosí', 'invoicing' ), |
|
| 183 | + 'S' => __( 'Santa Cruz', 'invoicing' ), |
|
| 184 | + 'T' => __( 'Tarija', 'invoicing' ), |
|
| 185 | + ), |
|
| 186 | + 'BR' => array( // Brazillian states. |
|
| 187 | + 'AC' => __( 'Acre', 'invoicing' ), |
|
| 188 | + 'AL' => __( 'Alagoas', 'invoicing' ), |
|
| 189 | + 'AP' => __( 'Amapá', 'invoicing' ), |
|
| 190 | + 'AM' => __( 'Amazonas', 'invoicing' ), |
|
| 191 | + 'BA' => __( 'Bahia', 'invoicing' ), |
|
| 192 | + 'CE' => __( 'Ceará', 'invoicing' ), |
|
| 193 | + 'DF' => __( 'Distrito Federal', 'invoicing' ), |
|
| 194 | + 'ES' => __( 'Espírito Santo', 'invoicing' ), |
|
| 195 | + 'GO' => __( 'Goiás', 'invoicing' ), |
|
| 196 | + 'MA' => __( 'Maranhão', 'invoicing' ), |
|
| 197 | + 'MT' => __( 'Mato Grosso', 'invoicing' ), |
|
| 198 | + 'MS' => __( 'Mato Grosso do Sul', 'invoicing' ), |
|
| 199 | + 'MG' => __( 'Minas Gerais', 'invoicing' ), |
|
| 200 | + 'PA' => __( 'Pará', 'invoicing' ), |
|
| 201 | + 'PB' => __( 'Paraíba', 'invoicing' ), |
|
| 202 | + 'PR' => __( 'Paraná', 'invoicing' ), |
|
| 203 | + 'PE' => __( 'Pernambuco', 'invoicing' ), |
|
| 204 | + 'PI' => __( 'Piauí', 'invoicing' ), |
|
| 205 | + 'RJ' => __( 'Rio de Janeiro', 'invoicing' ), |
|
| 206 | + 'RN' => __( 'Rio Grande do Norte', 'invoicing' ), |
|
| 207 | + 'RS' => __( 'Rio Grande do Sul', 'invoicing' ), |
|
| 208 | + 'RO' => __( 'Rondônia', 'invoicing' ), |
|
| 209 | + 'RR' => __( 'Roraima', 'invoicing' ), |
|
| 210 | + 'SC' => __( 'Santa Catarina', 'invoicing' ), |
|
| 211 | + 'SP' => __( 'São Paulo', 'invoicing' ), |
|
| 212 | + 'SE' => __( 'Sergipe', 'invoicing' ), |
|
| 213 | + 'TO' => __( 'Tocantins', 'invoicing' ), |
|
| 214 | + ), |
|
| 215 | + 'CA' => array( // Canadian states. |
|
| 216 | + 'AB' => __( 'Alberta', 'invoicing' ), |
|
| 217 | + 'BC' => __( 'British Columbia', 'invoicing' ), |
|
| 218 | + 'MB' => __( 'Manitoba', 'invoicing' ), |
|
| 219 | + 'NB' => __( 'New Brunswick', 'invoicing' ), |
|
| 220 | + 'NL' => __( 'Newfoundland and Labrador', 'invoicing' ), |
|
| 221 | + 'NT' => __( 'Northwest Territories', 'invoicing' ), |
|
| 222 | + 'NS' => __( 'Nova Scotia', 'invoicing' ), |
|
| 223 | + 'NU' => __( 'Nunavut', 'invoicing' ), |
|
| 224 | + 'ON' => __( 'Ontario', 'invoicing' ), |
|
| 225 | + 'PE' => __( 'Prince Edward Island', 'invoicing' ), |
|
| 226 | + 'QC' => __( 'Quebec', 'invoicing' ), |
|
| 227 | + 'SK' => __( 'Saskatchewan', 'invoicing' ), |
|
| 228 | + 'YT' => __( 'Yukon Territory', 'invoicing' ), |
|
| 229 | + ), |
|
| 230 | + 'CH' => array( // Cantons of Switzerland. |
|
| 231 | + 'AG' => __( 'Aargau', 'invoicing' ), |
|
| 232 | + 'AR' => __( 'Appenzell Ausserrhoden', 'invoicing' ), |
|
| 233 | + 'AI' => __( 'Appenzell Innerrhoden', 'invoicing' ), |
|
| 234 | + 'BL' => __( 'Basel-Landschaft', 'invoicing' ), |
|
| 235 | + 'BS' => __( 'Basel-Stadt', 'invoicing' ), |
|
| 236 | + 'BE' => __( 'Bern', 'invoicing' ), |
|
| 237 | + 'FR' => __( 'Fribourg', 'invoicing' ), |
|
| 238 | + 'GE' => __( 'Geneva', 'invoicing' ), |
|
| 239 | + 'GL' => __( 'Glarus', 'invoicing' ), |
|
| 240 | + 'GR' => __( 'Graubünden', 'invoicing' ), |
|
| 241 | + 'JU' => __( 'Jura', 'invoicing' ), |
|
| 242 | + 'LU' => __( 'Luzern', 'invoicing' ), |
|
| 243 | + 'NE' => __( 'Neuchâtel', 'invoicing' ), |
|
| 244 | + 'NW' => __( 'Nidwalden', 'invoicing' ), |
|
| 245 | + 'OW' => __( 'Obwalden', 'invoicing' ), |
|
| 246 | + 'SH' => __( 'Schaffhausen', 'invoicing' ), |
|
| 247 | + 'SZ' => __( 'Schwyz', 'invoicing' ), |
|
| 248 | + 'SO' => __( 'Solothurn', 'invoicing' ), |
|
| 249 | + 'SG' => __( 'St. Gallen', 'invoicing' ), |
|
| 250 | + 'TG' => __( 'Thurgau', 'invoicing' ), |
|
| 251 | + 'TI' => __( 'Ticino', 'invoicing' ), |
|
| 252 | + 'UR' => __( 'Uri', 'invoicing' ), |
|
| 253 | + 'VS' => __( 'Valais', 'invoicing' ), |
|
| 254 | + 'VD' => __( 'Vaud', 'invoicing' ), |
|
| 255 | + 'ZG' => __( 'Zug', 'invoicing' ), |
|
| 256 | + 'ZH' => __( 'Zürich', 'invoicing' ), |
|
| 257 | + ), |
|
| 258 | + 'CN' => array( // Chinese states. |
|
| 259 | + 'CN1' => __( 'Yunnan / 云南', 'invoicing' ), |
|
| 260 | + 'CN2' => __( 'Beijing / 北京', 'invoicing' ), |
|
| 261 | + 'CN3' => __( 'Tianjin / 天津', 'invoicing' ), |
|
| 262 | + 'CN4' => __( 'Hebei / 河北', 'invoicing' ), |
|
| 263 | + 'CN5' => __( 'Shanxi / 山西', 'invoicing' ), |
|
| 264 | + 'CN6' => __( 'Inner Mongolia / 內蒙古', 'invoicing' ), |
|
| 265 | + 'CN7' => __( 'Liaoning / 辽宁', 'invoicing' ), |
|
| 266 | + 'CN8' => __( 'Jilin / 吉林', 'invoicing' ), |
|
| 267 | + 'CN9' => __( 'Heilongjiang / 黑龙江', 'invoicing' ), |
|
| 268 | + 'CN10' => __( 'Shanghai / 上海', 'invoicing' ), |
|
| 269 | + 'CN11' => __( 'Jiangsu / 江苏', 'invoicing' ), |
|
| 270 | + 'CN12' => __( 'Zhejiang / 浙江', 'invoicing' ), |
|
| 271 | + 'CN13' => __( 'Anhui / 安徽', 'invoicing' ), |
|
| 272 | + 'CN14' => __( 'Fujian / 福建', 'invoicing' ), |
|
| 273 | + 'CN15' => __( 'Jiangxi / 江西', 'invoicing' ), |
|
| 274 | + 'CN16' => __( 'Shandong / 山东', 'invoicing' ), |
|
| 275 | + 'CN17' => __( 'Henan / 河南', 'invoicing' ), |
|
| 276 | + 'CN18' => __( 'Hubei / 湖北', 'invoicing' ), |
|
| 277 | + 'CN19' => __( 'Hunan / 湖南', 'invoicing' ), |
|
| 278 | + 'CN20' => __( 'Guangdong / 广东', 'invoicing' ), |
|
| 279 | + 'CN21' => __( 'Guangxi Zhuang / 广西壮族', 'invoicing' ), |
|
| 280 | + 'CN22' => __( 'Hainan / 海南', 'invoicing' ), |
|
| 281 | + 'CN23' => __( 'Chongqing / 重庆', 'invoicing' ), |
|
| 282 | + 'CN24' => __( 'Sichuan / 四川', 'invoicing' ), |
|
| 283 | + 'CN25' => __( 'Guizhou / 贵州', 'invoicing' ), |
|
| 284 | + 'CN26' => __( 'Shaanxi / 陕西', 'invoicing' ), |
|
| 285 | + 'CN27' => __( 'Gansu / 甘肃', 'invoicing' ), |
|
| 286 | + 'CN28' => __( 'Qinghai / 青海', 'invoicing' ), |
|
| 287 | + 'CN29' => __( 'Ningxia Hui / 宁夏', 'invoicing' ), |
|
| 288 | + 'CN30' => __( 'Macao / 澳门', 'invoicing' ), |
|
| 289 | + 'CN31' => __( 'Tibet / 西藏', 'invoicing' ), |
|
| 290 | + 'CN32' => __( 'Xinjiang / 新疆', 'invoicing' ), |
|
| 291 | + ), |
|
| 292 | + 'CZ' => array(), |
|
| 293 | + 'DE' => array(), |
|
| 294 | + 'DK' => array(), |
|
| 295 | + 'EE' => array(), |
|
| 296 | + 'ES' => array( // Spanish states. |
|
| 297 | + 'C' => __( 'A Coruña', 'invoicing' ), |
|
| 298 | + 'VI' => __( 'Araba/Álava', 'invoicing' ), |
|
| 299 | + 'AB' => __( 'Albacete', 'invoicing' ), |
|
| 300 | + 'A' => __( 'Alicante', 'invoicing' ), |
|
| 301 | + 'AL' => __( 'Almería', 'invoicing' ), |
|
| 302 | + 'O' => __( 'Asturias', 'invoicing' ), |
|
| 303 | + 'AV' => __( 'Ávila', 'invoicing' ), |
|
| 304 | + 'BA' => __( 'Badajoz', 'invoicing' ), |
|
| 305 | + 'PM' => __( 'Baleares', 'invoicing' ), |
|
| 306 | + 'B' => __( 'Barcelona', 'invoicing' ), |
|
| 307 | + 'BU' => __( 'Burgos', 'invoicing' ), |
|
| 308 | + 'CC' => __( 'Cáceres', 'invoicing' ), |
|
| 309 | + 'CA' => __( 'Cádiz', 'invoicing' ), |
|
| 310 | + 'S' => __( 'Cantabria', 'invoicing' ), |
|
| 311 | + 'CS' => __( 'Castellón', 'invoicing' ), |
|
| 312 | + 'CE' => __( 'Ceuta', 'invoicing' ), |
|
| 313 | + 'CR' => __( 'Ciudad Real', 'invoicing' ), |
|
| 314 | + 'CO' => __( 'Córdoba', 'invoicing' ), |
|
| 315 | + 'CU' => __( 'Cuenca', 'invoicing' ), |
|
| 316 | + 'GI' => __( 'Girona', 'invoicing' ), |
|
| 317 | + 'GR' => __( 'Granada', 'invoicing' ), |
|
| 318 | + 'GU' => __( 'Guadalajara', 'invoicing' ), |
|
| 319 | + 'SS' => __( 'Gipuzkoa', 'invoicing' ), |
|
| 320 | + 'H' => __( 'Huelva', 'invoicing' ), |
|
| 321 | + 'HU' => __( 'Huesca', 'invoicing' ), |
|
| 322 | + 'J' => __( 'Jaén', 'invoicing' ), |
|
| 323 | + 'LO' => __( 'La Rioja', 'invoicing' ), |
|
| 324 | + 'GC' => __( 'Las Palmas', 'invoicing' ), |
|
| 325 | + 'LE' => __( 'León', 'invoicing' ), |
|
| 326 | + 'L' => __( 'Lleida', 'invoicing' ), |
|
| 327 | + 'LU' => __( 'Lugo', 'invoicing' ), |
|
| 328 | + 'M' => __( 'Madrid', 'invoicing' ), |
|
| 329 | + 'MA' => __( 'Málaga', 'invoicing' ), |
|
| 330 | + 'ML' => __( 'Melilla', 'invoicing' ), |
|
| 331 | + 'MU' => __( 'Murcia', 'invoicing' ), |
|
| 332 | + 'NA' => __( 'Navarra', 'invoicing' ), |
|
| 333 | + 'OR' => __( 'Ourense', 'invoicing' ), |
|
| 334 | + 'P' => __( 'Palencia', 'invoicing' ), |
|
| 335 | + 'PO' => __( 'Pontevedra', 'invoicing' ), |
|
| 336 | + 'SA' => __( 'Salamanca', 'invoicing' ), |
|
| 337 | + 'TF' => __( 'Santa Cruz de Tenerife', 'invoicing' ), |
|
| 338 | + 'SG' => __( 'Segovia', 'invoicing' ), |
|
| 339 | + 'SE' => __( 'Sevilla', 'invoicing' ), |
|
| 340 | + 'SO' => __( 'Soria', 'invoicing' ), |
|
| 341 | + 'T' => __( 'Tarragona', 'invoicing' ), |
|
| 342 | + 'TE' => __( 'Teruel', 'invoicing' ), |
|
| 343 | + 'TO' => __( 'Toledo', 'invoicing' ), |
|
| 344 | + 'V' => __( 'Valencia', 'invoicing' ), |
|
| 345 | + 'VA' => __( 'Valladolid', 'invoicing' ), |
|
| 346 | + 'BI' => __( 'Bizkaia', 'invoicing' ), |
|
| 347 | + 'ZA' => __( 'Zamora', 'invoicing' ), |
|
| 348 | + 'Z' => __( 'Zaragoza', 'invoicing' ), |
|
| 349 | + ), |
|
| 350 | + 'FI' => array(), |
|
| 351 | + 'FR' => array(), |
|
| 352 | + 'GP' => array(), |
|
| 353 | + 'GR' => array( // Greek Regions. |
|
| 354 | + 'I' => __( 'Αττική', 'invoicing' ), |
|
| 355 | + 'A' => __( 'Ανατολική Μακεδονία και Θράκη', 'invoicing' ), |
|
| 356 | + 'B' => __( 'Κεντρική Μακεδονία', 'invoicing' ), |
|
| 357 | + 'C' => __( 'Δυτική Μακεδονία', 'invoicing' ), |
|
| 358 | + 'D' => __( 'Ήπειρος', 'invoicing' ), |
|
| 359 | + 'E' => __( 'Θεσσαλία', 'invoicing' ), |
|
| 360 | + 'F' => __( 'Ιόνιοι Νήσοι', 'invoicing' ), |
|
| 361 | + 'G' => __( 'Δυτική Ελλάδα', 'invoicing' ), |
|
| 362 | + 'H' => __( 'Στερεά Ελλάδα', 'invoicing' ), |
|
| 363 | + 'J' => __( 'Πελοπόννησος', 'invoicing' ), |
|
| 364 | + 'K' => __( 'Βόρειο Αιγαίο', 'invoicing' ), |
|
| 365 | + 'L' => __( 'Νότιο Αιγαίο', 'invoicing' ), |
|
| 366 | + 'M' => __( 'Κρήτη', 'invoicing' ), |
|
| 367 | + ), |
|
| 368 | + 'GF' => array(), |
|
| 369 | + 'HK' => array( // Hong Kong states. |
|
| 370 | + 'HONG KONG' => __( 'Hong Kong Island', 'invoicing' ), |
|
| 371 | + 'KOWLOON' => __( 'Kowloon', 'invoicing' ), |
|
| 372 | + 'NEW TERRITORIES' => __( 'New Territories', 'invoicing' ), |
|
| 373 | + ), |
|
| 374 | + 'HU' => array( // Hungary states. |
|
| 375 | + 'BK' => __( 'Bács-Kiskun', 'invoicing' ), |
|
| 376 | + 'BE' => __( 'Békés', 'invoicing' ), |
|
| 377 | + 'BA' => __( 'Baranya', 'invoicing' ), |
|
| 378 | + 'BZ' => __( 'Borsod-Abaúj-Zemplén', 'invoicing' ), |
|
| 379 | + 'BU' => __( 'Budapest', 'invoicing' ), |
|
| 380 | + 'CS' => __( 'Csongrád', 'invoicing' ), |
|
| 381 | + 'FE' => __( 'Fejér', 'invoicing' ), |
|
| 382 | + 'GS' => __( 'Győr-Moson-Sopron', 'invoicing' ), |
|
| 383 | + 'HB' => __( 'Hajdú-Bihar', 'invoicing' ), |
|
| 384 | + 'HE' => __( 'Heves', 'invoicing' ), |
|
| 385 | + 'JN' => __( 'Jász-Nagykun-Szolnok', 'invoicing' ), |
|
| 386 | + 'KE' => __( 'Komárom-Esztergom', 'invoicing' ), |
|
| 387 | + 'NO' => __( 'Nógrád', 'invoicing' ), |
|
| 388 | + 'PE' => __( 'Pest', 'invoicing' ), |
|
| 389 | + 'SO' => __( 'Somogy', 'invoicing' ), |
|
| 390 | + 'SZ' => __( 'Szabolcs-Szatmár-Bereg', 'invoicing' ), |
|
| 391 | + 'TO' => __( 'Tolna', 'invoicing' ), |
|
| 392 | + 'VA' => __( 'Vas', 'invoicing' ), |
|
| 393 | + 'VE' => __( 'Veszprém', 'invoicing' ), |
|
| 394 | + 'ZA' => __( 'Zala', 'invoicing' ), |
|
| 395 | + ), |
|
| 396 | + 'ID' => array( // Indonesia Provinces. |
|
| 397 | + 'AC' => __( 'Daerah Istimewa Aceh', 'invoicing' ), |
|
| 398 | + 'SU' => __( 'Sumatera Utara', 'invoicing' ), |
|
| 399 | + 'SB' => __( 'Sumatera Barat', 'invoicing' ), |
|
| 400 | + 'RI' => __( 'Riau', 'invoicing' ), |
|
| 401 | + 'KR' => __( 'Kepulauan Riau', 'invoicing' ), |
|
| 402 | + 'JA' => __( 'Jambi', 'invoicing' ), |
|
| 403 | + 'SS' => __( 'Sumatera Selatan', 'invoicing' ), |
|
| 404 | + 'BB' => __( 'Bangka Belitung', 'invoicing' ), |
|
| 405 | + 'BE' => __( 'Bengkulu', 'invoicing' ), |
|
| 406 | + 'LA' => __( 'Lampung', 'invoicing' ), |
|
| 407 | + 'JK' => __( 'DKI Jakarta', 'invoicing' ), |
|
| 408 | + 'JB' => __( 'Jawa Barat', 'invoicing' ), |
|
| 409 | + 'BT' => __( 'Banten', 'invoicing' ), |
|
| 410 | + 'JT' => __( 'Jawa Tengah', 'invoicing' ), |
|
| 411 | + 'JI' => __( 'Jawa Timur', 'invoicing' ), |
|
| 412 | + 'YO' => __( 'Daerah Istimewa Yogyakarta', 'invoicing' ), |
|
| 413 | + 'BA' => __( 'Bali', 'invoicing' ), |
|
| 414 | + 'NB' => __( 'Nusa Tenggara Barat', 'invoicing' ), |
|
| 415 | + 'NT' => __( 'Nusa Tenggara Timur', 'invoicing' ), |
|
| 416 | + 'KB' => __( 'Kalimantan Barat', 'invoicing' ), |
|
| 417 | + 'KT' => __( 'Kalimantan Tengah', 'invoicing' ), |
|
| 418 | + 'KI' => __( 'Kalimantan Timur', 'invoicing' ), |
|
| 419 | + 'KS' => __( 'Kalimantan Selatan', 'invoicing' ), |
|
| 420 | + 'KU' => __( 'Kalimantan Utara', 'invoicing' ), |
|
| 421 | + 'SA' => __( 'Sulawesi Utara', 'invoicing' ), |
|
| 422 | + 'ST' => __( 'Sulawesi Tengah', 'invoicing' ), |
|
| 423 | + 'SG' => __( 'Sulawesi Tenggara', 'invoicing' ), |
|
| 424 | + 'SR' => __( 'Sulawesi Barat', 'invoicing' ), |
|
| 425 | + 'SN' => __( 'Sulawesi Selatan', 'invoicing' ), |
|
| 426 | + 'GO' => __( 'Gorontalo', 'invoicing' ), |
|
| 427 | + 'MA' => __( 'Maluku', 'invoicing' ), |
|
| 428 | + 'MU' => __( 'Maluku Utara', 'invoicing' ), |
|
| 429 | + 'PA' => __( 'Papua', 'invoicing' ), |
|
| 430 | + 'PB' => __( 'Papua Barat', 'invoicing' ), |
|
| 431 | + ), |
|
| 432 | + 'IE' => array( // Republic of Ireland. |
|
| 433 | + 'CW' => __( 'Carlow', 'invoicing' ), |
|
| 434 | + 'CN' => __( 'Cavan', 'invoicing' ), |
|
| 435 | + 'CE' => __( 'Clare', 'invoicing' ), |
|
| 436 | + 'CO' => __( 'Cork', 'invoicing' ), |
|
| 437 | + 'DL' => __( 'Donegal', 'invoicing' ), |
|
| 438 | + 'D' => __( 'Dublin', 'invoicing' ), |
|
| 439 | + 'G' => __( 'Galway', 'invoicing' ), |
|
| 440 | + 'KY' => __( 'Kerry', 'invoicing' ), |
|
| 441 | + 'KE' => __( 'Kildare', 'invoicing' ), |
|
| 442 | + 'KK' => __( 'Kilkenny', 'invoicing' ), |
|
| 443 | + 'LS' => __( 'Laois', 'invoicing' ), |
|
| 444 | + 'LM' => __( 'Leitrim', 'invoicing' ), |
|
| 445 | + 'LK' => __( 'Limerick', 'invoicing' ), |
|
| 446 | + 'LD' => __( 'Longford', 'invoicing' ), |
|
| 447 | + 'LH' => __( 'Louth', 'invoicing' ), |
|
| 448 | + 'MO' => __( 'Mayo', 'invoicing' ), |
|
| 449 | + 'MH' => __( 'Meath', 'invoicing' ), |
|
| 450 | + 'MN' => __( 'Monaghan', 'invoicing' ), |
|
| 451 | + 'OY' => __( 'Offaly', 'invoicing' ), |
|
| 452 | + 'RN' => __( 'Roscommon', 'invoicing' ), |
|
| 453 | + 'SO' => __( 'Sligo', 'invoicing' ), |
|
| 454 | + 'TA' => __( 'Tipperary', 'invoicing' ), |
|
| 455 | + 'WD' => __( 'Waterford', 'invoicing' ), |
|
| 456 | + 'WH' => __( 'Westmeath', 'invoicing' ), |
|
| 457 | + 'WX' => __( 'Wexford', 'invoicing' ), |
|
| 458 | + 'WW' => __( 'Wicklow', 'invoicing' ), |
|
| 459 | + ), |
|
| 460 | + 'IN' => array( // Indian states. |
|
| 461 | + 'AP' => __( 'Andhra Pradesh', 'invoicing' ), |
|
| 462 | + 'AR' => __( 'Arunachal Pradesh', 'invoicing' ), |
|
| 463 | + 'AS' => __( 'Assam', 'invoicing' ), |
|
| 464 | + 'BR' => __( 'Bihar', 'invoicing' ), |
|
| 465 | + 'CT' => __( 'Chhattisgarh', 'invoicing' ), |
|
| 466 | + 'GA' => __( 'Goa', 'invoicing' ), |
|
| 467 | + 'GJ' => __( 'Gujarat', 'invoicing' ), |
|
| 468 | + 'HR' => __( 'Haryana', 'invoicing' ), |
|
| 469 | + 'HP' => __( 'Himachal Pradesh', 'invoicing' ), |
|
| 470 | + 'JK' => __( 'Jammu and Kashmir', 'invoicing' ), |
|
| 471 | + 'JH' => __( 'Jharkhand', 'invoicing' ), |
|
| 472 | + 'KA' => __( 'Karnataka', 'invoicing' ), |
|
| 473 | + 'KL' => __( 'Kerala', 'invoicing' ), |
|
| 474 | + 'MP' => __( 'Madhya Pradesh', 'invoicing' ), |
|
| 475 | + 'MH' => __( 'Maharashtra', 'invoicing' ), |
|
| 476 | + 'MN' => __( 'Manipur', 'invoicing' ), |
|
| 477 | + 'ML' => __( 'Meghalaya', 'invoicing' ), |
|
| 478 | + 'MZ' => __( 'Mizoram', 'invoicing' ), |
|
| 479 | + 'NL' => __( 'Nagaland', 'invoicing' ), |
|
| 480 | + 'OR' => __( 'Orissa', 'invoicing' ), |
|
| 481 | + 'PB' => __( 'Punjab', 'invoicing' ), |
|
| 482 | + 'RJ' => __( 'Rajasthan', 'invoicing' ), |
|
| 483 | + 'SK' => __( 'Sikkim', 'invoicing' ), |
|
| 484 | + 'TN' => __( 'Tamil Nadu', 'invoicing' ), |
|
| 485 | + 'TS' => __( 'Telangana', 'invoicing' ), |
|
| 486 | + 'TR' => __( 'Tripura', 'invoicing' ), |
|
| 487 | + 'UK' => __( 'Uttarakhand', 'invoicing' ), |
|
| 488 | + 'UP' => __( 'Uttar Pradesh', 'invoicing' ), |
|
| 489 | + 'WB' => __( 'West Bengal', 'invoicing' ), |
|
| 490 | + 'AN' => __( 'Andaman and Nicobar Islands', 'invoicing' ), |
|
| 491 | + 'CH' => __( 'Chandigarh', 'invoicing' ), |
|
| 492 | + 'DN' => __( 'Dadra and Nagar Haveli', 'invoicing' ), |
|
| 493 | + 'DD' => __( 'Daman and Diu', 'invoicing' ), |
|
| 494 | + 'DL' => __( 'Delhi', 'invoicing' ), |
|
| 495 | + 'LD' => __( 'Lakshadeep', 'invoicing' ), |
|
| 496 | + 'PY' => __( 'Pondicherry (Puducherry)', 'invoicing' ), |
|
| 497 | + ), |
|
| 498 | + 'IR' => array( // Iran States. |
|
| 499 | + 'KHZ' => __( 'Khuzestan (خوزستان)', 'invoicing' ), |
|
| 500 | + 'THR' => __( 'Tehran (تهران)', 'invoicing' ), |
|
| 501 | + 'ILM' => __( 'Ilaam (ایلام)', 'invoicing' ), |
|
| 502 | + 'BHR' => __( 'Bushehr (بوشهر)', 'invoicing' ), |
|
| 503 | + 'ADL' => __( 'Ardabil (اردبیل)', 'invoicing' ), |
|
| 504 | + 'ESF' => __( 'Isfahan (اصفهان)', 'invoicing' ), |
|
| 505 | + 'YZD' => __( 'Yazd (یزد)', 'invoicing' ), |
|
| 506 | + 'KRH' => __( 'Kermanshah (کرمانشاه)', 'invoicing' ), |
|
| 507 | + 'KRN' => __( 'Kerman (کرمان)', 'invoicing' ), |
|
| 508 | + 'HDN' => __( 'Hamadan (همدان)', 'invoicing' ), |
|
| 509 | + 'GZN' => __( 'Ghazvin (قزوین)', 'invoicing' ), |
|
| 510 | + 'ZJN' => __( 'Zanjan (زنجان)', 'invoicing' ), |
|
| 511 | + 'LRS' => __( 'Luristan (لرستان)', 'invoicing' ), |
|
| 512 | + 'ABZ' => __( 'Alborz (البرز)', 'invoicing' ), |
|
| 513 | + 'EAZ' => __( 'East Azarbaijan (آذربایجان شرقی)', 'invoicing' ), |
|
| 514 | + 'WAZ' => __( 'West Azarbaijan (آذربایجان غربی)', 'invoicing' ), |
|
| 515 | + 'CHB' => __( 'Chaharmahal and Bakhtiari (چهارمحال و بختیاری)', 'invoicing' ), |
|
| 516 | + 'SKH' => __( 'South Khorasan (خراسان جنوبی)', 'invoicing' ), |
|
| 517 | + 'RKH' => __( 'Razavi Khorasan (خراسان رضوی)', 'invoicing' ), |
|
| 518 | + 'NKH' => __( 'North Khorasan (خراسان شمالی)', 'invoicing' ), |
|
| 519 | + 'SMN' => __( 'Semnan (سمنان)', 'invoicing' ), |
|
| 520 | + 'FRS' => __( 'Fars (فارس)', 'invoicing' ), |
|
| 521 | + 'QHM' => __( 'Qom (قم)', 'invoicing' ), |
|
| 522 | + 'KRD' => __( 'Kurdistan / کردستان)', 'invoicing' ), |
|
| 523 | + 'KBD' => __( 'Kohgiluyeh and BoyerAhmad (کهگیلوییه و بویراحمد)', 'invoicing' ), |
|
| 524 | + 'GLS' => __( 'Golestan (گلستان)', 'invoicing' ), |
|
| 525 | + 'GIL' => __( 'Gilan (گیلان)', 'invoicing' ), |
|
| 526 | + 'MZN' => __( 'Mazandaran (مازندران)', 'invoicing' ), |
|
| 527 | + 'MKZ' => __( 'Markazi (مرکزی)', 'invoicing' ), |
|
| 528 | + 'HRZ' => __( 'Hormozgan (هرمزگان)', 'invoicing' ), |
|
| 529 | + 'SBN' => __( 'Sistan and Baluchestan (سیستان و بلوچستان)', 'invoicing' ), |
|
| 530 | + ), |
|
| 531 | + 'IS' => array(), |
|
| 532 | + 'IT' => array( // Italy Provinces. |
|
| 533 | + 'AG' => __( 'Agrigento', 'invoicing' ), |
|
| 534 | + 'AL' => __( 'Alessandria', 'invoicing' ), |
|
| 535 | + 'AN' => __( 'Ancona', 'invoicing' ), |
|
| 536 | + 'AO' => __( 'Aosta', 'invoicing' ), |
|
| 537 | + 'AR' => __( 'Arezzo', 'invoicing' ), |
|
| 538 | + 'AP' => __( 'Ascoli Piceno', 'invoicing' ), |
|
| 539 | + 'AT' => __( 'Asti', 'invoicing' ), |
|
| 540 | + 'AV' => __( 'Avellino', 'invoicing' ), |
|
| 541 | + 'BA' => __( 'Bari', 'invoicing' ), |
|
| 542 | + 'BT' => __( 'Barletta-Andria-Trani', 'invoicing' ), |
|
| 543 | + 'BL' => __( 'Belluno', 'invoicing' ), |
|
| 544 | + 'BN' => __( 'Benevento', 'invoicing' ), |
|
| 545 | + 'BG' => __( 'Bergamo', 'invoicing' ), |
|
| 546 | + 'BI' => __( 'Biella', 'invoicing' ), |
|
| 547 | + 'BO' => __( 'Bologna', 'invoicing' ), |
|
| 548 | + 'BZ' => __( 'Bolzano', 'invoicing' ), |
|
| 549 | + 'BS' => __( 'Brescia', 'invoicing' ), |
|
| 550 | + 'BR' => __( 'Brindisi', 'invoicing' ), |
|
| 551 | + 'CA' => __( 'Cagliari', 'invoicing' ), |
|
| 552 | + 'CL' => __( 'Caltanissetta', 'invoicing' ), |
|
| 553 | + 'CB' => __( 'Campobasso', 'invoicing' ), |
|
| 554 | + 'CE' => __( 'Caserta', 'invoicing' ), |
|
| 555 | + 'CT' => __( 'Catania', 'invoicing' ), |
|
| 556 | + 'CZ' => __( 'Catanzaro', 'invoicing' ), |
|
| 557 | + 'CH' => __( 'Chieti', 'invoicing' ), |
|
| 558 | + 'CO' => __( 'Como', 'invoicing' ), |
|
| 559 | + 'CS' => __( 'Cosenza', 'invoicing' ), |
|
| 560 | + 'CR' => __( 'Cremona', 'invoicing' ), |
|
| 561 | + 'KR' => __( 'Crotone', 'invoicing' ), |
|
| 562 | + 'CN' => __( 'Cuneo', 'invoicing' ), |
|
| 563 | + 'EN' => __( 'Enna', 'invoicing' ), |
|
| 564 | + 'FM' => __( 'Fermo', 'invoicing' ), |
|
| 565 | + 'FE' => __( 'Ferrara', 'invoicing' ), |
|
| 566 | + 'FI' => __( 'Firenze', 'invoicing' ), |
|
| 567 | + 'FG' => __( 'Foggia', 'invoicing' ), |
|
| 568 | + 'FC' => __( 'Forlì-Cesena', 'invoicing' ), |
|
| 569 | + 'FR' => __( 'Frosinone', 'invoicing' ), |
|
| 570 | + 'GE' => __( 'Genova', 'invoicing' ), |
|
| 571 | + 'GO' => __( 'Gorizia', 'invoicing' ), |
|
| 572 | + 'GR' => __( 'Grosseto', 'invoicing' ), |
|
| 573 | + 'IM' => __( 'Imperia', 'invoicing' ), |
|
| 574 | + 'IS' => __( 'Isernia', 'invoicing' ), |
|
| 575 | + 'SP' => __( 'La Spezia', 'invoicing' ), |
|
| 576 | + 'AQ' => __( "L'Aquila", 'invoicing' ), |
|
| 577 | + 'LT' => __( 'Latina', 'invoicing' ), |
|
| 578 | + 'LE' => __( 'Lecce', 'invoicing' ), |
|
| 579 | + 'LC' => __( 'Lecco', 'invoicing' ), |
|
| 580 | + 'LI' => __( 'Livorno', 'invoicing' ), |
|
| 581 | + 'LO' => __( 'Lodi', 'invoicing' ), |
|
| 582 | + 'LU' => __( 'Lucca', 'invoicing' ), |
|
| 583 | + 'MC' => __( 'Macerata', 'invoicing' ), |
|
| 584 | + 'MN' => __( 'Mantova', 'invoicing' ), |
|
| 585 | + 'MS' => __( 'Massa-Carrara', 'invoicing' ), |
|
| 586 | + 'MT' => __( 'Matera', 'invoicing' ), |
|
| 587 | + 'ME' => __( 'Messina', 'invoicing' ), |
|
| 588 | + 'MI' => __( 'Milano', 'invoicing' ), |
|
| 589 | + 'MO' => __( 'Modena', 'invoicing' ), |
|
| 590 | + 'MB' => __( 'Monza e della Brianza', 'invoicing' ), |
|
| 591 | + 'NA' => __( 'Napoli', 'invoicing' ), |
|
| 592 | + 'NO' => __( 'Novara', 'invoicing' ), |
|
| 593 | + 'NU' => __( 'Nuoro', 'invoicing' ), |
|
| 594 | + 'OR' => __( 'Oristano', 'invoicing' ), |
|
| 595 | + 'PD' => __( 'Padova', 'invoicing' ), |
|
| 596 | + 'PA' => __( 'Palermo', 'invoicing' ), |
|
| 597 | + 'PR' => __( 'Parma', 'invoicing' ), |
|
| 598 | + 'PV' => __( 'Pavia', 'invoicing' ), |
|
| 599 | + 'PG' => __( 'Perugia', 'invoicing' ), |
|
| 600 | + 'PU' => __( 'Pesaro e Urbino', 'invoicing' ), |
|
| 601 | + 'PE' => __( 'Pescara', 'invoicing' ), |
|
| 602 | + 'PC' => __( 'Piacenza', 'invoicing' ), |
|
| 603 | + 'PI' => __( 'Pisa', 'invoicing' ), |
|
| 604 | + 'PT' => __( 'Pistoia', 'invoicing' ), |
|
| 605 | + 'PN' => __( 'Pordenone', 'invoicing' ), |
|
| 606 | + 'PZ' => __( 'Potenza', 'invoicing' ), |
|
| 607 | + 'PO' => __( 'Prato', 'invoicing' ), |
|
| 608 | + 'RG' => __( 'Ragusa', 'invoicing' ), |
|
| 609 | + 'RA' => __( 'Ravenna', 'invoicing' ), |
|
| 610 | + 'RC' => __( 'Reggio Calabria', 'invoicing' ), |
|
| 611 | + 'RE' => __( 'Reggio Emilia', 'invoicing' ), |
|
| 612 | + 'RI' => __( 'Rieti', 'invoicing' ), |
|
| 613 | + 'RN' => __( 'Rimini', 'invoicing' ), |
|
| 614 | + 'RM' => __( 'Roma', 'invoicing' ), |
|
| 615 | + 'RO' => __( 'Rovigo', 'invoicing' ), |
|
| 616 | + 'SA' => __( 'Salerno', 'invoicing' ), |
|
| 617 | + 'SS' => __( 'Sassari', 'invoicing' ), |
|
| 618 | + 'SV' => __( 'Savona', 'invoicing' ), |
|
| 619 | + 'SI' => __( 'Siena', 'invoicing' ), |
|
| 620 | + 'SR' => __( 'Siracusa', 'invoicing' ), |
|
| 621 | + 'SO' => __( 'Sondrio', 'invoicing' ), |
|
| 622 | + 'SU' => __( 'Sud Sardegna', 'invoicing' ), |
|
| 623 | + 'TA' => __( 'Taranto', 'invoicing' ), |
|
| 624 | + 'TE' => __( 'Teramo', 'invoicing' ), |
|
| 625 | + 'TR' => __( 'Terni', 'invoicing' ), |
|
| 626 | + 'TO' => __( 'Torino', 'invoicing' ), |
|
| 627 | + 'TP' => __( 'Trapani', 'invoicing' ), |
|
| 628 | + 'TN' => __( 'Trento', 'invoicing' ), |
|
| 629 | + 'TV' => __( 'Treviso', 'invoicing' ), |
|
| 630 | + 'TS' => __( 'Trieste', 'invoicing' ), |
|
| 631 | + 'UD' => __( 'Udine', 'invoicing' ), |
|
| 632 | + 'VA' => __( 'Varese', 'invoicing' ), |
|
| 633 | + 'VE' => __( 'Venezia', 'invoicing' ), |
|
| 634 | + 'VB' => __( 'Verbano-Cusio-Ossola', 'invoicing' ), |
|
| 635 | + 'VC' => __( 'Vercelli', 'invoicing' ), |
|
| 636 | + 'VR' => __( 'Verona', 'invoicing' ), |
|
| 637 | + 'VV' => __( 'Vibo Valentia', 'invoicing' ), |
|
| 638 | + 'VI' => __( 'Vicenza', 'invoicing' ), |
|
| 639 | + 'VT' => __( 'Viterbo', 'invoicing' ), |
|
| 640 | + ), |
|
| 641 | + 'IL' => array(), |
|
| 642 | + 'IM' => array(), |
|
| 643 | 643 | |
| 644 | - /** |
|
| 645 | - * Japan States. |
|
| 646 | - * |
|
| 647 | - * English notation of prefectures conform to the notation of Japan Post. |
|
| 648 | - * The suffix corresponds with the Japanese translation file. |
|
| 649 | - */ |
|
| 650 | - 'JP' => array( |
|
| 651 | - 'JP01' => __( 'Hokkaido', 'invoicing' ), |
|
| 652 | - 'JP02' => __( 'Aomori', 'invoicing' ), |
|
| 653 | - 'JP03' => __( 'Iwate', 'invoicing' ), |
|
| 654 | - 'JP04' => __( 'Miyagi', 'invoicing' ), |
|
| 655 | - 'JP05' => __( 'Akita', 'invoicing' ), |
|
| 656 | - 'JP06' => __( 'Yamagata', 'invoicing' ), |
|
| 657 | - 'JP07' => __( 'Fukushima', 'invoicing' ), |
|
| 658 | - 'JP08' => __( 'Ibaraki', 'invoicing' ), |
|
| 659 | - 'JP09' => __( 'Tochigi', 'invoicing' ), |
|
| 660 | - 'JP10' => __( 'Gunma', 'invoicing' ), |
|
| 661 | - 'JP11' => __( 'Saitama', 'invoicing' ), |
|
| 662 | - 'JP12' => __( 'Chiba', 'invoicing' ), |
|
| 663 | - 'JP13' => __( 'Tokyo', 'invoicing' ), |
|
| 664 | - 'JP14' => __( 'Kanagawa', 'invoicing' ), |
|
| 665 | - 'JP15' => __( 'Niigata', 'invoicing' ), |
|
| 666 | - 'JP16' => __( 'Toyama', 'invoicing' ), |
|
| 667 | - 'JP17' => __( 'Ishikawa', 'invoicing' ), |
|
| 668 | - 'JP18' => __( 'Fukui', 'invoicing' ), |
|
| 669 | - 'JP19' => __( 'Yamanashi', 'invoicing' ), |
|
| 670 | - 'JP20' => __( 'Nagano', 'invoicing' ), |
|
| 671 | - 'JP21' => __( 'Gifu', 'invoicing' ), |
|
| 672 | - 'JP22' => __( 'Shizuoka', 'invoicing' ), |
|
| 673 | - 'JP23' => __( 'Aichi', 'invoicing' ), |
|
| 674 | - 'JP24' => __( 'Mie', 'invoicing' ), |
|
| 675 | - 'JP25' => __( 'Shiga', 'invoicing' ), |
|
| 676 | - 'JP26' => __( 'Kyoto', 'invoicing' ), |
|
| 677 | - 'JP27' => __( 'Osaka', 'invoicing' ), |
|
| 678 | - 'JP28' => __( 'Hyogo', 'invoicing' ), |
|
| 679 | - 'JP29' => __( 'Nara', 'invoicing' ), |
|
| 680 | - 'JP30' => __( 'Wakayama', 'invoicing' ), |
|
| 681 | - 'JP31' => __( 'Tottori', 'invoicing' ), |
|
| 682 | - 'JP32' => __( 'Shimane', 'invoicing' ), |
|
| 683 | - 'JP33' => __( 'Okayama', 'invoicing' ), |
|
| 684 | - 'JP34' => __( 'Hiroshima', 'invoicing' ), |
|
| 685 | - 'JP35' => __( 'Yamaguchi', 'invoicing' ), |
|
| 686 | - 'JP36' => __( 'Tokushima', 'invoicing' ), |
|
| 687 | - 'JP37' => __( 'Kagawa', 'invoicing' ), |
|
| 688 | - 'JP38' => __( 'Ehime', 'invoicing' ), |
|
| 689 | - 'JP39' => __( 'Kochi', 'invoicing' ), |
|
| 690 | - 'JP40' => __( 'Fukuoka', 'invoicing' ), |
|
| 691 | - 'JP41' => __( 'Saga', 'invoicing' ), |
|
| 692 | - 'JP42' => __( 'Nagasaki', 'invoicing' ), |
|
| 693 | - 'JP43' => __( 'Kumamoto', 'invoicing' ), |
|
| 694 | - 'JP44' => __( 'Oita', 'invoicing' ), |
|
| 695 | - 'JP45' => __( 'Miyazaki', 'invoicing' ), |
|
| 696 | - 'JP46' => __( 'Kagoshima', 'invoicing' ), |
|
| 697 | - 'JP47' => __( 'Okinawa', 'invoicing' ), |
|
| 698 | - ), |
|
| 699 | - 'KE' => array( // Kenya Counties. |
|
| 700 | - '1' => __( 'Mombasa', 'invoicing' ), |
|
| 701 | - '2' => __( 'Kwale', 'invoicing' ), |
|
| 702 | - '3' => __( 'Kilifi', 'invoicing' ), |
|
| 703 | - '4' => __( 'Tana River', 'invoicing' ), |
|
| 704 | - '5' => __( 'Lamu', 'invoicing' ), |
|
| 705 | - '6' => __( 'Taita-Taveta', 'invoicing' ), |
|
| 706 | - '7' => __( 'Garissa', 'invoicing' ), |
|
| 707 | - '8' => __( 'Wajir', 'invoicing' ), |
|
| 708 | - '9' => __( 'Mandera', 'invoicing' ), |
|
| 709 | - '10' => __( 'Marsabit', 'invoicing' ), |
|
| 710 | - '11' => __( 'Isiolo', 'invoicing' ), |
|
| 711 | - '12' => __( 'Meru', 'invoicing' ), |
|
| 712 | - '13' => __( 'Tharaka-Nithi', 'invoicing' ), |
|
| 713 | - '14' => __( 'Embu', 'invoicing' ), |
|
| 714 | - '15' => __( 'Kitui', 'invoicing' ), |
|
| 715 | - '16' => __( 'Machakos', 'invoicing' ), |
|
| 716 | - '17' => __( 'Makueni', 'invoicing' ), |
|
| 717 | - '18' => __( 'Nyandarua', 'invoicing' ), |
|
| 718 | - '19' => __( 'Nyeri', 'invoicing' ), |
|
| 719 | - '20' => __( 'Kirinyaga', 'invoicing' ), |
|
| 720 | - '21' => __( "Murang'a", 'invoicing' ), |
|
| 721 | - '22' => __( 'Kiambu', 'invoicing' ), |
|
| 722 | - '23' => __( 'Turkana', 'invoicing' ), |
|
| 723 | - '24' => __( 'West Pokot', 'invoicing' ), |
|
| 724 | - '25' => __( 'Samburu', 'invoicing' ), |
|
| 725 | - '26' => __( 'Trans-Nzoia', 'invoicing' ), |
|
| 726 | - '27' => __( 'Uasin Gishu', 'invoicing' ), |
|
| 727 | - '28' => __( 'Elgeyo-Marakwet', 'invoicing' ), |
|
| 728 | - '29' => __( 'Nandi', 'invoicing' ), |
|
| 729 | - '30' => __( 'Baringo', 'invoicing' ), |
|
| 730 | - '31' => __( 'Laikipia', 'invoicing' ), |
|
| 731 | - '32' => __( 'Nakuru', 'invoicing' ), |
|
| 732 | - '33' => __( 'Narok', 'invoicing' ), |
|
| 733 | - '34' => __( 'Kajiado', 'invoicing' ), |
|
| 734 | - '35' => __( 'Kericho', 'invoicing' ), |
|
| 735 | - '36' => __( 'Bomet', 'invoicing' ), |
|
| 736 | - '37' => __( 'Kakamega', 'invoicing' ), |
|
| 737 | - '38' => __( 'Vihiga', 'invoicing' ), |
|
| 738 | - '39' => __( 'Bungoma', 'invoicing' ), |
|
| 739 | - '40' => __( 'Busia', 'invoicing' ), |
|
| 740 | - '41' => __( 'Siaya', 'invoicing' ), |
|
| 741 | - '42' => __( 'Kisumu', 'invoicing' ), |
|
| 742 | - '43' => __( 'Homa bay', 'invoicing' ), |
|
| 743 | - '44' => __( 'Migori', 'invoicing' ), |
|
| 744 | - '45' => __( 'Kisii', 'invoicing' ), |
|
| 745 | - '46' => __( 'Nyamira', 'invoicing' ), |
|
| 746 | - '47' => __( 'Nairobi', 'invoicing' ), |
|
| 747 | - ), |
|
| 748 | - 'KR' => array(), |
|
| 749 | - 'KW' => array(), |
|
| 750 | - 'LB' => array(), |
|
| 751 | - 'LR' => array( // Liberia provinces. |
|
| 752 | - 'BM' => __( 'Bomi', 'invoicing' ), |
|
| 753 | - 'BN' => __( 'Bong', 'invoicing' ), |
|
| 754 | - 'GA' => __( 'Gbarpolu', 'invoicing' ), |
|
| 755 | - 'GB' => __( 'Grand Bassa', 'invoicing' ), |
|
| 756 | - 'GC' => __( 'Grand Cape Mount', 'invoicing' ), |
|
| 757 | - 'GG' => __( 'Grand Gedeh', 'invoicing' ), |
|
| 758 | - 'GK' => __( 'Grand Kru', 'invoicing' ), |
|
| 759 | - 'LO' => __( 'Lofa', 'invoicing' ), |
|
| 760 | - 'MA' => __( 'Margibi', 'invoicing' ), |
|
| 761 | - 'MY' => __( 'Maryland', 'invoicing' ), |
|
| 762 | - 'MO' => __( 'Montserrado', 'invoicing' ), |
|
| 763 | - 'NM' => __( 'Nimba', 'invoicing' ), |
|
| 764 | - 'RV' => __( 'Rivercess', 'invoicing' ), |
|
| 765 | - 'RG' => __( 'River Gee', 'invoicing' ), |
|
| 766 | - 'SN' => __( 'Sinoe', 'invoicing' ), |
|
| 767 | - ), |
|
| 768 | - 'LU' => array(), |
|
| 769 | - 'MD' => array( // Moldova states. |
|
| 770 | - 'C' => __( 'Chișinău', 'invoicing' ), |
|
| 771 | - 'BL' => __( 'Bălți', 'invoicing' ), |
|
| 772 | - 'AN' => __( 'Anenii Noi', 'invoicing' ), |
|
| 773 | - 'BS' => __( 'Basarabeasca', 'invoicing' ), |
|
| 774 | - 'BR' => __( 'Briceni', 'invoicing' ), |
|
| 775 | - 'CH' => __( 'Cahul', 'invoicing' ), |
|
| 776 | - 'CT' => __( 'Cantemir', 'invoicing' ), |
|
| 777 | - 'CL' => __( 'Călărași', 'invoicing' ), |
|
| 778 | - 'CS' => __( 'Căușeni', 'invoicing' ), |
|
| 779 | - 'CM' => __( 'Cimișlia', 'invoicing' ), |
|
| 780 | - 'CR' => __( 'Criuleni', 'invoicing' ), |
|
| 781 | - 'DN' => __( 'Dondușeni', 'invoicing' ), |
|
| 782 | - 'DR' => __( 'Drochia', 'invoicing' ), |
|
| 783 | - 'DB' => __( 'Dubăsari', 'invoicing' ), |
|
| 784 | - 'ED' => __( 'Edineț', 'invoicing' ), |
|
| 785 | - 'FL' => __( 'Fălești', 'invoicing' ), |
|
| 786 | - 'FR' => __( 'Florești', 'invoicing' ), |
|
| 787 | - 'GE' => __( 'UTA Găgăuzia', 'invoicing' ), |
|
| 788 | - 'GL' => __( 'Glodeni', 'invoicing' ), |
|
| 789 | - 'HN' => __( 'Hîncești', 'invoicing' ), |
|
| 790 | - 'IL' => __( 'Ialoveni', 'invoicing' ), |
|
| 791 | - 'LV' => __( 'Leova', 'invoicing' ), |
|
| 792 | - 'NS' => __( 'Nisporeni', 'invoicing' ), |
|
| 793 | - 'OC' => __( 'Ocnița', 'invoicing' ), |
|
| 794 | - 'OR' => __( 'Orhei', 'invoicing' ), |
|
| 795 | - 'RZ' => __( 'Rezina', 'invoicing' ), |
|
| 796 | - 'RS' => __( 'Rîșcani', 'invoicing' ), |
|
| 797 | - 'SG' => __( 'Sîngerei', 'invoicing' ), |
|
| 798 | - 'SR' => __( 'Soroca', 'invoicing' ), |
|
| 799 | - 'ST' => __( 'Strășeni', 'invoicing' ), |
|
| 800 | - 'SD' => __( 'Șoldănești', 'invoicing' ), |
|
| 801 | - 'SV' => __( 'Ștefan Vodă', 'invoicing' ), |
|
| 802 | - 'TR' => __( 'Taraclia', 'invoicing' ), |
|
| 803 | - 'TL' => __( 'Telenești', 'invoicing' ), |
|
| 804 | - 'UN' => __( 'Ungheni', 'invoicing' ), |
|
| 805 | - ), |
|
| 806 | - 'MQ' => array(), |
|
| 807 | - 'MT' => array(), |
|
| 808 | - 'MX' => array( // Mexico States. |
|
| 809 | - 'DF' => __( 'Ciudad de México', 'invoicing' ), |
|
| 810 | - 'JA' => __( 'Jalisco', 'invoicing' ), |
|
| 811 | - 'NL' => __( 'Nuevo León', 'invoicing' ), |
|
| 812 | - 'AG' => __( 'Aguascalientes', 'invoicing' ), |
|
| 813 | - 'BC' => __( 'Baja California', 'invoicing' ), |
|
| 814 | - 'BS' => __( 'Baja California Sur', 'invoicing' ), |
|
| 815 | - 'CM' => __( 'Campeche', 'invoicing' ), |
|
| 816 | - 'CS' => __( 'Chiapas', 'invoicing' ), |
|
| 817 | - 'CH' => __( 'Chihuahua', 'invoicing' ), |
|
| 818 | - 'CO' => __( 'Coahuila', 'invoicing' ), |
|
| 819 | - 'CL' => __( 'Colima', 'invoicing' ), |
|
| 820 | - 'DG' => __( 'Durango', 'invoicing' ), |
|
| 821 | - 'GT' => __( 'Guanajuato', 'invoicing' ), |
|
| 822 | - 'GR' => __( 'Guerrero', 'invoicing' ), |
|
| 823 | - 'HG' => __( 'Hidalgo', 'invoicing' ), |
|
| 824 | - 'MX' => __( 'Estado de México', 'invoicing' ), |
|
| 825 | - 'MI' => __( 'Michoacán', 'invoicing' ), |
|
| 826 | - 'MO' => __( 'Morelos', 'invoicing' ), |
|
| 827 | - 'NA' => __( 'Nayarit', 'invoicing' ), |
|
| 828 | - 'OA' => __( 'Oaxaca', 'invoicing' ), |
|
| 829 | - 'PU' => __( 'Puebla', 'invoicing' ), |
|
| 830 | - 'QT' => __( 'Querétaro', 'invoicing' ), |
|
| 831 | - 'QR' => __( 'Quintana Roo', 'invoicing' ), |
|
| 832 | - 'SL' => __( 'San Luis Potosí', 'invoicing' ), |
|
| 833 | - 'SI' => __( 'Sinaloa', 'invoicing' ), |
|
| 834 | - 'SO' => __( 'Sonora', 'invoicing' ), |
|
| 835 | - 'TB' => __( 'Tabasco', 'invoicing' ), |
|
| 836 | - 'TM' => __( 'Tamaulipas', 'invoicing' ), |
|
| 837 | - 'TL' => __( 'Tlaxcala', 'invoicing' ), |
|
| 838 | - 'VE' => __( 'Veracruz', 'invoicing' ), |
|
| 839 | - 'YU' => __( 'Yucatán', 'invoicing' ), |
|
| 840 | - 'ZA' => __( 'Zacatecas', 'invoicing' ), |
|
| 841 | - ), |
|
| 842 | - 'MY' => array( // Malaysian states. |
|
| 843 | - 'JHR' => __( 'Johor', 'invoicing' ), |
|
| 844 | - 'KDH' => __( 'Kedah', 'invoicing' ), |
|
| 845 | - 'KTN' => __( 'Kelantan', 'invoicing' ), |
|
| 846 | - 'LBN' => __( 'Labuan', 'invoicing' ), |
|
| 847 | - 'MLK' => __( 'Malacca (Melaka)', 'invoicing' ), |
|
| 848 | - 'NSN' => __( 'Negeri Sembilan', 'invoicing' ), |
|
| 849 | - 'PHG' => __( 'Pahang', 'invoicing' ), |
|
| 850 | - 'PNG' => __( 'Penang (Pulau Pinang)', 'invoicing' ), |
|
| 851 | - 'PRK' => __( 'Perak', 'invoicing' ), |
|
| 852 | - 'PLS' => __( 'Perlis', 'invoicing' ), |
|
| 853 | - 'SBH' => __( 'Sabah', 'invoicing' ), |
|
| 854 | - 'SWK' => __( 'Sarawak', 'invoicing' ), |
|
| 855 | - 'SGR' => __( 'Selangor', 'invoicing' ), |
|
| 856 | - 'TRG' => __( 'Terengganu', 'invoicing' ), |
|
| 857 | - 'PJY' => __( 'Putrajaya', 'invoicing' ), |
|
| 858 | - 'KUL' => __( 'Kuala Lumpur', 'invoicing' ), |
|
| 859 | - ), |
|
| 860 | - 'NG' => array( // Nigerian provinces. |
|
| 861 | - 'AB' => __( 'Abia', 'invoicing' ), |
|
| 862 | - 'FC' => __( 'Abuja', 'invoicing' ), |
|
| 863 | - 'AD' => __( 'Adamawa', 'invoicing' ), |
|
| 864 | - 'AK' => __( 'Akwa Ibom', 'invoicing' ), |
|
| 865 | - 'AN' => __( 'Anambra', 'invoicing' ), |
|
| 866 | - 'BA' => __( 'Bauchi', 'invoicing' ), |
|
| 867 | - 'BY' => __( 'Bayelsa', 'invoicing' ), |
|
| 868 | - 'BE' => __( 'Benue', 'invoicing' ), |
|
| 869 | - 'BO' => __( 'Borno', 'invoicing' ), |
|
| 870 | - 'CR' => __( 'Cross River', 'invoicing' ), |
|
| 871 | - 'DE' => __( 'Delta', 'invoicing' ), |
|
| 872 | - 'EB' => __( 'Ebonyi', 'invoicing' ), |
|
| 873 | - 'ED' => __( 'Edo', 'invoicing' ), |
|
| 874 | - 'EK' => __( 'Ekiti', 'invoicing' ), |
|
| 875 | - 'EN' => __( 'Enugu', 'invoicing' ), |
|
| 876 | - 'GO' => __( 'Gombe', 'invoicing' ), |
|
| 877 | - 'IM' => __( 'Imo', 'invoicing' ), |
|
| 878 | - 'JI' => __( 'Jigawa', 'invoicing' ), |
|
| 879 | - 'KD' => __( 'Kaduna', 'invoicing' ), |
|
| 880 | - 'KN' => __( 'Kano', 'invoicing' ), |
|
| 881 | - 'KT' => __( 'Katsina', 'invoicing' ), |
|
| 882 | - 'KE' => __( 'Kebbi', 'invoicing' ), |
|
| 883 | - 'KO' => __( 'Kogi', 'invoicing' ), |
|
| 884 | - 'KW' => __( 'Kwara', 'invoicing' ), |
|
| 885 | - 'LA' => __( 'Lagos', 'invoicing' ), |
|
| 886 | - 'NA' => __( 'Nasarawa', 'invoicing' ), |
|
| 887 | - 'NI' => __( 'Niger', 'invoicing' ), |
|
| 888 | - 'OG' => __( 'Ogun', 'invoicing' ), |
|
| 889 | - 'ON' => __( 'Ondo', 'invoicing' ), |
|
| 890 | - 'OS' => __( 'Osun', 'invoicing' ), |
|
| 891 | - 'OY' => __( 'Oyo', 'invoicing' ), |
|
| 892 | - 'PL' => __( 'Plateau', 'invoicing' ), |
|
| 893 | - 'RI' => __( 'Rivers', 'invoicing' ), |
|
| 894 | - 'SO' => __( 'Sokoto', 'invoicing' ), |
|
| 895 | - 'TA' => __( 'Taraba', 'invoicing' ), |
|
| 896 | - 'YO' => __( 'Yobe', 'invoicing' ), |
|
| 897 | - 'ZA' => __( 'Zamfara', 'invoicing' ), |
|
| 898 | - ), |
|
| 899 | - 'NL' => array(), |
|
| 900 | - 'NO' => array(), |
|
| 901 | - 'NP' => array( // Nepal states (Zones). |
|
| 902 | - 'BAG' => __( 'Bagmati', 'invoicing' ), |
|
| 903 | - 'BHE' => __( 'Bheri', 'invoicing' ), |
|
| 904 | - 'DHA' => __( 'Dhaulagiri', 'invoicing' ), |
|
| 905 | - 'GAN' => __( 'Gandaki', 'invoicing' ), |
|
| 906 | - 'JAN' => __( 'Janakpur', 'invoicing' ), |
|
| 907 | - 'KAR' => __( 'Karnali', 'invoicing' ), |
|
| 908 | - 'KOS' => __( 'Koshi', 'invoicing' ), |
|
| 909 | - 'LUM' => __( 'Lumbini', 'invoicing' ), |
|
| 910 | - 'MAH' => __( 'Mahakali', 'invoicing' ), |
|
| 911 | - 'MEC' => __( 'Mechi', 'invoicing' ), |
|
| 912 | - 'NAR' => __( 'Narayani', 'invoicing' ), |
|
| 913 | - 'RAP' => __( 'Rapti', 'invoicing' ), |
|
| 914 | - 'SAG' => __( 'Sagarmatha', 'invoicing' ), |
|
| 915 | - 'SET' => __( 'Seti', 'invoicing' ), |
|
| 916 | - ), |
|
| 917 | - 'NZ' => array( // New Zealand States. |
|
| 918 | - 'NL' => __( 'Northland', 'invoicing' ), |
|
| 919 | - 'AK' => __( 'Auckland', 'invoicing' ), |
|
| 920 | - 'WA' => __( 'Waikato', 'invoicing' ), |
|
| 921 | - 'BP' => __( 'Bay of Plenty', 'invoicing' ), |
|
| 922 | - 'TK' => __( 'Taranaki', 'invoicing' ), |
|
| 923 | - 'GI' => __( 'Gisborne', 'invoicing' ), |
|
| 924 | - 'HB' => __( 'Hawke’s Bay', 'invoicing' ), |
|
| 925 | - 'MW' => __( 'Manawatu-Wanganui', 'invoicing' ), |
|
| 926 | - 'WE' => __( 'Wellington', 'invoicing' ), |
|
| 927 | - 'NS' => __( 'Nelson', 'invoicing' ), |
|
| 928 | - 'MB' => __( 'Marlborough', 'invoicing' ), |
|
| 929 | - 'TM' => __( 'Tasman', 'invoicing' ), |
|
| 930 | - 'WC' => __( 'West Coast', 'invoicing' ), |
|
| 931 | - 'CT' => __( 'Canterbury', 'invoicing' ), |
|
| 932 | - 'OT' => __( 'Otago', 'invoicing' ), |
|
| 933 | - 'SL' => __( 'Southland', 'invoicing' ), |
|
| 934 | - ), |
|
| 935 | - 'PE' => array( // Peru states. |
|
| 936 | - 'CAL' => __( 'El Callao', 'invoicing' ), |
|
| 937 | - 'LMA' => __( 'Municipalidad Metropolitana de Lima', 'invoicing' ), |
|
| 938 | - 'AMA' => __( 'Amazonas', 'invoicing' ), |
|
| 939 | - 'ANC' => __( 'Ancash', 'invoicing' ), |
|
| 940 | - 'APU' => __( 'Apurímac', 'invoicing' ), |
|
| 941 | - 'ARE' => __( 'Arequipa', 'invoicing' ), |
|
| 942 | - 'AYA' => __( 'Ayacucho', 'invoicing' ), |
|
| 943 | - 'CAJ' => __( 'Cajamarca', 'invoicing' ), |
|
| 944 | - 'CUS' => __( 'Cusco', 'invoicing' ), |
|
| 945 | - 'HUV' => __( 'Huancavelica', 'invoicing' ), |
|
| 946 | - 'HUC' => __( 'Huánuco', 'invoicing' ), |
|
| 947 | - 'ICA' => __( 'Ica', 'invoicing' ), |
|
| 948 | - 'JUN' => __( 'Junín', 'invoicing' ), |
|
| 949 | - 'LAL' => __( 'La Libertad', 'invoicing' ), |
|
| 950 | - 'LAM' => __( 'Lambayeque', 'invoicing' ), |
|
| 951 | - 'LIM' => __( 'Lima', 'invoicing' ), |
|
| 952 | - 'LOR' => __( 'Loreto', 'invoicing' ), |
|
| 953 | - 'MDD' => __( 'Madre de Dios', 'invoicing' ), |
|
| 954 | - 'MOQ' => __( 'Moquegua', 'invoicing' ), |
|
| 955 | - 'PAS' => __( 'Pasco', 'invoicing' ), |
|
| 956 | - 'PIU' => __( 'Piura', 'invoicing' ), |
|
| 957 | - 'PUN' => __( 'Puno', 'invoicing' ), |
|
| 958 | - 'SAM' => __( 'San Martín', 'invoicing' ), |
|
| 959 | - 'TAC' => __( 'Tacna', 'invoicing' ), |
|
| 960 | - 'TUM' => __( 'Tumbes', 'invoicing' ), |
|
| 961 | - 'UCA' => __( 'Ucayali', 'invoicing' ), |
|
| 962 | - ), |
|
| 644 | + /** |
|
| 645 | + * Japan States. |
|
| 646 | + * |
|
| 647 | + * English notation of prefectures conform to the notation of Japan Post. |
|
| 648 | + * The suffix corresponds with the Japanese translation file. |
|
| 649 | + */ |
|
| 650 | + 'JP' => array( |
|
| 651 | + 'JP01' => __( 'Hokkaido', 'invoicing' ), |
|
| 652 | + 'JP02' => __( 'Aomori', 'invoicing' ), |
|
| 653 | + 'JP03' => __( 'Iwate', 'invoicing' ), |
|
| 654 | + 'JP04' => __( 'Miyagi', 'invoicing' ), |
|
| 655 | + 'JP05' => __( 'Akita', 'invoicing' ), |
|
| 656 | + 'JP06' => __( 'Yamagata', 'invoicing' ), |
|
| 657 | + 'JP07' => __( 'Fukushima', 'invoicing' ), |
|
| 658 | + 'JP08' => __( 'Ibaraki', 'invoicing' ), |
|
| 659 | + 'JP09' => __( 'Tochigi', 'invoicing' ), |
|
| 660 | + 'JP10' => __( 'Gunma', 'invoicing' ), |
|
| 661 | + 'JP11' => __( 'Saitama', 'invoicing' ), |
|
| 662 | + 'JP12' => __( 'Chiba', 'invoicing' ), |
|
| 663 | + 'JP13' => __( 'Tokyo', 'invoicing' ), |
|
| 664 | + 'JP14' => __( 'Kanagawa', 'invoicing' ), |
|
| 665 | + 'JP15' => __( 'Niigata', 'invoicing' ), |
|
| 666 | + 'JP16' => __( 'Toyama', 'invoicing' ), |
|
| 667 | + 'JP17' => __( 'Ishikawa', 'invoicing' ), |
|
| 668 | + 'JP18' => __( 'Fukui', 'invoicing' ), |
|
| 669 | + 'JP19' => __( 'Yamanashi', 'invoicing' ), |
|
| 670 | + 'JP20' => __( 'Nagano', 'invoicing' ), |
|
| 671 | + 'JP21' => __( 'Gifu', 'invoicing' ), |
|
| 672 | + 'JP22' => __( 'Shizuoka', 'invoicing' ), |
|
| 673 | + 'JP23' => __( 'Aichi', 'invoicing' ), |
|
| 674 | + 'JP24' => __( 'Mie', 'invoicing' ), |
|
| 675 | + 'JP25' => __( 'Shiga', 'invoicing' ), |
|
| 676 | + 'JP26' => __( 'Kyoto', 'invoicing' ), |
|
| 677 | + 'JP27' => __( 'Osaka', 'invoicing' ), |
|
| 678 | + 'JP28' => __( 'Hyogo', 'invoicing' ), |
|
| 679 | + 'JP29' => __( 'Nara', 'invoicing' ), |
|
| 680 | + 'JP30' => __( 'Wakayama', 'invoicing' ), |
|
| 681 | + 'JP31' => __( 'Tottori', 'invoicing' ), |
|
| 682 | + 'JP32' => __( 'Shimane', 'invoicing' ), |
|
| 683 | + 'JP33' => __( 'Okayama', 'invoicing' ), |
|
| 684 | + 'JP34' => __( 'Hiroshima', 'invoicing' ), |
|
| 685 | + 'JP35' => __( 'Yamaguchi', 'invoicing' ), |
|
| 686 | + 'JP36' => __( 'Tokushima', 'invoicing' ), |
|
| 687 | + 'JP37' => __( 'Kagawa', 'invoicing' ), |
|
| 688 | + 'JP38' => __( 'Ehime', 'invoicing' ), |
|
| 689 | + 'JP39' => __( 'Kochi', 'invoicing' ), |
|
| 690 | + 'JP40' => __( 'Fukuoka', 'invoicing' ), |
|
| 691 | + 'JP41' => __( 'Saga', 'invoicing' ), |
|
| 692 | + 'JP42' => __( 'Nagasaki', 'invoicing' ), |
|
| 693 | + 'JP43' => __( 'Kumamoto', 'invoicing' ), |
|
| 694 | + 'JP44' => __( 'Oita', 'invoicing' ), |
|
| 695 | + 'JP45' => __( 'Miyazaki', 'invoicing' ), |
|
| 696 | + 'JP46' => __( 'Kagoshima', 'invoicing' ), |
|
| 697 | + 'JP47' => __( 'Okinawa', 'invoicing' ), |
|
| 698 | + ), |
|
| 699 | + 'KE' => array( // Kenya Counties. |
|
| 700 | + '1' => __( 'Mombasa', 'invoicing' ), |
|
| 701 | + '2' => __( 'Kwale', 'invoicing' ), |
|
| 702 | + '3' => __( 'Kilifi', 'invoicing' ), |
|
| 703 | + '4' => __( 'Tana River', 'invoicing' ), |
|
| 704 | + '5' => __( 'Lamu', 'invoicing' ), |
|
| 705 | + '6' => __( 'Taita-Taveta', 'invoicing' ), |
|
| 706 | + '7' => __( 'Garissa', 'invoicing' ), |
|
| 707 | + '8' => __( 'Wajir', 'invoicing' ), |
|
| 708 | + '9' => __( 'Mandera', 'invoicing' ), |
|
| 709 | + '10' => __( 'Marsabit', 'invoicing' ), |
|
| 710 | + '11' => __( 'Isiolo', 'invoicing' ), |
|
| 711 | + '12' => __( 'Meru', 'invoicing' ), |
|
| 712 | + '13' => __( 'Tharaka-Nithi', 'invoicing' ), |
|
| 713 | + '14' => __( 'Embu', 'invoicing' ), |
|
| 714 | + '15' => __( 'Kitui', 'invoicing' ), |
|
| 715 | + '16' => __( 'Machakos', 'invoicing' ), |
|
| 716 | + '17' => __( 'Makueni', 'invoicing' ), |
|
| 717 | + '18' => __( 'Nyandarua', 'invoicing' ), |
|
| 718 | + '19' => __( 'Nyeri', 'invoicing' ), |
|
| 719 | + '20' => __( 'Kirinyaga', 'invoicing' ), |
|
| 720 | + '21' => __( "Murang'a", 'invoicing' ), |
|
| 721 | + '22' => __( 'Kiambu', 'invoicing' ), |
|
| 722 | + '23' => __( 'Turkana', 'invoicing' ), |
|
| 723 | + '24' => __( 'West Pokot', 'invoicing' ), |
|
| 724 | + '25' => __( 'Samburu', 'invoicing' ), |
|
| 725 | + '26' => __( 'Trans-Nzoia', 'invoicing' ), |
|
| 726 | + '27' => __( 'Uasin Gishu', 'invoicing' ), |
|
| 727 | + '28' => __( 'Elgeyo-Marakwet', 'invoicing' ), |
|
| 728 | + '29' => __( 'Nandi', 'invoicing' ), |
|
| 729 | + '30' => __( 'Baringo', 'invoicing' ), |
|
| 730 | + '31' => __( 'Laikipia', 'invoicing' ), |
|
| 731 | + '32' => __( 'Nakuru', 'invoicing' ), |
|
| 732 | + '33' => __( 'Narok', 'invoicing' ), |
|
| 733 | + '34' => __( 'Kajiado', 'invoicing' ), |
|
| 734 | + '35' => __( 'Kericho', 'invoicing' ), |
|
| 735 | + '36' => __( 'Bomet', 'invoicing' ), |
|
| 736 | + '37' => __( 'Kakamega', 'invoicing' ), |
|
| 737 | + '38' => __( 'Vihiga', 'invoicing' ), |
|
| 738 | + '39' => __( 'Bungoma', 'invoicing' ), |
|
| 739 | + '40' => __( 'Busia', 'invoicing' ), |
|
| 740 | + '41' => __( 'Siaya', 'invoicing' ), |
|
| 741 | + '42' => __( 'Kisumu', 'invoicing' ), |
|
| 742 | + '43' => __( 'Homa bay', 'invoicing' ), |
|
| 743 | + '44' => __( 'Migori', 'invoicing' ), |
|
| 744 | + '45' => __( 'Kisii', 'invoicing' ), |
|
| 745 | + '46' => __( 'Nyamira', 'invoicing' ), |
|
| 746 | + '47' => __( 'Nairobi', 'invoicing' ), |
|
| 747 | + ), |
|
| 748 | + 'KR' => array(), |
|
| 749 | + 'KW' => array(), |
|
| 750 | + 'LB' => array(), |
|
| 751 | + 'LR' => array( // Liberia provinces. |
|
| 752 | + 'BM' => __( 'Bomi', 'invoicing' ), |
|
| 753 | + 'BN' => __( 'Bong', 'invoicing' ), |
|
| 754 | + 'GA' => __( 'Gbarpolu', 'invoicing' ), |
|
| 755 | + 'GB' => __( 'Grand Bassa', 'invoicing' ), |
|
| 756 | + 'GC' => __( 'Grand Cape Mount', 'invoicing' ), |
|
| 757 | + 'GG' => __( 'Grand Gedeh', 'invoicing' ), |
|
| 758 | + 'GK' => __( 'Grand Kru', 'invoicing' ), |
|
| 759 | + 'LO' => __( 'Lofa', 'invoicing' ), |
|
| 760 | + 'MA' => __( 'Margibi', 'invoicing' ), |
|
| 761 | + 'MY' => __( 'Maryland', 'invoicing' ), |
|
| 762 | + 'MO' => __( 'Montserrado', 'invoicing' ), |
|
| 763 | + 'NM' => __( 'Nimba', 'invoicing' ), |
|
| 764 | + 'RV' => __( 'Rivercess', 'invoicing' ), |
|
| 765 | + 'RG' => __( 'River Gee', 'invoicing' ), |
|
| 766 | + 'SN' => __( 'Sinoe', 'invoicing' ), |
|
| 767 | + ), |
|
| 768 | + 'LU' => array(), |
|
| 769 | + 'MD' => array( // Moldova states. |
|
| 770 | + 'C' => __( 'Chișinău', 'invoicing' ), |
|
| 771 | + 'BL' => __( 'Bălți', 'invoicing' ), |
|
| 772 | + 'AN' => __( 'Anenii Noi', 'invoicing' ), |
|
| 773 | + 'BS' => __( 'Basarabeasca', 'invoicing' ), |
|
| 774 | + 'BR' => __( 'Briceni', 'invoicing' ), |
|
| 775 | + 'CH' => __( 'Cahul', 'invoicing' ), |
|
| 776 | + 'CT' => __( 'Cantemir', 'invoicing' ), |
|
| 777 | + 'CL' => __( 'Călărași', 'invoicing' ), |
|
| 778 | + 'CS' => __( 'Căușeni', 'invoicing' ), |
|
| 779 | + 'CM' => __( 'Cimișlia', 'invoicing' ), |
|
| 780 | + 'CR' => __( 'Criuleni', 'invoicing' ), |
|
| 781 | + 'DN' => __( 'Dondușeni', 'invoicing' ), |
|
| 782 | + 'DR' => __( 'Drochia', 'invoicing' ), |
|
| 783 | + 'DB' => __( 'Dubăsari', 'invoicing' ), |
|
| 784 | + 'ED' => __( 'Edineț', 'invoicing' ), |
|
| 785 | + 'FL' => __( 'Fălești', 'invoicing' ), |
|
| 786 | + 'FR' => __( 'Florești', 'invoicing' ), |
|
| 787 | + 'GE' => __( 'UTA Găgăuzia', 'invoicing' ), |
|
| 788 | + 'GL' => __( 'Glodeni', 'invoicing' ), |
|
| 789 | + 'HN' => __( 'Hîncești', 'invoicing' ), |
|
| 790 | + 'IL' => __( 'Ialoveni', 'invoicing' ), |
|
| 791 | + 'LV' => __( 'Leova', 'invoicing' ), |
|
| 792 | + 'NS' => __( 'Nisporeni', 'invoicing' ), |
|
| 793 | + 'OC' => __( 'Ocnița', 'invoicing' ), |
|
| 794 | + 'OR' => __( 'Orhei', 'invoicing' ), |
|
| 795 | + 'RZ' => __( 'Rezina', 'invoicing' ), |
|
| 796 | + 'RS' => __( 'Rîșcani', 'invoicing' ), |
|
| 797 | + 'SG' => __( 'Sîngerei', 'invoicing' ), |
|
| 798 | + 'SR' => __( 'Soroca', 'invoicing' ), |
|
| 799 | + 'ST' => __( 'Strășeni', 'invoicing' ), |
|
| 800 | + 'SD' => __( 'Șoldănești', 'invoicing' ), |
|
| 801 | + 'SV' => __( 'Ștefan Vodă', 'invoicing' ), |
|
| 802 | + 'TR' => __( 'Taraclia', 'invoicing' ), |
|
| 803 | + 'TL' => __( 'Telenești', 'invoicing' ), |
|
| 804 | + 'UN' => __( 'Ungheni', 'invoicing' ), |
|
| 805 | + ), |
|
| 806 | + 'MQ' => array(), |
|
| 807 | + 'MT' => array(), |
|
| 808 | + 'MX' => array( // Mexico States. |
|
| 809 | + 'DF' => __( 'Ciudad de México', 'invoicing' ), |
|
| 810 | + 'JA' => __( 'Jalisco', 'invoicing' ), |
|
| 811 | + 'NL' => __( 'Nuevo León', 'invoicing' ), |
|
| 812 | + 'AG' => __( 'Aguascalientes', 'invoicing' ), |
|
| 813 | + 'BC' => __( 'Baja California', 'invoicing' ), |
|
| 814 | + 'BS' => __( 'Baja California Sur', 'invoicing' ), |
|
| 815 | + 'CM' => __( 'Campeche', 'invoicing' ), |
|
| 816 | + 'CS' => __( 'Chiapas', 'invoicing' ), |
|
| 817 | + 'CH' => __( 'Chihuahua', 'invoicing' ), |
|
| 818 | + 'CO' => __( 'Coahuila', 'invoicing' ), |
|
| 819 | + 'CL' => __( 'Colima', 'invoicing' ), |
|
| 820 | + 'DG' => __( 'Durango', 'invoicing' ), |
|
| 821 | + 'GT' => __( 'Guanajuato', 'invoicing' ), |
|
| 822 | + 'GR' => __( 'Guerrero', 'invoicing' ), |
|
| 823 | + 'HG' => __( 'Hidalgo', 'invoicing' ), |
|
| 824 | + 'MX' => __( 'Estado de México', 'invoicing' ), |
|
| 825 | + 'MI' => __( 'Michoacán', 'invoicing' ), |
|
| 826 | + 'MO' => __( 'Morelos', 'invoicing' ), |
|
| 827 | + 'NA' => __( 'Nayarit', 'invoicing' ), |
|
| 828 | + 'OA' => __( 'Oaxaca', 'invoicing' ), |
|
| 829 | + 'PU' => __( 'Puebla', 'invoicing' ), |
|
| 830 | + 'QT' => __( 'Querétaro', 'invoicing' ), |
|
| 831 | + 'QR' => __( 'Quintana Roo', 'invoicing' ), |
|
| 832 | + 'SL' => __( 'San Luis Potosí', 'invoicing' ), |
|
| 833 | + 'SI' => __( 'Sinaloa', 'invoicing' ), |
|
| 834 | + 'SO' => __( 'Sonora', 'invoicing' ), |
|
| 835 | + 'TB' => __( 'Tabasco', 'invoicing' ), |
|
| 836 | + 'TM' => __( 'Tamaulipas', 'invoicing' ), |
|
| 837 | + 'TL' => __( 'Tlaxcala', 'invoicing' ), |
|
| 838 | + 'VE' => __( 'Veracruz', 'invoicing' ), |
|
| 839 | + 'YU' => __( 'Yucatán', 'invoicing' ), |
|
| 840 | + 'ZA' => __( 'Zacatecas', 'invoicing' ), |
|
| 841 | + ), |
|
| 842 | + 'MY' => array( // Malaysian states. |
|
| 843 | + 'JHR' => __( 'Johor', 'invoicing' ), |
|
| 844 | + 'KDH' => __( 'Kedah', 'invoicing' ), |
|
| 845 | + 'KTN' => __( 'Kelantan', 'invoicing' ), |
|
| 846 | + 'LBN' => __( 'Labuan', 'invoicing' ), |
|
| 847 | + 'MLK' => __( 'Malacca (Melaka)', 'invoicing' ), |
|
| 848 | + 'NSN' => __( 'Negeri Sembilan', 'invoicing' ), |
|
| 849 | + 'PHG' => __( 'Pahang', 'invoicing' ), |
|
| 850 | + 'PNG' => __( 'Penang (Pulau Pinang)', 'invoicing' ), |
|
| 851 | + 'PRK' => __( 'Perak', 'invoicing' ), |
|
| 852 | + 'PLS' => __( 'Perlis', 'invoicing' ), |
|
| 853 | + 'SBH' => __( 'Sabah', 'invoicing' ), |
|
| 854 | + 'SWK' => __( 'Sarawak', 'invoicing' ), |
|
| 855 | + 'SGR' => __( 'Selangor', 'invoicing' ), |
|
| 856 | + 'TRG' => __( 'Terengganu', 'invoicing' ), |
|
| 857 | + 'PJY' => __( 'Putrajaya', 'invoicing' ), |
|
| 858 | + 'KUL' => __( 'Kuala Lumpur', 'invoicing' ), |
|
| 859 | + ), |
|
| 860 | + 'NG' => array( // Nigerian provinces. |
|
| 861 | + 'AB' => __( 'Abia', 'invoicing' ), |
|
| 862 | + 'FC' => __( 'Abuja', 'invoicing' ), |
|
| 863 | + 'AD' => __( 'Adamawa', 'invoicing' ), |
|
| 864 | + 'AK' => __( 'Akwa Ibom', 'invoicing' ), |
|
| 865 | + 'AN' => __( 'Anambra', 'invoicing' ), |
|
| 866 | + 'BA' => __( 'Bauchi', 'invoicing' ), |
|
| 867 | + 'BY' => __( 'Bayelsa', 'invoicing' ), |
|
| 868 | + 'BE' => __( 'Benue', 'invoicing' ), |
|
| 869 | + 'BO' => __( 'Borno', 'invoicing' ), |
|
| 870 | + 'CR' => __( 'Cross River', 'invoicing' ), |
|
| 871 | + 'DE' => __( 'Delta', 'invoicing' ), |
|
| 872 | + 'EB' => __( 'Ebonyi', 'invoicing' ), |
|
| 873 | + 'ED' => __( 'Edo', 'invoicing' ), |
|
| 874 | + 'EK' => __( 'Ekiti', 'invoicing' ), |
|
| 875 | + 'EN' => __( 'Enugu', 'invoicing' ), |
|
| 876 | + 'GO' => __( 'Gombe', 'invoicing' ), |
|
| 877 | + 'IM' => __( 'Imo', 'invoicing' ), |
|
| 878 | + 'JI' => __( 'Jigawa', 'invoicing' ), |
|
| 879 | + 'KD' => __( 'Kaduna', 'invoicing' ), |
|
| 880 | + 'KN' => __( 'Kano', 'invoicing' ), |
|
| 881 | + 'KT' => __( 'Katsina', 'invoicing' ), |
|
| 882 | + 'KE' => __( 'Kebbi', 'invoicing' ), |
|
| 883 | + 'KO' => __( 'Kogi', 'invoicing' ), |
|
| 884 | + 'KW' => __( 'Kwara', 'invoicing' ), |
|
| 885 | + 'LA' => __( 'Lagos', 'invoicing' ), |
|
| 886 | + 'NA' => __( 'Nasarawa', 'invoicing' ), |
|
| 887 | + 'NI' => __( 'Niger', 'invoicing' ), |
|
| 888 | + 'OG' => __( 'Ogun', 'invoicing' ), |
|
| 889 | + 'ON' => __( 'Ondo', 'invoicing' ), |
|
| 890 | + 'OS' => __( 'Osun', 'invoicing' ), |
|
| 891 | + 'OY' => __( 'Oyo', 'invoicing' ), |
|
| 892 | + 'PL' => __( 'Plateau', 'invoicing' ), |
|
| 893 | + 'RI' => __( 'Rivers', 'invoicing' ), |
|
| 894 | + 'SO' => __( 'Sokoto', 'invoicing' ), |
|
| 895 | + 'TA' => __( 'Taraba', 'invoicing' ), |
|
| 896 | + 'YO' => __( 'Yobe', 'invoicing' ), |
|
| 897 | + 'ZA' => __( 'Zamfara', 'invoicing' ), |
|
| 898 | + ), |
|
| 899 | + 'NL' => array(), |
|
| 900 | + 'NO' => array(), |
|
| 901 | + 'NP' => array( // Nepal states (Zones). |
|
| 902 | + 'BAG' => __( 'Bagmati', 'invoicing' ), |
|
| 903 | + 'BHE' => __( 'Bheri', 'invoicing' ), |
|
| 904 | + 'DHA' => __( 'Dhaulagiri', 'invoicing' ), |
|
| 905 | + 'GAN' => __( 'Gandaki', 'invoicing' ), |
|
| 906 | + 'JAN' => __( 'Janakpur', 'invoicing' ), |
|
| 907 | + 'KAR' => __( 'Karnali', 'invoicing' ), |
|
| 908 | + 'KOS' => __( 'Koshi', 'invoicing' ), |
|
| 909 | + 'LUM' => __( 'Lumbini', 'invoicing' ), |
|
| 910 | + 'MAH' => __( 'Mahakali', 'invoicing' ), |
|
| 911 | + 'MEC' => __( 'Mechi', 'invoicing' ), |
|
| 912 | + 'NAR' => __( 'Narayani', 'invoicing' ), |
|
| 913 | + 'RAP' => __( 'Rapti', 'invoicing' ), |
|
| 914 | + 'SAG' => __( 'Sagarmatha', 'invoicing' ), |
|
| 915 | + 'SET' => __( 'Seti', 'invoicing' ), |
|
| 916 | + ), |
|
| 917 | + 'NZ' => array( // New Zealand States. |
|
| 918 | + 'NL' => __( 'Northland', 'invoicing' ), |
|
| 919 | + 'AK' => __( 'Auckland', 'invoicing' ), |
|
| 920 | + 'WA' => __( 'Waikato', 'invoicing' ), |
|
| 921 | + 'BP' => __( 'Bay of Plenty', 'invoicing' ), |
|
| 922 | + 'TK' => __( 'Taranaki', 'invoicing' ), |
|
| 923 | + 'GI' => __( 'Gisborne', 'invoicing' ), |
|
| 924 | + 'HB' => __( 'Hawke’s Bay', 'invoicing' ), |
|
| 925 | + 'MW' => __( 'Manawatu-Wanganui', 'invoicing' ), |
|
| 926 | + 'WE' => __( 'Wellington', 'invoicing' ), |
|
| 927 | + 'NS' => __( 'Nelson', 'invoicing' ), |
|
| 928 | + 'MB' => __( 'Marlborough', 'invoicing' ), |
|
| 929 | + 'TM' => __( 'Tasman', 'invoicing' ), |
|
| 930 | + 'WC' => __( 'West Coast', 'invoicing' ), |
|
| 931 | + 'CT' => __( 'Canterbury', 'invoicing' ), |
|
| 932 | + 'OT' => __( 'Otago', 'invoicing' ), |
|
| 933 | + 'SL' => __( 'Southland', 'invoicing' ), |
|
| 934 | + ), |
|
| 935 | + 'PE' => array( // Peru states. |
|
| 936 | + 'CAL' => __( 'El Callao', 'invoicing' ), |
|
| 937 | + 'LMA' => __( 'Municipalidad Metropolitana de Lima', 'invoicing' ), |
|
| 938 | + 'AMA' => __( 'Amazonas', 'invoicing' ), |
|
| 939 | + 'ANC' => __( 'Ancash', 'invoicing' ), |
|
| 940 | + 'APU' => __( 'Apurímac', 'invoicing' ), |
|
| 941 | + 'ARE' => __( 'Arequipa', 'invoicing' ), |
|
| 942 | + 'AYA' => __( 'Ayacucho', 'invoicing' ), |
|
| 943 | + 'CAJ' => __( 'Cajamarca', 'invoicing' ), |
|
| 944 | + 'CUS' => __( 'Cusco', 'invoicing' ), |
|
| 945 | + 'HUV' => __( 'Huancavelica', 'invoicing' ), |
|
| 946 | + 'HUC' => __( 'Huánuco', 'invoicing' ), |
|
| 947 | + 'ICA' => __( 'Ica', 'invoicing' ), |
|
| 948 | + 'JUN' => __( 'Junín', 'invoicing' ), |
|
| 949 | + 'LAL' => __( 'La Libertad', 'invoicing' ), |
|
| 950 | + 'LAM' => __( 'Lambayeque', 'invoicing' ), |
|
| 951 | + 'LIM' => __( 'Lima', 'invoicing' ), |
|
| 952 | + 'LOR' => __( 'Loreto', 'invoicing' ), |
|
| 953 | + 'MDD' => __( 'Madre de Dios', 'invoicing' ), |
|
| 954 | + 'MOQ' => __( 'Moquegua', 'invoicing' ), |
|
| 955 | + 'PAS' => __( 'Pasco', 'invoicing' ), |
|
| 956 | + 'PIU' => __( 'Piura', 'invoicing' ), |
|
| 957 | + 'PUN' => __( 'Puno', 'invoicing' ), |
|
| 958 | + 'SAM' => __( 'San Martín', 'invoicing' ), |
|
| 959 | + 'TAC' => __( 'Tacna', 'invoicing' ), |
|
| 960 | + 'TUM' => __( 'Tumbes', 'invoicing' ), |
|
| 961 | + 'UCA' => __( 'Ucayali', 'invoicing' ), |
|
| 962 | + ), |
|
| 963 | 963 | |
| 964 | - /** |
|
| 965 | - * Philippine Provinces. |
|
| 966 | - */ |
|
| 967 | - 'PH' => array( |
|
| 968 | - 'ABR' => __( 'Abra', 'invoicing' ), |
|
| 969 | - 'AGN' => __( 'Agusan del Norte', 'invoicing' ), |
|
| 970 | - 'AGS' => __( 'Agusan del Sur', 'invoicing' ), |
|
| 971 | - 'AKL' => __( 'Aklan', 'invoicing' ), |
|
| 972 | - 'ALB' => __( 'Albay', 'invoicing' ), |
|
| 973 | - 'ANT' => __( 'Antique', 'invoicing' ), |
|
| 974 | - 'APA' => __( 'Apayao', 'invoicing' ), |
|
| 975 | - 'AUR' => __( 'Aurora', 'invoicing' ), |
|
| 976 | - 'BAS' => __( 'Basilan', 'invoicing' ), |
|
| 977 | - 'BAN' => __( 'Bataan', 'invoicing' ), |
|
| 978 | - 'BTN' => __( 'Batanes', 'invoicing' ), |
|
| 979 | - 'BTG' => __( 'Batangas', 'invoicing' ), |
|
| 980 | - 'BEN' => __( 'Benguet', 'invoicing' ), |
|
| 981 | - 'BIL' => __( 'Biliran', 'invoicing' ), |
|
| 982 | - 'BOH' => __( 'Bohol', 'invoicing' ), |
|
| 983 | - 'BUK' => __( 'Bukidnon', 'invoicing' ), |
|
| 984 | - 'BUL' => __( 'Bulacan', 'invoicing' ), |
|
| 985 | - 'CAG' => __( 'Cagayan', 'invoicing' ), |
|
| 986 | - 'CAN' => __( 'Camarines Norte', 'invoicing' ), |
|
| 987 | - 'CAS' => __( 'Camarines Sur', 'invoicing' ), |
|
| 988 | - 'CAM' => __( 'Camiguin', 'invoicing' ), |
|
| 989 | - 'CAP' => __( 'Capiz', 'invoicing' ), |
|
| 990 | - 'CAT' => __( 'Catanduanes', 'invoicing' ), |
|
| 991 | - 'CAV' => __( 'Cavite', 'invoicing' ), |
|
| 992 | - 'CEB' => __( 'Cebu', 'invoicing' ), |
|
| 993 | - 'COM' => __( 'Compostela Valley', 'invoicing' ), |
|
| 994 | - 'NCO' => __( 'Cotabato', 'invoicing' ), |
|
| 995 | - 'DAV' => __( 'Davao del Norte', 'invoicing' ), |
|
| 996 | - 'DAS' => __( 'Davao del Sur', 'invoicing' ), |
|
| 997 | - 'DAC' => __( 'Davao Occidental', 'invoicing' ), |
|
| 998 | - 'DAO' => __( 'Davao Oriental', 'invoicing' ), |
|
| 999 | - 'DIN' => __( 'Dinagat Islands', 'invoicing' ), |
|
| 1000 | - 'EAS' => __( 'Eastern Samar', 'invoicing' ), |
|
| 1001 | - 'GUI' => __( 'Guimaras', 'invoicing' ), |
|
| 1002 | - 'IFU' => __( 'Ifugao', 'invoicing' ), |
|
| 1003 | - 'ILN' => __( 'Ilocos Norte', 'invoicing' ), |
|
| 1004 | - 'ILS' => __( 'Ilocos Sur', 'invoicing' ), |
|
| 1005 | - 'ILI' => __( 'Iloilo', 'invoicing' ), |
|
| 1006 | - 'ISA' => __( 'Isabela', 'invoicing' ), |
|
| 1007 | - 'KAL' => __( 'Kalinga', 'invoicing' ), |
|
| 1008 | - 'LUN' => __( 'La Union', 'invoicing' ), |
|
| 1009 | - 'LAG' => __( 'Laguna', 'invoicing' ), |
|
| 1010 | - 'LAN' => __( 'Lanao del Norte', 'invoicing' ), |
|
| 1011 | - 'LAS' => __( 'Lanao del Sur', 'invoicing' ), |
|
| 1012 | - 'LEY' => __( 'Leyte', 'invoicing' ), |
|
| 1013 | - 'MAG' => __( 'Maguindanao', 'invoicing' ), |
|
| 1014 | - 'MAD' => __( 'Marinduque', 'invoicing' ), |
|
| 1015 | - 'MAS' => __( 'Masbate', 'invoicing' ), |
|
| 1016 | - 'MSC' => __( 'Misamis Occidental', 'invoicing' ), |
|
| 1017 | - 'MSR' => __( 'Misamis Oriental', 'invoicing' ), |
|
| 1018 | - 'MOU' => __( 'Mountain Province', 'invoicing' ), |
|
| 1019 | - 'NEC' => __( 'Negros Occidental', 'invoicing' ), |
|
| 1020 | - 'NER' => __( 'Negros Oriental', 'invoicing' ), |
|
| 1021 | - 'NSA' => __( 'Northern Samar', 'invoicing' ), |
|
| 1022 | - 'NUE' => __( 'Nueva Ecija', 'invoicing' ), |
|
| 1023 | - 'NUV' => __( 'Nueva Vizcaya', 'invoicing' ), |
|
| 1024 | - 'MDC' => __( 'Occidental Mindoro', 'invoicing' ), |
|
| 1025 | - 'MDR' => __( 'Oriental Mindoro', 'invoicing' ), |
|
| 1026 | - 'PLW' => __( 'Palawan', 'invoicing' ), |
|
| 1027 | - 'PAM' => __( 'Pampanga', 'invoicing' ), |
|
| 1028 | - 'PAN' => __( 'Pangasinan', 'invoicing' ), |
|
| 1029 | - 'QUE' => __( 'Quezon', 'invoicing' ), |
|
| 1030 | - 'QUI' => __( 'Quirino', 'invoicing' ), |
|
| 1031 | - 'RIZ' => __( 'Rizal', 'invoicing' ), |
|
| 1032 | - 'ROM' => __( 'Romblon', 'invoicing' ), |
|
| 1033 | - 'WSA' => __( 'Samar', 'invoicing' ), |
|
| 1034 | - 'SAR' => __( 'Sarangani', 'invoicing' ), |
|
| 1035 | - 'SIQ' => __( 'Siquijor', 'invoicing' ), |
|
| 1036 | - 'SOR' => __( 'Sorsogon', 'invoicing' ), |
|
| 1037 | - 'SCO' => __( 'South Cotabato', 'invoicing' ), |
|
| 1038 | - 'SLE' => __( 'Southern Leyte', 'invoicing' ), |
|
| 1039 | - 'SUK' => __( 'Sultan Kudarat', 'invoicing' ), |
|
| 1040 | - 'SLU' => __( 'Sulu', 'invoicing' ), |
|
| 1041 | - 'SUN' => __( 'Surigao del Norte', 'invoicing' ), |
|
| 1042 | - 'SUR' => __( 'Surigao del Sur', 'invoicing' ), |
|
| 1043 | - 'TAR' => __( 'Tarlac', 'invoicing' ), |
|
| 1044 | - 'TAW' => __( 'Tawi-Tawi', 'invoicing' ), |
|
| 1045 | - 'ZMB' => __( 'Zambales', 'invoicing' ), |
|
| 1046 | - 'ZAN' => __( 'Zamboanga del Norte', 'invoicing' ), |
|
| 1047 | - 'ZAS' => __( 'Zamboanga del Sur', 'invoicing' ), |
|
| 1048 | - 'ZSI' => __( 'Zamboanga Sibugay', 'invoicing' ), |
|
| 1049 | - '00' => __( 'Metro Manila', 'invoicing' ), |
|
| 1050 | - ), |
|
| 1051 | - 'PK' => array( // Pakistan's states. |
|
| 1052 | - 'JK' => __( 'Azad Kashmir', 'invoicing' ), |
|
| 1053 | - 'BA' => __( 'Balochistan', 'invoicing' ), |
|
| 1054 | - 'TA' => __( 'FATA', 'invoicing' ), |
|
| 1055 | - 'GB' => __( 'Gilgit Baltistan', 'invoicing' ), |
|
| 1056 | - 'IS' => __( 'Islamabad Capital Territory', 'invoicing' ), |
|
| 1057 | - 'KP' => __( 'Khyber Pakhtunkhwa', 'invoicing' ), |
|
| 1058 | - 'PB' => __( 'Punjab', 'invoicing' ), |
|
| 1059 | - 'SD' => __( 'Sindh', 'invoicing' ), |
|
| 1060 | - ), |
|
| 1061 | - 'PL' => array(), |
|
| 1062 | - 'PT' => array(), |
|
| 1063 | - 'PY' => array( // Paraguay states. |
|
| 1064 | - 'PY-ASU' => __( 'Asunción', 'invoicing' ), |
|
| 1065 | - 'PY-1' => __( 'Concepción', 'invoicing' ), |
|
| 1066 | - 'PY-2' => __( 'San Pedro', 'invoicing' ), |
|
| 1067 | - 'PY-3' => __( 'Cordillera', 'invoicing' ), |
|
| 1068 | - 'PY-4' => __( 'Guairá', 'invoicing' ), |
|
| 1069 | - 'PY-5' => __( 'Caaguazú', 'invoicing' ), |
|
| 1070 | - 'PY-6' => __( 'Caazapá', 'invoicing' ), |
|
| 1071 | - 'PY-7' => __( 'Itapúa', 'invoicing' ), |
|
| 1072 | - 'PY-8' => __( 'Misiones', 'invoicing' ), |
|
| 1073 | - 'PY-9' => __( 'Paraguarí', 'invoicing' ), |
|
| 1074 | - 'PY-10' => __( 'Alto Paraná', 'invoicing' ), |
|
| 1075 | - 'PY-11' => __( 'Central', 'invoicing' ), |
|
| 1076 | - 'PY-12' => __( 'Ñeembucú', 'invoicing' ), |
|
| 1077 | - 'PY-13' => __( 'Amambay', 'invoicing' ), |
|
| 1078 | - 'PY-14' => __( 'Canindeyú', 'invoicing' ), |
|
| 1079 | - 'PY-15' => __( 'Presidente Hayes', 'invoicing' ), |
|
| 1080 | - 'PY-16' => __( 'Alto Paraguay', 'invoicing' ), |
|
| 1081 | - 'PY-17' => __( 'Boquerón', 'invoicing' ), |
|
| 1082 | - ), |
|
| 1083 | - 'RE' => array(), |
|
| 1084 | - 'RO' => array( // Romania states. |
|
| 1085 | - 'AB' => __( 'Alba', 'invoicing' ), |
|
| 1086 | - 'AR' => __( 'Arad', 'invoicing' ), |
|
| 1087 | - 'AG' => __( 'Argeș', 'invoicing' ), |
|
| 1088 | - 'BC' => __( 'Bacău', 'invoicing' ), |
|
| 1089 | - 'BH' => __( 'Bihor', 'invoicing' ), |
|
| 1090 | - 'BN' => __( 'Bistrița-Năsăud', 'invoicing' ), |
|
| 1091 | - 'BT' => __( 'Botoșani', 'invoicing' ), |
|
| 1092 | - 'BR' => __( 'Brăila', 'invoicing' ), |
|
| 1093 | - 'BV' => __( 'Brașov', 'invoicing' ), |
|
| 1094 | - 'B' => __( 'București', 'invoicing' ), |
|
| 1095 | - 'BZ' => __( 'Buzău', 'invoicing' ), |
|
| 1096 | - 'CL' => __( 'Călărași', 'invoicing' ), |
|
| 1097 | - 'CS' => __( 'Caraș-Severin', 'invoicing' ), |
|
| 1098 | - 'CJ' => __( 'Cluj', 'invoicing' ), |
|
| 1099 | - 'CT' => __( 'Constanța', 'invoicing' ), |
|
| 1100 | - 'CV' => __( 'Covasna', 'invoicing' ), |
|
| 1101 | - 'DB' => __( 'Dâmbovița', 'invoicing' ), |
|
| 1102 | - 'DJ' => __( 'Dolj', 'invoicing' ), |
|
| 1103 | - 'GL' => __( 'Galați', 'invoicing' ), |
|
| 1104 | - 'GR' => __( 'Giurgiu', 'invoicing' ), |
|
| 1105 | - 'GJ' => __( 'Gorj', 'invoicing' ), |
|
| 1106 | - 'HR' => __( 'Harghita', 'invoicing' ), |
|
| 1107 | - 'HD' => __( 'Hunedoara', 'invoicing' ), |
|
| 1108 | - 'IL' => __( 'Ialomița', 'invoicing' ), |
|
| 1109 | - 'IS' => __( 'Iași', 'invoicing' ), |
|
| 1110 | - 'IF' => __( 'Ilfov', 'invoicing' ), |
|
| 1111 | - 'MM' => __( 'Maramureș', 'invoicing' ), |
|
| 1112 | - 'MH' => __( 'Mehedinți', 'invoicing' ), |
|
| 1113 | - 'MS' => __( 'Mureș', 'invoicing' ), |
|
| 1114 | - 'NT' => __( 'Neamț', 'invoicing' ), |
|
| 1115 | - 'OT' => __( 'Olt', 'invoicing' ), |
|
| 1116 | - 'PH' => __( 'Prahova', 'invoicing' ), |
|
| 1117 | - 'SJ' => __( 'Sălaj', 'invoicing' ), |
|
| 1118 | - 'SM' => __( 'Satu Mare', 'invoicing' ), |
|
| 1119 | - 'SB' => __( 'Sibiu', 'invoicing' ), |
|
| 1120 | - 'SV' => __( 'Suceava', 'invoicing' ), |
|
| 1121 | - 'TR' => __( 'Teleorman', 'invoicing' ), |
|
| 1122 | - 'TM' => __( 'Timiș', 'invoicing' ), |
|
| 1123 | - 'TL' => __( 'Tulcea', 'invoicing' ), |
|
| 1124 | - 'VL' => __( 'Vâlcea', 'invoicing' ), |
|
| 1125 | - 'VS' => __( 'Vaslui', 'invoicing' ), |
|
| 1126 | - 'VN' => __( 'Vrancea', 'invoicing' ), |
|
| 1127 | - ), |
|
| 1128 | - 'RS' => array(), |
|
| 1129 | - 'SG' => array(), |
|
| 1130 | - 'SK' => array(), |
|
| 1131 | - 'SI' => array(), |
|
| 1132 | - 'TH' => array( // Thailand states. |
|
| 1133 | - 'TH-37' => __( 'Amnat Charoen', 'invoicing' ), |
|
| 1134 | - 'TH-15' => __( 'Ang Thong', 'invoicing' ), |
|
| 1135 | - 'TH-14' => __( 'Ayutthaya', 'invoicing' ), |
|
| 1136 | - 'TH-10' => __( 'Bangkok', 'invoicing' ), |
|
| 1137 | - 'TH-38' => __( 'Bueng Kan', 'invoicing' ), |
|
| 1138 | - 'TH-31' => __( 'Buri Ram', 'invoicing' ), |
|
| 1139 | - 'TH-24' => __( 'Chachoengsao', 'invoicing' ), |
|
| 1140 | - 'TH-18' => __( 'Chai Nat', 'invoicing' ), |
|
| 1141 | - 'TH-36' => __( 'Chaiyaphum', 'invoicing' ), |
|
| 1142 | - 'TH-22' => __( 'Chanthaburi', 'invoicing' ), |
|
| 1143 | - 'TH-50' => __( 'Chiang Mai', 'invoicing' ), |
|
| 1144 | - 'TH-57' => __( 'Chiang Rai', 'invoicing' ), |
|
| 1145 | - 'TH-20' => __( 'Chonburi', 'invoicing' ), |
|
| 1146 | - 'TH-86' => __( 'Chumphon', 'invoicing' ), |
|
| 1147 | - 'TH-46' => __( 'Kalasin', 'invoicing' ), |
|
| 1148 | - 'TH-62' => __( 'Kamphaeng Phet', 'invoicing' ), |
|
| 1149 | - 'TH-71' => __( 'Kanchanaburi', 'invoicing' ), |
|
| 1150 | - 'TH-40' => __( 'Khon Kaen', 'invoicing' ), |
|
| 1151 | - 'TH-81' => __( 'Krabi', 'invoicing' ), |
|
| 1152 | - 'TH-52' => __( 'Lampang', 'invoicing' ), |
|
| 1153 | - 'TH-51' => __( 'Lamphun', 'invoicing' ), |
|
| 1154 | - 'TH-42' => __( 'Loei', 'invoicing' ), |
|
| 1155 | - 'TH-16' => __( 'Lopburi', 'invoicing' ), |
|
| 1156 | - 'TH-58' => __( 'Mae Hong Son', 'invoicing' ), |
|
| 1157 | - 'TH-44' => __( 'Maha Sarakham', 'invoicing' ), |
|
| 1158 | - 'TH-49' => __( 'Mukdahan', 'invoicing' ), |
|
| 1159 | - 'TH-26' => __( 'Nakhon Nayok', 'invoicing' ), |
|
| 1160 | - 'TH-73' => __( 'Nakhon Pathom', 'invoicing' ), |
|
| 1161 | - 'TH-48' => __( 'Nakhon Phanom', 'invoicing' ), |
|
| 1162 | - 'TH-30' => __( 'Nakhon Ratchasima', 'invoicing' ), |
|
| 1163 | - 'TH-60' => __( 'Nakhon Sawan', 'invoicing' ), |
|
| 1164 | - 'TH-80' => __( 'Nakhon Si Thammarat', 'invoicing' ), |
|
| 1165 | - 'TH-55' => __( 'Nan', 'invoicing' ), |
|
| 1166 | - 'TH-96' => __( 'Narathiwat', 'invoicing' ), |
|
| 1167 | - 'TH-39' => __( 'Nong Bua Lam Phu', 'invoicing' ), |
|
| 1168 | - 'TH-43' => __( 'Nong Khai', 'invoicing' ), |
|
| 1169 | - 'TH-12' => __( 'Nonthaburi', 'invoicing' ), |
|
| 1170 | - 'TH-13' => __( 'Pathum Thani', 'invoicing' ), |
|
| 1171 | - 'TH-94' => __( 'Pattani', 'invoicing' ), |
|
| 1172 | - 'TH-82' => __( 'Phang Nga', 'invoicing' ), |
|
| 1173 | - 'TH-93' => __( 'Phatthalung', 'invoicing' ), |
|
| 1174 | - 'TH-56' => __( 'Phayao', 'invoicing' ), |
|
| 1175 | - 'TH-67' => __( 'Phetchabun', 'invoicing' ), |
|
| 1176 | - 'TH-76' => __( 'Phetchaburi', 'invoicing' ), |
|
| 1177 | - 'TH-66' => __( 'Phichit', 'invoicing' ), |
|
| 1178 | - 'TH-65' => __( 'Phitsanulok', 'invoicing' ), |
|
| 1179 | - 'TH-54' => __( 'Phrae', 'invoicing' ), |
|
| 1180 | - 'TH-83' => __( 'Phuket', 'invoicing' ), |
|
| 1181 | - 'TH-25' => __( 'Prachin Buri', 'invoicing' ), |
|
| 1182 | - 'TH-77' => __( 'Prachuap Khiri Khan', 'invoicing' ), |
|
| 1183 | - 'TH-85' => __( 'Ranong', 'invoicing' ), |
|
| 1184 | - 'TH-70' => __( 'Ratchaburi', 'invoicing' ), |
|
| 1185 | - 'TH-21' => __( 'Rayong', 'invoicing' ), |
|
| 1186 | - 'TH-45' => __( 'Roi Et', 'invoicing' ), |
|
| 1187 | - 'TH-27' => __( 'Sa Kaeo', 'invoicing' ), |
|
| 1188 | - 'TH-47' => __( 'Sakon Nakhon', 'invoicing' ), |
|
| 1189 | - 'TH-11' => __( 'Samut Prakan', 'invoicing' ), |
|
| 1190 | - 'TH-74' => __( 'Samut Sakhon', 'invoicing' ), |
|
| 1191 | - 'TH-75' => __( 'Samut Songkhram', 'invoicing' ), |
|
| 1192 | - 'TH-19' => __( 'Saraburi', 'invoicing' ), |
|
| 1193 | - 'TH-91' => __( 'Satun', 'invoicing' ), |
|
| 1194 | - 'TH-17' => __( 'Sing Buri', 'invoicing' ), |
|
| 1195 | - 'TH-33' => __( 'Sisaket', 'invoicing' ), |
|
| 1196 | - 'TH-90' => __( 'Songkhla', 'invoicing' ), |
|
| 1197 | - 'TH-64' => __( 'Sukhothai', 'invoicing' ), |
|
| 1198 | - 'TH-72' => __( 'Suphan Buri', 'invoicing' ), |
|
| 1199 | - 'TH-84' => __( 'Surat Thani', 'invoicing' ), |
|
| 1200 | - 'TH-32' => __( 'Surin', 'invoicing' ), |
|
| 1201 | - 'TH-63' => __( 'Tak', 'invoicing' ), |
|
| 1202 | - 'TH-92' => __( 'Trang', 'invoicing' ), |
|
| 1203 | - 'TH-23' => __( 'Trat', 'invoicing' ), |
|
| 1204 | - 'TH-34' => __( 'Ubon Ratchathani', 'invoicing' ), |
|
| 1205 | - 'TH-41' => __( 'Udon Thani', 'invoicing' ), |
|
| 1206 | - 'TH-61' => __( 'Uthai Thani', 'invoicing' ), |
|
| 1207 | - 'TH-53' => __( 'Uttaradit', 'invoicing' ), |
|
| 1208 | - 'TH-95' => __( 'Yala', 'invoicing' ), |
|
| 1209 | - 'TH-35' => __( 'Yasothon', 'invoicing' ), |
|
| 1210 | - ), |
|
| 1211 | - 'TR' => array( // Turkey States. |
|
| 1212 | - 'TR01' => __( 'Adana', 'invoicing' ), |
|
| 1213 | - 'TR02' => __( 'Adıyaman', 'invoicing' ), |
|
| 1214 | - 'TR03' => __( 'Afyon', 'invoicing' ), |
|
| 1215 | - 'TR04' => __( 'Ağrı', 'invoicing' ), |
|
| 1216 | - 'TR05' => __( 'Amasya', 'invoicing' ), |
|
| 1217 | - 'TR06' => __( 'Ankara', 'invoicing' ), |
|
| 1218 | - 'TR07' => __( 'Antalya', 'invoicing' ), |
|
| 1219 | - 'TR08' => __( 'Artvin', 'invoicing' ), |
|
| 1220 | - 'TR09' => __( 'Aydın', 'invoicing' ), |
|
| 1221 | - 'TR10' => __( 'Balıkesir', 'invoicing' ), |
|
| 1222 | - 'TR11' => __( 'Bilecik', 'invoicing' ), |
|
| 1223 | - 'TR12' => __( 'Bingöl', 'invoicing' ), |
|
| 1224 | - 'TR13' => __( 'Bitlis', 'invoicing' ), |
|
| 1225 | - 'TR14' => __( 'Bolu', 'invoicing' ), |
|
| 1226 | - 'TR15' => __( 'Burdur', 'invoicing' ), |
|
| 1227 | - 'TR16' => __( 'Bursa', 'invoicing' ), |
|
| 1228 | - 'TR17' => __( 'Çanakkale', 'invoicing' ), |
|
| 1229 | - 'TR18' => __( 'Çankırı', 'invoicing' ), |
|
| 1230 | - 'TR19' => __( 'Çorum', 'invoicing' ), |
|
| 1231 | - 'TR20' => __( 'Denizli', 'invoicing' ), |
|
| 1232 | - 'TR21' => __( 'Diyarbakır', 'invoicing' ), |
|
| 1233 | - 'TR22' => __( 'Edirne', 'invoicing' ), |
|
| 1234 | - 'TR23' => __( 'Elazığ', 'invoicing' ), |
|
| 1235 | - 'TR24' => __( 'Erzincan', 'invoicing' ), |
|
| 1236 | - 'TR25' => __( 'Erzurum', 'invoicing' ), |
|
| 1237 | - 'TR26' => __( 'Eskişehir', 'invoicing' ), |
|
| 1238 | - 'TR27' => __( 'Gaziantep', 'invoicing' ), |
|
| 1239 | - 'TR28' => __( 'Giresun', 'invoicing' ), |
|
| 1240 | - 'TR29' => __( 'Gümüşhane', 'invoicing' ), |
|
| 1241 | - 'TR30' => __( 'Hakkari', 'invoicing' ), |
|
| 1242 | - 'TR31' => __( 'Hatay', 'invoicing' ), |
|
| 1243 | - 'TR32' => __( 'Isparta', 'invoicing' ), |
|
| 1244 | - 'TR33' => __( 'İçel', 'invoicing' ), |
|
| 1245 | - 'TR34' => __( 'İstanbul', 'invoicing' ), |
|
| 1246 | - 'TR35' => __( 'İzmir', 'invoicing' ), |
|
| 1247 | - 'TR36' => __( 'Kars', 'invoicing' ), |
|
| 1248 | - 'TR37' => __( 'Kastamonu', 'invoicing' ), |
|
| 1249 | - 'TR38' => __( 'Kayseri', 'invoicing' ), |
|
| 1250 | - 'TR39' => __( 'Kırklareli', 'invoicing' ), |
|
| 1251 | - 'TR40' => __( 'Kırşehir', 'invoicing' ), |
|
| 1252 | - 'TR41' => __( 'Kocaeli', 'invoicing' ), |
|
| 1253 | - 'TR42' => __( 'Konya', 'invoicing' ), |
|
| 1254 | - 'TR43' => __( 'Kütahya', 'invoicing' ), |
|
| 1255 | - 'TR44' => __( 'Malatya', 'invoicing' ), |
|
| 1256 | - 'TR45' => __( 'Manisa', 'invoicing' ), |
|
| 1257 | - 'TR46' => __( 'Kahramanmaraş', 'invoicing' ), |
|
| 1258 | - 'TR47' => __( 'Mardin', 'invoicing' ), |
|
| 1259 | - 'TR48' => __( 'Muğla', 'invoicing' ), |
|
| 1260 | - 'TR49' => __( 'Muş', 'invoicing' ), |
|
| 1261 | - 'TR50' => __( 'Nevşehir', 'invoicing' ), |
|
| 1262 | - 'TR51' => __( 'Niğde', 'invoicing' ), |
|
| 1263 | - 'TR52' => __( 'Ordu', 'invoicing' ), |
|
| 1264 | - 'TR53' => __( 'Rize', 'invoicing' ), |
|
| 1265 | - 'TR54' => __( 'Sakarya', 'invoicing' ), |
|
| 1266 | - 'TR55' => __( 'Samsun', 'invoicing' ), |
|
| 1267 | - 'TR56' => __( 'Siirt', 'invoicing' ), |
|
| 1268 | - 'TR57' => __( 'Sinop', 'invoicing' ), |
|
| 1269 | - 'TR58' => __( 'Sivas', 'invoicing' ), |
|
| 1270 | - 'TR59' => __( 'Tekirdağ', 'invoicing' ), |
|
| 1271 | - 'TR60' => __( 'Tokat', 'invoicing' ), |
|
| 1272 | - 'TR61' => __( 'Trabzon', 'invoicing' ), |
|
| 1273 | - 'TR62' => __( 'Tunceli', 'invoicing' ), |
|
| 1274 | - 'TR63' => __( 'Şanlıurfa', 'invoicing' ), |
|
| 1275 | - 'TR64' => __( 'Uşak', 'invoicing' ), |
|
| 1276 | - 'TR65' => __( 'Van', 'invoicing' ), |
|
| 1277 | - 'TR66' => __( 'Yozgat', 'invoicing' ), |
|
| 1278 | - 'TR67' => __( 'Zonguldak', 'invoicing' ), |
|
| 1279 | - 'TR68' => __( 'Aksaray', 'invoicing' ), |
|
| 1280 | - 'TR69' => __( 'Bayburt', 'invoicing' ), |
|
| 1281 | - 'TR70' => __( 'Karaman', 'invoicing' ), |
|
| 1282 | - 'TR71' => __( 'Kırıkkale', 'invoicing' ), |
|
| 1283 | - 'TR72' => __( 'Batman', 'invoicing' ), |
|
| 1284 | - 'TR73' => __( 'Şırnak', 'invoicing' ), |
|
| 1285 | - 'TR74' => __( 'Bartın', 'invoicing' ), |
|
| 1286 | - 'TR75' => __( 'Ardahan', 'invoicing' ), |
|
| 1287 | - 'TR76' => __( 'Iğdır', 'invoicing' ), |
|
| 1288 | - 'TR77' => __( 'Yalova', 'invoicing' ), |
|
| 1289 | - 'TR78' => __( 'Karabük', 'invoicing' ), |
|
| 1290 | - 'TR79' => __( 'Kilis', 'invoicing' ), |
|
| 1291 | - 'TR80' => __( 'Osmaniye', 'invoicing' ), |
|
| 1292 | - 'TR81' => __( 'Düzce', 'invoicing' ), |
|
| 1293 | - ), |
|
| 1294 | - 'TZ' => array( // Tanzania States. |
|
| 1295 | - 'TZ01' => __( 'Arusha', 'invoicing' ), |
|
| 1296 | - 'TZ02' => __( 'Dar es Salaam', 'invoicing' ), |
|
| 1297 | - 'TZ03' => __( 'Dodoma', 'invoicing' ), |
|
| 1298 | - 'TZ04' => __( 'Iringa', 'invoicing' ), |
|
| 1299 | - 'TZ05' => __( 'Kagera', 'invoicing' ), |
|
| 1300 | - 'TZ06' => __( 'Pemba North', 'invoicing' ), |
|
| 1301 | - 'TZ07' => __( 'Zanzibar North', 'invoicing' ), |
|
| 1302 | - 'TZ08' => __( 'Kigoma', 'invoicing' ), |
|
| 1303 | - 'TZ09' => __( 'Kilimanjaro', 'invoicing' ), |
|
| 1304 | - 'TZ10' => __( 'Pemba South', 'invoicing' ), |
|
| 1305 | - 'TZ11' => __( 'Zanzibar South', 'invoicing' ), |
|
| 1306 | - 'TZ12' => __( 'Lindi', 'invoicing' ), |
|
| 1307 | - 'TZ13' => __( 'Mara', 'invoicing' ), |
|
| 1308 | - 'TZ14' => __( 'Mbeya', 'invoicing' ), |
|
| 1309 | - 'TZ15' => __( 'Zanzibar West', 'invoicing' ), |
|
| 1310 | - 'TZ16' => __( 'Morogoro', 'invoicing' ), |
|
| 1311 | - 'TZ17' => __( 'Mtwara', 'invoicing' ), |
|
| 1312 | - 'TZ18' => __( 'Mwanza', 'invoicing' ), |
|
| 1313 | - 'TZ19' => __( 'Coast', 'invoicing' ), |
|
| 1314 | - 'TZ20' => __( 'Rukwa', 'invoicing' ), |
|
| 1315 | - 'TZ21' => __( 'Ruvuma', 'invoicing' ), |
|
| 1316 | - 'TZ22' => __( 'Shinyanga', 'invoicing' ), |
|
| 1317 | - 'TZ23' => __( 'Singida', 'invoicing' ), |
|
| 1318 | - 'TZ24' => __( 'Tabora', 'invoicing' ), |
|
| 1319 | - 'TZ25' => __( 'Tanga', 'invoicing' ), |
|
| 1320 | - 'TZ26' => __( 'Manyara', 'invoicing' ), |
|
| 1321 | - 'TZ27' => __( 'Geita', 'invoicing' ), |
|
| 1322 | - 'TZ28' => __( 'Katavi', 'invoicing' ), |
|
| 1323 | - 'TZ29' => __( 'Njombe', 'invoicing' ), |
|
| 1324 | - 'TZ30' => __( 'Simiyu', 'invoicing' ), |
|
| 1325 | - ), |
|
| 1326 | - 'LK' => array(), |
|
| 1327 | - 'SE' => array(), |
|
| 1328 | - 'UG' => array( // Uganda districts. Ref: https://en.wikipedia.org/wiki/ISO_3166-2:UG. |
|
| 1329 | - 'UG314' => __( 'Abim', 'invoicing' ), |
|
| 1330 | - 'UG301' => __( 'Adjumani', 'invoicing' ), |
|
| 1331 | - 'UG322' => __( 'Agago', 'invoicing' ), |
|
| 1332 | - 'UG323' => __( 'Alebtong', 'invoicing' ), |
|
| 1333 | - 'UG315' => __( 'Amolatar', 'invoicing' ), |
|
| 1334 | - 'UG324' => __( 'Amudat', 'invoicing' ), |
|
| 1335 | - 'UG216' => __( 'Amuria', 'invoicing' ), |
|
| 1336 | - 'UG316' => __( 'Amuru', 'invoicing' ), |
|
| 1337 | - 'UG302' => __( 'Apac', 'invoicing' ), |
|
| 1338 | - 'UG303' => __( 'Arua', 'invoicing' ), |
|
| 1339 | - 'UG217' => __( 'Budaka', 'invoicing' ), |
|
| 1340 | - 'UG218' => __( 'Bududa', 'invoicing' ), |
|
| 1341 | - 'UG201' => __( 'Bugiri', 'invoicing' ), |
|
| 1342 | - 'UG235' => __( 'Bugweri', 'invoicing' ), |
|
| 1343 | - 'UG420' => __( 'Buhweju', 'invoicing' ), |
|
| 1344 | - 'UG117' => __( 'Buikwe', 'invoicing' ), |
|
| 1345 | - 'UG219' => __( 'Bukedea', 'invoicing' ), |
|
| 1346 | - 'UG118' => __( 'Bukomansimbi', 'invoicing' ), |
|
| 1347 | - 'UG220' => __( 'Bukwa', 'invoicing' ), |
|
| 1348 | - 'UG225' => __( 'Bulambuli', 'invoicing' ), |
|
| 1349 | - 'UG416' => __( 'Buliisa', 'invoicing' ), |
|
| 1350 | - 'UG401' => __( 'Bundibugyo', 'invoicing' ), |
|
| 1351 | - 'UG430' => __( 'Bunyangabu', 'invoicing' ), |
|
| 1352 | - 'UG402' => __( 'Bushenyi', 'invoicing' ), |
|
| 1353 | - 'UG202' => __( 'Busia', 'invoicing' ), |
|
| 1354 | - 'UG221' => __( 'Butaleja', 'invoicing' ), |
|
| 1355 | - 'UG119' => __( 'Butambala', 'invoicing' ), |
|
| 1356 | - 'UG233' => __( 'Butebo', 'invoicing' ), |
|
| 1357 | - 'UG120' => __( 'Buvuma', 'invoicing' ), |
|
| 1358 | - 'UG226' => __( 'Buyende', 'invoicing' ), |
|
| 1359 | - 'UG317' => __( 'Dokolo', 'invoicing' ), |
|
| 1360 | - 'UG121' => __( 'Gomba', 'invoicing' ), |
|
| 1361 | - 'UG304' => __( 'Gulu', 'invoicing' ), |
|
| 1362 | - 'UG403' => __( 'Hoima', 'invoicing' ), |
|
| 1363 | - 'UG417' => __( 'Ibanda', 'invoicing' ), |
|
| 1364 | - 'UG203' => __( 'Iganga', 'invoicing' ), |
|
| 1365 | - 'UG418' => __( 'Isingiro', 'invoicing' ), |
|
| 1366 | - 'UG204' => __( 'Jinja', 'invoicing' ), |
|
| 1367 | - 'UG318' => __( 'Kaabong', 'invoicing' ), |
|
| 1368 | - 'UG404' => __( 'Kabale', 'invoicing' ), |
|
| 1369 | - 'UG405' => __( 'Kabarole', 'invoicing' ), |
|
| 1370 | - 'UG213' => __( 'Kaberamaido', 'invoicing' ), |
|
| 1371 | - 'UG427' => __( 'Kagadi', 'invoicing' ), |
|
| 1372 | - 'UG428' => __( 'Kakumiro', 'invoicing' ), |
|
| 1373 | - 'UG101' => __( 'Kalangala', 'invoicing' ), |
|
| 1374 | - 'UG222' => __( 'Kaliro', 'invoicing' ), |
|
| 1375 | - 'UG122' => __( 'Kalungu', 'invoicing' ), |
|
| 1376 | - 'UG102' => __( 'Kampala', 'invoicing' ), |
|
| 1377 | - 'UG205' => __( 'Kamuli', 'invoicing' ), |
|
| 1378 | - 'UG413' => __( 'Kamwenge', 'invoicing' ), |
|
| 1379 | - 'UG414' => __( 'Kanungu', 'invoicing' ), |
|
| 1380 | - 'UG206' => __( 'Kapchorwa', 'invoicing' ), |
|
| 1381 | - 'UG236' => __( 'Kapelebyong', 'invoicing' ), |
|
| 1382 | - 'UG126' => __( 'Kasanda', 'invoicing' ), |
|
| 1383 | - 'UG406' => __( 'Kasese', 'invoicing' ), |
|
| 1384 | - 'UG207' => __( 'Katakwi', 'invoicing' ), |
|
| 1385 | - 'UG112' => __( 'Kayunga', 'invoicing' ), |
|
| 1386 | - 'UG407' => __( 'Kibaale', 'invoicing' ), |
|
| 1387 | - 'UG103' => __( 'Kiboga', 'invoicing' ), |
|
| 1388 | - 'UG227' => __( 'Kibuku', 'invoicing' ), |
|
| 1389 | - 'UG432' => __( 'Kikuube', 'invoicing' ), |
|
| 1390 | - 'UG419' => __( 'Kiruhura', 'invoicing' ), |
|
| 1391 | - 'UG421' => __( 'Kiryandongo', 'invoicing' ), |
|
| 1392 | - 'UG408' => __( 'Kisoro', 'invoicing' ), |
|
| 1393 | - 'UG305' => __( 'Kitgum', 'invoicing' ), |
|
| 1394 | - 'UG319' => __( 'Koboko', 'invoicing' ), |
|
| 1395 | - 'UG325' => __( 'Kole', 'invoicing' ), |
|
| 1396 | - 'UG306' => __( 'Kotido', 'invoicing' ), |
|
| 1397 | - 'UG208' => __( 'Kumi', 'invoicing' ), |
|
| 1398 | - 'UG333' => __( 'Kwania', 'invoicing' ), |
|
| 1399 | - 'UG228' => __( 'Kween', 'invoicing' ), |
|
| 1400 | - 'UG123' => __( 'Kyankwanzi', 'invoicing' ), |
|
| 1401 | - 'UG422' => __( 'Kyegegwa', 'invoicing' ), |
|
| 1402 | - 'UG415' => __( 'Kyenjojo', 'invoicing' ), |
|
| 1403 | - 'UG125' => __( 'Kyotera', 'invoicing' ), |
|
| 1404 | - 'UG326' => __( 'Lamwo', 'invoicing' ), |
|
| 1405 | - 'UG307' => __( 'Lira', 'invoicing' ), |
|
| 1406 | - 'UG229' => __( 'Luuka', 'invoicing' ), |
|
| 1407 | - 'UG104' => __( 'Luwero', 'invoicing' ), |
|
| 1408 | - 'UG124' => __( 'Lwengo', 'invoicing' ), |
|
| 1409 | - 'UG114' => __( 'Lyantonde', 'invoicing' ), |
|
| 1410 | - 'UG223' => __( 'Manafwa', 'invoicing' ), |
|
| 1411 | - 'UG320' => __( 'Maracha', 'invoicing' ), |
|
| 1412 | - 'UG105' => __( 'Masaka', 'invoicing' ), |
|
| 1413 | - 'UG409' => __( 'Masindi', 'invoicing' ), |
|
| 1414 | - 'UG214' => __( 'Mayuge', 'invoicing' ), |
|
| 1415 | - 'UG209' => __( 'Mbale', 'invoicing' ), |
|
| 1416 | - 'UG410' => __( 'Mbarara', 'invoicing' ), |
|
| 1417 | - 'UG423' => __( 'Mitooma', 'invoicing' ), |
|
| 1418 | - 'UG115' => __( 'Mityana', 'invoicing' ), |
|
| 1419 | - 'UG308' => __( 'Moroto', 'invoicing' ), |
|
| 1420 | - 'UG309' => __( 'Moyo', 'invoicing' ), |
|
| 1421 | - 'UG106' => __( 'Mpigi', 'invoicing' ), |
|
| 1422 | - 'UG107' => __( 'Mubende', 'invoicing' ), |
|
| 1423 | - 'UG108' => __( 'Mukono', 'invoicing' ), |
|
| 1424 | - 'UG334' => __( 'Nabilatuk', 'invoicing' ), |
|
| 1425 | - 'UG311' => __( 'Nakapiripirit', 'invoicing' ), |
|
| 1426 | - 'UG116' => __( 'Nakaseke', 'invoicing' ), |
|
| 1427 | - 'UG109' => __( 'Nakasongola', 'invoicing' ), |
|
| 1428 | - 'UG230' => __( 'Namayingo', 'invoicing' ), |
|
| 1429 | - 'UG234' => __( 'Namisindwa', 'invoicing' ), |
|
| 1430 | - 'UG224' => __( 'Namutumba', 'invoicing' ), |
|
| 1431 | - 'UG327' => __( 'Napak', 'invoicing' ), |
|
| 1432 | - 'UG310' => __( 'Nebbi', 'invoicing' ), |
|
| 1433 | - 'UG231' => __( 'Ngora', 'invoicing' ), |
|
| 1434 | - 'UG424' => __( 'Ntoroko', 'invoicing' ), |
|
| 1435 | - 'UG411' => __( 'Ntungamo', 'invoicing' ), |
|
| 1436 | - 'UG328' => __( 'Nwoya', 'invoicing' ), |
|
| 1437 | - 'UG331' => __( 'Omoro', 'invoicing' ), |
|
| 1438 | - 'UG329' => __( 'Otuke', 'invoicing' ), |
|
| 1439 | - 'UG321' => __( 'Oyam', 'invoicing' ), |
|
| 1440 | - 'UG312' => __( 'Pader', 'invoicing' ), |
|
| 1441 | - 'UG332' => __( 'Pakwach', 'invoicing' ), |
|
| 1442 | - 'UG210' => __( 'Pallisa', 'invoicing' ), |
|
| 1443 | - 'UG110' => __( 'Rakai', 'invoicing' ), |
|
| 1444 | - 'UG429' => __( 'Rubanda', 'invoicing' ), |
|
| 1445 | - 'UG425' => __( 'Rubirizi', 'invoicing' ), |
|
| 1446 | - 'UG431' => __( 'Rukiga', 'invoicing' ), |
|
| 1447 | - 'UG412' => __( 'Rukungiri', 'invoicing' ), |
|
| 1448 | - 'UG111' => __( 'Sembabule', 'invoicing' ), |
|
| 1449 | - 'UG232' => __( 'Serere', 'invoicing' ), |
|
| 1450 | - 'UG426' => __( 'Sheema', 'invoicing' ), |
|
| 1451 | - 'UG215' => __( 'Sironko', 'invoicing' ), |
|
| 1452 | - 'UG211' => __( 'Soroti', 'invoicing' ), |
|
| 1453 | - 'UG212' => __( 'Tororo', 'invoicing' ), |
|
| 1454 | - 'UG113' => __( 'Wakiso', 'invoicing' ), |
|
| 1455 | - 'UG313' => __( 'Yumbe', 'invoicing' ), |
|
| 1456 | - 'UG330' => __( 'Zombo', 'invoicing' ), |
|
| 1457 | - ), |
|
| 1458 | - 'UM' => array( |
|
| 1459 | - '81' => __( 'Baker Island', 'invoicing' ), |
|
| 1460 | - '84' => __( 'Howland Island', 'invoicing' ), |
|
| 1461 | - '86' => __( 'Jarvis Island', 'invoicing' ), |
|
| 1462 | - '67' => __( 'Johnston Atoll', 'invoicing' ), |
|
| 1463 | - '89' => __( 'Kingman Reef', 'invoicing' ), |
|
| 1464 | - '71' => __( 'Midway Atoll', 'invoicing' ), |
|
| 1465 | - '76' => __( 'Navassa Island', 'invoicing' ), |
|
| 1466 | - '95' => __( 'Palmyra Atoll', 'invoicing' ), |
|
| 1467 | - '79' => __( 'Wake Island', 'invoicing' ), |
|
| 1468 | - ), |
|
| 1469 | - 'US' => array( // United States. |
|
| 1470 | - 'AL' => __( 'Alabama', 'invoicing' ), |
|
| 1471 | - 'AK' => __( 'Alaska', 'invoicing' ), |
|
| 1472 | - 'AZ' => __( 'Arizona', 'invoicing' ), |
|
| 1473 | - 'AR' => __( 'Arkansas', 'invoicing' ), |
|
| 1474 | - 'CA' => __( 'California', 'invoicing' ), |
|
| 1475 | - 'CO' => __( 'Colorado', 'invoicing' ), |
|
| 1476 | - 'CT' => __( 'Connecticut', 'invoicing' ), |
|
| 1477 | - 'DE' => __( 'Delaware', 'invoicing' ), |
|
| 1478 | - 'DC' => __( 'District Of Columbia', 'invoicing' ), |
|
| 1479 | - 'FL' => __( 'Florida', 'invoicing' ), |
|
| 1480 | - 'GA' => _x( 'Georgia', 'US state of Georgia', 'invoicing' ), |
|
| 1481 | - 'HI' => __( 'Hawaii', 'invoicing' ), |
|
| 1482 | - 'ID' => __( 'Idaho', 'invoicing' ), |
|
| 1483 | - 'IL' => __( 'Illinois', 'invoicing' ), |
|
| 1484 | - 'IN' => __( 'Indiana', 'invoicing' ), |
|
| 1485 | - 'IA' => __( 'Iowa', 'invoicing' ), |
|
| 1486 | - 'KS' => __( 'Kansas', 'invoicing' ), |
|
| 1487 | - 'KY' => __( 'Kentucky', 'invoicing' ), |
|
| 1488 | - 'LA' => __( 'Louisiana', 'invoicing' ), |
|
| 1489 | - 'ME' => __( 'Maine', 'invoicing' ), |
|
| 1490 | - 'MD' => __( 'Maryland', 'invoicing' ), |
|
| 1491 | - 'MA' => __( 'Massachusetts', 'invoicing' ), |
|
| 1492 | - 'MI' => __( 'Michigan', 'invoicing' ), |
|
| 1493 | - 'MN' => __( 'Minnesota', 'invoicing' ), |
|
| 1494 | - 'MS' => __( 'Mississippi', 'invoicing' ), |
|
| 1495 | - 'MO' => __( 'Missouri', 'invoicing' ), |
|
| 1496 | - 'MT' => __( 'Montana', 'invoicing' ), |
|
| 1497 | - 'NE' => __( 'Nebraska', 'invoicing' ), |
|
| 1498 | - 'NV' => __( 'Nevada', 'invoicing' ), |
|
| 1499 | - 'NH' => __( 'New Hampshire', 'invoicing' ), |
|
| 1500 | - 'NJ' => __( 'New Jersey', 'invoicing' ), |
|
| 1501 | - 'NM' => __( 'New Mexico', 'invoicing' ), |
|
| 1502 | - 'NY' => __( 'New York', 'invoicing' ), |
|
| 1503 | - 'NC' => __( 'North Carolina', 'invoicing' ), |
|
| 1504 | - 'ND' => __( 'North Dakota', 'invoicing' ), |
|
| 1505 | - 'OH' => __( 'Ohio', 'invoicing' ), |
|
| 1506 | - 'OK' => __( 'Oklahoma', 'invoicing' ), |
|
| 1507 | - 'OR' => __( 'Oregon', 'invoicing' ), |
|
| 1508 | - 'PA' => __( 'Pennsylvania', 'invoicing' ), |
|
| 1509 | - 'RI' => __( 'Rhode Island', 'invoicing' ), |
|
| 1510 | - 'SC' => __( 'South Carolina', 'invoicing' ), |
|
| 1511 | - 'SD' => __( 'South Dakota', 'invoicing' ), |
|
| 1512 | - 'TN' => __( 'Tennessee', 'invoicing' ), |
|
| 1513 | - 'TX' => __( 'Texas', 'invoicing' ), |
|
| 1514 | - 'UT' => __( 'Utah', 'invoicing' ), |
|
| 1515 | - 'VT' => __( 'Vermont', 'invoicing' ), |
|
| 1516 | - 'VA' => __( 'Virginia', 'invoicing' ), |
|
| 1517 | - 'WA' => __( 'Washington', 'invoicing' ), |
|
| 1518 | - 'WV' => __( 'West Virginia', 'invoicing' ), |
|
| 1519 | - 'WI' => __( 'Wisconsin', 'invoicing' ), |
|
| 1520 | - 'WY' => __( 'Wyoming', 'invoicing' ), |
|
| 1521 | - 'AA' => __( 'Armed Forces (AA)', 'invoicing' ), |
|
| 1522 | - 'AE' => __( 'Armed Forces (AE)', 'invoicing' ), |
|
| 1523 | - 'AP' => __( 'Armed Forces (AP)', 'invoicing' ), |
|
| 1524 | - ), |
|
| 1525 | - 'VN' => array(), |
|
| 1526 | - 'YT' => array(), |
|
| 1527 | - 'ZA' => array( // South African states. |
|
| 1528 | - 'EC' => __( 'Eastern Cape', 'invoicing' ), |
|
| 1529 | - 'FS' => __( 'Free State', 'invoicing' ), |
|
| 1530 | - 'GP' => __( 'Gauteng', 'invoicing' ), |
|
| 1531 | - 'KZN' => __( 'KwaZulu-Natal', 'invoicing' ), |
|
| 1532 | - 'LP' => __( 'Limpopo', 'invoicing' ), |
|
| 1533 | - 'MP' => __( 'Mpumalanga', 'invoicing' ), |
|
| 1534 | - 'NC' => __( 'Northern Cape', 'invoicing' ), |
|
| 1535 | - 'NW' => __( 'North West', 'invoicing' ), |
|
| 1536 | - 'WC' => __( 'Western Cape', 'invoicing' ), |
|
| 1537 | - ), |
|
| 1538 | - 'ZM' => array( // Zambia's Provinces. Ref: https://en.wikipedia.org/wiki/ISO_3166-2:ZM. |
|
| 1539 | - 'ZM-01' => __( 'Western', 'invoicing' ), |
|
| 1540 | - 'ZM-02' => __( 'Central', 'invoicing' ), |
|
| 1541 | - 'ZM-03' => __( 'Eastern', 'invoicing' ), |
|
| 1542 | - 'ZM-04' => __( 'Luapula', 'invoicing' ), |
|
| 1543 | - 'ZM-05' => __( 'Northern', 'invoicing' ), |
|
| 1544 | - 'ZM-06' => __( 'North-Western', 'invoicing' ), |
|
| 1545 | - 'ZM-07' => __( 'Southern', 'invoicing' ), |
|
| 1546 | - 'ZM-08' => __( 'Copperbelt', 'invoicing' ), |
|
| 1547 | - 'ZM-09' => __( 'Lusaka', 'invoicing' ), |
|
| 1548 | - 'ZM-10' => __( 'Muchinga', 'invoicing' ), |
|
| 1549 | - ), |
|
| 964 | + /** |
|
| 965 | + * Philippine Provinces. |
|
| 966 | + */ |
|
| 967 | + 'PH' => array( |
|
| 968 | + 'ABR' => __( 'Abra', 'invoicing' ), |
|
| 969 | + 'AGN' => __( 'Agusan del Norte', 'invoicing' ), |
|
| 970 | + 'AGS' => __( 'Agusan del Sur', 'invoicing' ), |
|
| 971 | + 'AKL' => __( 'Aklan', 'invoicing' ), |
|
| 972 | + 'ALB' => __( 'Albay', 'invoicing' ), |
|
| 973 | + 'ANT' => __( 'Antique', 'invoicing' ), |
|
| 974 | + 'APA' => __( 'Apayao', 'invoicing' ), |
|
| 975 | + 'AUR' => __( 'Aurora', 'invoicing' ), |
|
| 976 | + 'BAS' => __( 'Basilan', 'invoicing' ), |
|
| 977 | + 'BAN' => __( 'Bataan', 'invoicing' ), |
|
| 978 | + 'BTN' => __( 'Batanes', 'invoicing' ), |
|
| 979 | + 'BTG' => __( 'Batangas', 'invoicing' ), |
|
| 980 | + 'BEN' => __( 'Benguet', 'invoicing' ), |
|
| 981 | + 'BIL' => __( 'Biliran', 'invoicing' ), |
|
| 982 | + 'BOH' => __( 'Bohol', 'invoicing' ), |
|
| 983 | + 'BUK' => __( 'Bukidnon', 'invoicing' ), |
|
| 984 | + 'BUL' => __( 'Bulacan', 'invoicing' ), |
|
| 985 | + 'CAG' => __( 'Cagayan', 'invoicing' ), |
|
| 986 | + 'CAN' => __( 'Camarines Norte', 'invoicing' ), |
|
| 987 | + 'CAS' => __( 'Camarines Sur', 'invoicing' ), |
|
| 988 | + 'CAM' => __( 'Camiguin', 'invoicing' ), |
|
| 989 | + 'CAP' => __( 'Capiz', 'invoicing' ), |
|
| 990 | + 'CAT' => __( 'Catanduanes', 'invoicing' ), |
|
| 991 | + 'CAV' => __( 'Cavite', 'invoicing' ), |
|
| 992 | + 'CEB' => __( 'Cebu', 'invoicing' ), |
|
| 993 | + 'COM' => __( 'Compostela Valley', 'invoicing' ), |
|
| 994 | + 'NCO' => __( 'Cotabato', 'invoicing' ), |
|
| 995 | + 'DAV' => __( 'Davao del Norte', 'invoicing' ), |
|
| 996 | + 'DAS' => __( 'Davao del Sur', 'invoicing' ), |
|
| 997 | + 'DAC' => __( 'Davao Occidental', 'invoicing' ), |
|
| 998 | + 'DAO' => __( 'Davao Oriental', 'invoicing' ), |
|
| 999 | + 'DIN' => __( 'Dinagat Islands', 'invoicing' ), |
|
| 1000 | + 'EAS' => __( 'Eastern Samar', 'invoicing' ), |
|
| 1001 | + 'GUI' => __( 'Guimaras', 'invoicing' ), |
|
| 1002 | + 'IFU' => __( 'Ifugao', 'invoicing' ), |
|
| 1003 | + 'ILN' => __( 'Ilocos Norte', 'invoicing' ), |
|
| 1004 | + 'ILS' => __( 'Ilocos Sur', 'invoicing' ), |
|
| 1005 | + 'ILI' => __( 'Iloilo', 'invoicing' ), |
|
| 1006 | + 'ISA' => __( 'Isabela', 'invoicing' ), |
|
| 1007 | + 'KAL' => __( 'Kalinga', 'invoicing' ), |
|
| 1008 | + 'LUN' => __( 'La Union', 'invoicing' ), |
|
| 1009 | + 'LAG' => __( 'Laguna', 'invoicing' ), |
|
| 1010 | + 'LAN' => __( 'Lanao del Norte', 'invoicing' ), |
|
| 1011 | + 'LAS' => __( 'Lanao del Sur', 'invoicing' ), |
|
| 1012 | + 'LEY' => __( 'Leyte', 'invoicing' ), |
|
| 1013 | + 'MAG' => __( 'Maguindanao', 'invoicing' ), |
|
| 1014 | + 'MAD' => __( 'Marinduque', 'invoicing' ), |
|
| 1015 | + 'MAS' => __( 'Masbate', 'invoicing' ), |
|
| 1016 | + 'MSC' => __( 'Misamis Occidental', 'invoicing' ), |
|
| 1017 | + 'MSR' => __( 'Misamis Oriental', 'invoicing' ), |
|
| 1018 | + 'MOU' => __( 'Mountain Province', 'invoicing' ), |
|
| 1019 | + 'NEC' => __( 'Negros Occidental', 'invoicing' ), |
|
| 1020 | + 'NER' => __( 'Negros Oriental', 'invoicing' ), |
|
| 1021 | + 'NSA' => __( 'Northern Samar', 'invoicing' ), |
|
| 1022 | + 'NUE' => __( 'Nueva Ecija', 'invoicing' ), |
|
| 1023 | + 'NUV' => __( 'Nueva Vizcaya', 'invoicing' ), |
|
| 1024 | + 'MDC' => __( 'Occidental Mindoro', 'invoicing' ), |
|
| 1025 | + 'MDR' => __( 'Oriental Mindoro', 'invoicing' ), |
|
| 1026 | + 'PLW' => __( 'Palawan', 'invoicing' ), |
|
| 1027 | + 'PAM' => __( 'Pampanga', 'invoicing' ), |
|
| 1028 | + 'PAN' => __( 'Pangasinan', 'invoicing' ), |
|
| 1029 | + 'QUE' => __( 'Quezon', 'invoicing' ), |
|
| 1030 | + 'QUI' => __( 'Quirino', 'invoicing' ), |
|
| 1031 | + 'RIZ' => __( 'Rizal', 'invoicing' ), |
|
| 1032 | + 'ROM' => __( 'Romblon', 'invoicing' ), |
|
| 1033 | + 'WSA' => __( 'Samar', 'invoicing' ), |
|
| 1034 | + 'SAR' => __( 'Sarangani', 'invoicing' ), |
|
| 1035 | + 'SIQ' => __( 'Siquijor', 'invoicing' ), |
|
| 1036 | + 'SOR' => __( 'Sorsogon', 'invoicing' ), |
|
| 1037 | + 'SCO' => __( 'South Cotabato', 'invoicing' ), |
|
| 1038 | + 'SLE' => __( 'Southern Leyte', 'invoicing' ), |
|
| 1039 | + 'SUK' => __( 'Sultan Kudarat', 'invoicing' ), |
|
| 1040 | + 'SLU' => __( 'Sulu', 'invoicing' ), |
|
| 1041 | + 'SUN' => __( 'Surigao del Norte', 'invoicing' ), |
|
| 1042 | + 'SUR' => __( 'Surigao del Sur', 'invoicing' ), |
|
| 1043 | + 'TAR' => __( 'Tarlac', 'invoicing' ), |
|
| 1044 | + 'TAW' => __( 'Tawi-Tawi', 'invoicing' ), |
|
| 1045 | + 'ZMB' => __( 'Zambales', 'invoicing' ), |
|
| 1046 | + 'ZAN' => __( 'Zamboanga del Norte', 'invoicing' ), |
|
| 1047 | + 'ZAS' => __( 'Zamboanga del Sur', 'invoicing' ), |
|
| 1048 | + 'ZSI' => __( 'Zamboanga Sibugay', 'invoicing' ), |
|
| 1049 | + '00' => __( 'Metro Manila', 'invoicing' ), |
|
| 1050 | + ), |
|
| 1051 | + 'PK' => array( // Pakistan's states. |
|
| 1052 | + 'JK' => __( 'Azad Kashmir', 'invoicing' ), |
|
| 1053 | + 'BA' => __( 'Balochistan', 'invoicing' ), |
|
| 1054 | + 'TA' => __( 'FATA', 'invoicing' ), |
|
| 1055 | + 'GB' => __( 'Gilgit Baltistan', 'invoicing' ), |
|
| 1056 | + 'IS' => __( 'Islamabad Capital Territory', 'invoicing' ), |
|
| 1057 | + 'KP' => __( 'Khyber Pakhtunkhwa', 'invoicing' ), |
|
| 1058 | + 'PB' => __( 'Punjab', 'invoicing' ), |
|
| 1059 | + 'SD' => __( 'Sindh', 'invoicing' ), |
|
| 1060 | + ), |
|
| 1061 | + 'PL' => array(), |
|
| 1062 | + 'PT' => array(), |
|
| 1063 | + 'PY' => array( // Paraguay states. |
|
| 1064 | + 'PY-ASU' => __( 'Asunción', 'invoicing' ), |
|
| 1065 | + 'PY-1' => __( 'Concepción', 'invoicing' ), |
|
| 1066 | + 'PY-2' => __( 'San Pedro', 'invoicing' ), |
|
| 1067 | + 'PY-3' => __( 'Cordillera', 'invoicing' ), |
|
| 1068 | + 'PY-4' => __( 'Guairá', 'invoicing' ), |
|
| 1069 | + 'PY-5' => __( 'Caaguazú', 'invoicing' ), |
|
| 1070 | + 'PY-6' => __( 'Caazapá', 'invoicing' ), |
|
| 1071 | + 'PY-7' => __( 'Itapúa', 'invoicing' ), |
|
| 1072 | + 'PY-8' => __( 'Misiones', 'invoicing' ), |
|
| 1073 | + 'PY-9' => __( 'Paraguarí', 'invoicing' ), |
|
| 1074 | + 'PY-10' => __( 'Alto Paraná', 'invoicing' ), |
|
| 1075 | + 'PY-11' => __( 'Central', 'invoicing' ), |
|
| 1076 | + 'PY-12' => __( 'Ñeembucú', 'invoicing' ), |
|
| 1077 | + 'PY-13' => __( 'Amambay', 'invoicing' ), |
|
| 1078 | + 'PY-14' => __( 'Canindeyú', 'invoicing' ), |
|
| 1079 | + 'PY-15' => __( 'Presidente Hayes', 'invoicing' ), |
|
| 1080 | + 'PY-16' => __( 'Alto Paraguay', 'invoicing' ), |
|
| 1081 | + 'PY-17' => __( 'Boquerón', 'invoicing' ), |
|
| 1082 | + ), |
|
| 1083 | + 'RE' => array(), |
|
| 1084 | + 'RO' => array( // Romania states. |
|
| 1085 | + 'AB' => __( 'Alba', 'invoicing' ), |
|
| 1086 | + 'AR' => __( 'Arad', 'invoicing' ), |
|
| 1087 | + 'AG' => __( 'Argeș', 'invoicing' ), |
|
| 1088 | + 'BC' => __( 'Bacău', 'invoicing' ), |
|
| 1089 | + 'BH' => __( 'Bihor', 'invoicing' ), |
|
| 1090 | + 'BN' => __( 'Bistrița-Năsăud', 'invoicing' ), |
|
| 1091 | + 'BT' => __( 'Botoșani', 'invoicing' ), |
|
| 1092 | + 'BR' => __( 'Brăila', 'invoicing' ), |
|
| 1093 | + 'BV' => __( 'Brașov', 'invoicing' ), |
|
| 1094 | + 'B' => __( 'București', 'invoicing' ), |
|
| 1095 | + 'BZ' => __( 'Buzău', 'invoicing' ), |
|
| 1096 | + 'CL' => __( 'Călărași', 'invoicing' ), |
|
| 1097 | + 'CS' => __( 'Caraș-Severin', 'invoicing' ), |
|
| 1098 | + 'CJ' => __( 'Cluj', 'invoicing' ), |
|
| 1099 | + 'CT' => __( 'Constanța', 'invoicing' ), |
|
| 1100 | + 'CV' => __( 'Covasna', 'invoicing' ), |
|
| 1101 | + 'DB' => __( 'Dâmbovița', 'invoicing' ), |
|
| 1102 | + 'DJ' => __( 'Dolj', 'invoicing' ), |
|
| 1103 | + 'GL' => __( 'Galați', 'invoicing' ), |
|
| 1104 | + 'GR' => __( 'Giurgiu', 'invoicing' ), |
|
| 1105 | + 'GJ' => __( 'Gorj', 'invoicing' ), |
|
| 1106 | + 'HR' => __( 'Harghita', 'invoicing' ), |
|
| 1107 | + 'HD' => __( 'Hunedoara', 'invoicing' ), |
|
| 1108 | + 'IL' => __( 'Ialomița', 'invoicing' ), |
|
| 1109 | + 'IS' => __( 'Iași', 'invoicing' ), |
|
| 1110 | + 'IF' => __( 'Ilfov', 'invoicing' ), |
|
| 1111 | + 'MM' => __( 'Maramureș', 'invoicing' ), |
|
| 1112 | + 'MH' => __( 'Mehedinți', 'invoicing' ), |
|
| 1113 | + 'MS' => __( 'Mureș', 'invoicing' ), |
|
| 1114 | + 'NT' => __( 'Neamț', 'invoicing' ), |
|
| 1115 | + 'OT' => __( 'Olt', 'invoicing' ), |
|
| 1116 | + 'PH' => __( 'Prahova', 'invoicing' ), |
|
| 1117 | + 'SJ' => __( 'Sălaj', 'invoicing' ), |
|
| 1118 | + 'SM' => __( 'Satu Mare', 'invoicing' ), |
|
| 1119 | + 'SB' => __( 'Sibiu', 'invoicing' ), |
|
| 1120 | + 'SV' => __( 'Suceava', 'invoicing' ), |
|
| 1121 | + 'TR' => __( 'Teleorman', 'invoicing' ), |
|
| 1122 | + 'TM' => __( 'Timiș', 'invoicing' ), |
|
| 1123 | + 'TL' => __( 'Tulcea', 'invoicing' ), |
|
| 1124 | + 'VL' => __( 'Vâlcea', 'invoicing' ), |
|
| 1125 | + 'VS' => __( 'Vaslui', 'invoicing' ), |
|
| 1126 | + 'VN' => __( 'Vrancea', 'invoicing' ), |
|
| 1127 | + ), |
|
| 1128 | + 'RS' => array(), |
|
| 1129 | + 'SG' => array(), |
|
| 1130 | + 'SK' => array(), |
|
| 1131 | + 'SI' => array(), |
|
| 1132 | + 'TH' => array( // Thailand states. |
|
| 1133 | + 'TH-37' => __( 'Amnat Charoen', 'invoicing' ), |
|
| 1134 | + 'TH-15' => __( 'Ang Thong', 'invoicing' ), |
|
| 1135 | + 'TH-14' => __( 'Ayutthaya', 'invoicing' ), |
|
| 1136 | + 'TH-10' => __( 'Bangkok', 'invoicing' ), |
|
| 1137 | + 'TH-38' => __( 'Bueng Kan', 'invoicing' ), |
|
| 1138 | + 'TH-31' => __( 'Buri Ram', 'invoicing' ), |
|
| 1139 | + 'TH-24' => __( 'Chachoengsao', 'invoicing' ), |
|
| 1140 | + 'TH-18' => __( 'Chai Nat', 'invoicing' ), |
|
| 1141 | + 'TH-36' => __( 'Chaiyaphum', 'invoicing' ), |
|
| 1142 | + 'TH-22' => __( 'Chanthaburi', 'invoicing' ), |
|
| 1143 | + 'TH-50' => __( 'Chiang Mai', 'invoicing' ), |
|
| 1144 | + 'TH-57' => __( 'Chiang Rai', 'invoicing' ), |
|
| 1145 | + 'TH-20' => __( 'Chonburi', 'invoicing' ), |
|
| 1146 | + 'TH-86' => __( 'Chumphon', 'invoicing' ), |
|
| 1147 | + 'TH-46' => __( 'Kalasin', 'invoicing' ), |
|
| 1148 | + 'TH-62' => __( 'Kamphaeng Phet', 'invoicing' ), |
|
| 1149 | + 'TH-71' => __( 'Kanchanaburi', 'invoicing' ), |
|
| 1150 | + 'TH-40' => __( 'Khon Kaen', 'invoicing' ), |
|
| 1151 | + 'TH-81' => __( 'Krabi', 'invoicing' ), |
|
| 1152 | + 'TH-52' => __( 'Lampang', 'invoicing' ), |
|
| 1153 | + 'TH-51' => __( 'Lamphun', 'invoicing' ), |
|
| 1154 | + 'TH-42' => __( 'Loei', 'invoicing' ), |
|
| 1155 | + 'TH-16' => __( 'Lopburi', 'invoicing' ), |
|
| 1156 | + 'TH-58' => __( 'Mae Hong Son', 'invoicing' ), |
|
| 1157 | + 'TH-44' => __( 'Maha Sarakham', 'invoicing' ), |
|
| 1158 | + 'TH-49' => __( 'Mukdahan', 'invoicing' ), |
|
| 1159 | + 'TH-26' => __( 'Nakhon Nayok', 'invoicing' ), |
|
| 1160 | + 'TH-73' => __( 'Nakhon Pathom', 'invoicing' ), |
|
| 1161 | + 'TH-48' => __( 'Nakhon Phanom', 'invoicing' ), |
|
| 1162 | + 'TH-30' => __( 'Nakhon Ratchasima', 'invoicing' ), |
|
| 1163 | + 'TH-60' => __( 'Nakhon Sawan', 'invoicing' ), |
|
| 1164 | + 'TH-80' => __( 'Nakhon Si Thammarat', 'invoicing' ), |
|
| 1165 | + 'TH-55' => __( 'Nan', 'invoicing' ), |
|
| 1166 | + 'TH-96' => __( 'Narathiwat', 'invoicing' ), |
|
| 1167 | + 'TH-39' => __( 'Nong Bua Lam Phu', 'invoicing' ), |
|
| 1168 | + 'TH-43' => __( 'Nong Khai', 'invoicing' ), |
|
| 1169 | + 'TH-12' => __( 'Nonthaburi', 'invoicing' ), |
|
| 1170 | + 'TH-13' => __( 'Pathum Thani', 'invoicing' ), |
|
| 1171 | + 'TH-94' => __( 'Pattani', 'invoicing' ), |
|
| 1172 | + 'TH-82' => __( 'Phang Nga', 'invoicing' ), |
|
| 1173 | + 'TH-93' => __( 'Phatthalung', 'invoicing' ), |
|
| 1174 | + 'TH-56' => __( 'Phayao', 'invoicing' ), |
|
| 1175 | + 'TH-67' => __( 'Phetchabun', 'invoicing' ), |
|
| 1176 | + 'TH-76' => __( 'Phetchaburi', 'invoicing' ), |
|
| 1177 | + 'TH-66' => __( 'Phichit', 'invoicing' ), |
|
| 1178 | + 'TH-65' => __( 'Phitsanulok', 'invoicing' ), |
|
| 1179 | + 'TH-54' => __( 'Phrae', 'invoicing' ), |
|
| 1180 | + 'TH-83' => __( 'Phuket', 'invoicing' ), |
|
| 1181 | + 'TH-25' => __( 'Prachin Buri', 'invoicing' ), |
|
| 1182 | + 'TH-77' => __( 'Prachuap Khiri Khan', 'invoicing' ), |
|
| 1183 | + 'TH-85' => __( 'Ranong', 'invoicing' ), |
|
| 1184 | + 'TH-70' => __( 'Ratchaburi', 'invoicing' ), |
|
| 1185 | + 'TH-21' => __( 'Rayong', 'invoicing' ), |
|
| 1186 | + 'TH-45' => __( 'Roi Et', 'invoicing' ), |
|
| 1187 | + 'TH-27' => __( 'Sa Kaeo', 'invoicing' ), |
|
| 1188 | + 'TH-47' => __( 'Sakon Nakhon', 'invoicing' ), |
|
| 1189 | + 'TH-11' => __( 'Samut Prakan', 'invoicing' ), |
|
| 1190 | + 'TH-74' => __( 'Samut Sakhon', 'invoicing' ), |
|
| 1191 | + 'TH-75' => __( 'Samut Songkhram', 'invoicing' ), |
|
| 1192 | + 'TH-19' => __( 'Saraburi', 'invoicing' ), |
|
| 1193 | + 'TH-91' => __( 'Satun', 'invoicing' ), |
|
| 1194 | + 'TH-17' => __( 'Sing Buri', 'invoicing' ), |
|
| 1195 | + 'TH-33' => __( 'Sisaket', 'invoicing' ), |
|
| 1196 | + 'TH-90' => __( 'Songkhla', 'invoicing' ), |
|
| 1197 | + 'TH-64' => __( 'Sukhothai', 'invoicing' ), |
|
| 1198 | + 'TH-72' => __( 'Suphan Buri', 'invoicing' ), |
|
| 1199 | + 'TH-84' => __( 'Surat Thani', 'invoicing' ), |
|
| 1200 | + 'TH-32' => __( 'Surin', 'invoicing' ), |
|
| 1201 | + 'TH-63' => __( 'Tak', 'invoicing' ), |
|
| 1202 | + 'TH-92' => __( 'Trang', 'invoicing' ), |
|
| 1203 | + 'TH-23' => __( 'Trat', 'invoicing' ), |
|
| 1204 | + 'TH-34' => __( 'Ubon Ratchathani', 'invoicing' ), |
|
| 1205 | + 'TH-41' => __( 'Udon Thani', 'invoicing' ), |
|
| 1206 | + 'TH-61' => __( 'Uthai Thani', 'invoicing' ), |
|
| 1207 | + 'TH-53' => __( 'Uttaradit', 'invoicing' ), |
|
| 1208 | + 'TH-95' => __( 'Yala', 'invoicing' ), |
|
| 1209 | + 'TH-35' => __( 'Yasothon', 'invoicing' ), |
|
| 1210 | + ), |
|
| 1211 | + 'TR' => array( // Turkey States. |
|
| 1212 | + 'TR01' => __( 'Adana', 'invoicing' ), |
|
| 1213 | + 'TR02' => __( 'Adıyaman', 'invoicing' ), |
|
| 1214 | + 'TR03' => __( 'Afyon', 'invoicing' ), |
|
| 1215 | + 'TR04' => __( 'Ağrı', 'invoicing' ), |
|
| 1216 | + 'TR05' => __( 'Amasya', 'invoicing' ), |
|
| 1217 | + 'TR06' => __( 'Ankara', 'invoicing' ), |
|
| 1218 | + 'TR07' => __( 'Antalya', 'invoicing' ), |
|
| 1219 | + 'TR08' => __( 'Artvin', 'invoicing' ), |
|
| 1220 | + 'TR09' => __( 'Aydın', 'invoicing' ), |
|
| 1221 | + 'TR10' => __( 'Balıkesir', 'invoicing' ), |
|
| 1222 | + 'TR11' => __( 'Bilecik', 'invoicing' ), |
|
| 1223 | + 'TR12' => __( 'Bingöl', 'invoicing' ), |
|
| 1224 | + 'TR13' => __( 'Bitlis', 'invoicing' ), |
|
| 1225 | + 'TR14' => __( 'Bolu', 'invoicing' ), |
|
| 1226 | + 'TR15' => __( 'Burdur', 'invoicing' ), |
|
| 1227 | + 'TR16' => __( 'Bursa', 'invoicing' ), |
|
| 1228 | + 'TR17' => __( 'Çanakkale', 'invoicing' ), |
|
| 1229 | + 'TR18' => __( 'Çankırı', 'invoicing' ), |
|
| 1230 | + 'TR19' => __( 'Çorum', 'invoicing' ), |
|
| 1231 | + 'TR20' => __( 'Denizli', 'invoicing' ), |
|
| 1232 | + 'TR21' => __( 'Diyarbakır', 'invoicing' ), |
|
| 1233 | + 'TR22' => __( 'Edirne', 'invoicing' ), |
|
| 1234 | + 'TR23' => __( 'Elazığ', 'invoicing' ), |
|
| 1235 | + 'TR24' => __( 'Erzincan', 'invoicing' ), |
|
| 1236 | + 'TR25' => __( 'Erzurum', 'invoicing' ), |
|
| 1237 | + 'TR26' => __( 'Eskişehir', 'invoicing' ), |
|
| 1238 | + 'TR27' => __( 'Gaziantep', 'invoicing' ), |
|
| 1239 | + 'TR28' => __( 'Giresun', 'invoicing' ), |
|
| 1240 | + 'TR29' => __( 'Gümüşhane', 'invoicing' ), |
|
| 1241 | + 'TR30' => __( 'Hakkari', 'invoicing' ), |
|
| 1242 | + 'TR31' => __( 'Hatay', 'invoicing' ), |
|
| 1243 | + 'TR32' => __( 'Isparta', 'invoicing' ), |
|
| 1244 | + 'TR33' => __( 'İçel', 'invoicing' ), |
|
| 1245 | + 'TR34' => __( 'İstanbul', 'invoicing' ), |
|
| 1246 | + 'TR35' => __( 'İzmir', 'invoicing' ), |
|
| 1247 | + 'TR36' => __( 'Kars', 'invoicing' ), |
|
| 1248 | + 'TR37' => __( 'Kastamonu', 'invoicing' ), |
|
| 1249 | + 'TR38' => __( 'Kayseri', 'invoicing' ), |
|
| 1250 | + 'TR39' => __( 'Kırklareli', 'invoicing' ), |
|
| 1251 | + 'TR40' => __( 'Kırşehir', 'invoicing' ), |
|
| 1252 | + 'TR41' => __( 'Kocaeli', 'invoicing' ), |
|
| 1253 | + 'TR42' => __( 'Konya', 'invoicing' ), |
|
| 1254 | + 'TR43' => __( 'Kütahya', 'invoicing' ), |
|
| 1255 | + 'TR44' => __( 'Malatya', 'invoicing' ), |
|
| 1256 | + 'TR45' => __( 'Manisa', 'invoicing' ), |
|
| 1257 | + 'TR46' => __( 'Kahramanmaraş', 'invoicing' ), |
|
| 1258 | + 'TR47' => __( 'Mardin', 'invoicing' ), |
|
| 1259 | + 'TR48' => __( 'Muğla', 'invoicing' ), |
|
| 1260 | + 'TR49' => __( 'Muş', 'invoicing' ), |
|
| 1261 | + 'TR50' => __( 'Nevşehir', 'invoicing' ), |
|
| 1262 | + 'TR51' => __( 'Niğde', 'invoicing' ), |
|
| 1263 | + 'TR52' => __( 'Ordu', 'invoicing' ), |
|
| 1264 | + 'TR53' => __( 'Rize', 'invoicing' ), |
|
| 1265 | + 'TR54' => __( 'Sakarya', 'invoicing' ), |
|
| 1266 | + 'TR55' => __( 'Samsun', 'invoicing' ), |
|
| 1267 | + 'TR56' => __( 'Siirt', 'invoicing' ), |
|
| 1268 | + 'TR57' => __( 'Sinop', 'invoicing' ), |
|
| 1269 | + 'TR58' => __( 'Sivas', 'invoicing' ), |
|
| 1270 | + 'TR59' => __( 'Tekirdağ', 'invoicing' ), |
|
| 1271 | + 'TR60' => __( 'Tokat', 'invoicing' ), |
|
| 1272 | + 'TR61' => __( 'Trabzon', 'invoicing' ), |
|
| 1273 | + 'TR62' => __( 'Tunceli', 'invoicing' ), |
|
| 1274 | + 'TR63' => __( 'Şanlıurfa', 'invoicing' ), |
|
| 1275 | + 'TR64' => __( 'Uşak', 'invoicing' ), |
|
| 1276 | + 'TR65' => __( 'Van', 'invoicing' ), |
|
| 1277 | + 'TR66' => __( 'Yozgat', 'invoicing' ), |
|
| 1278 | + 'TR67' => __( 'Zonguldak', 'invoicing' ), |
|
| 1279 | + 'TR68' => __( 'Aksaray', 'invoicing' ), |
|
| 1280 | + 'TR69' => __( 'Bayburt', 'invoicing' ), |
|
| 1281 | + 'TR70' => __( 'Karaman', 'invoicing' ), |
|
| 1282 | + 'TR71' => __( 'Kırıkkale', 'invoicing' ), |
|
| 1283 | + 'TR72' => __( 'Batman', 'invoicing' ), |
|
| 1284 | + 'TR73' => __( 'Şırnak', 'invoicing' ), |
|
| 1285 | + 'TR74' => __( 'Bartın', 'invoicing' ), |
|
| 1286 | + 'TR75' => __( 'Ardahan', 'invoicing' ), |
|
| 1287 | + 'TR76' => __( 'Iğdır', 'invoicing' ), |
|
| 1288 | + 'TR77' => __( 'Yalova', 'invoicing' ), |
|
| 1289 | + 'TR78' => __( 'Karabük', 'invoicing' ), |
|
| 1290 | + 'TR79' => __( 'Kilis', 'invoicing' ), |
|
| 1291 | + 'TR80' => __( 'Osmaniye', 'invoicing' ), |
|
| 1292 | + 'TR81' => __( 'Düzce', 'invoicing' ), |
|
| 1293 | + ), |
|
| 1294 | + 'TZ' => array( // Tanzania States. |
|
| 1295 | + 'TZ01' => __( 'Arusha', 'invoicing' ), |
|
| 1296 | + 'TZ02' => __( 'Dar es Salaam', 'invoicing' ), |
|
| 1297 | + 'TZ03' => __( 'Dodoma', 'invoicing' ), |
|
| 1298 | + 'TZ04' => __( 'Iringa', 'invoicing' ), |
|
| 1299 | + 'TZ05' => __( 'Kagera', 'invoicing' ), |
|
| 1300 | + 'TZ06' => __( 'Pemba North', 'invoicing' ), |
|
| 1301 | + 'TZ07' => __( 'Zanzibar North', 'invoicing' ), |
|
| 1302 | + 'TZ08' => __( 'Kigoma', 'invoicing' ), |
|
| 1303 | + 'TZ09' => __( 'Kilimanjaro', 'invoicing' ), |
|
| 1304 | + 'TZ10' => __( 'Pemba South', 'invoicing' ), |
|
| 1305 | + 'TZ11' => __( 'Zanzibar South', 'invoicing' ), |
|
| 1306 | + 'TZ12' => __( 'Lindi', 'invoicing' ), |
|
| 1307 | + 'TZ13' => __( 'Mara', 'invoicing' ), |
|
| 1308 | + 'TZ14' => __( 'Mbeya', 'invoicing' ), |
|
| 1309 | + 'TZ15' => __( 'Zanzibar West', 'invoicing' ), |
|
| 1310 | + 'TZ16' => __( 'Morogoro', 'invoicing' ), |
|
| 1311 | + 'TZ17' => __( 'Mtwara', 'invoicing' ), |
|
| 1312 | + 'TZ18' => __( 'Mwanza', 'invoicing' ), |
|
| 1313 | + 'TZ19' => __( 'Coast', 'invoicing' ), |
|
| 1314 | + 'TZ20' => __( 'Rukwa', 'invoicing' ), |
|
| 1315 | + 'TZ21' => __( 'Ruvuma', 'invoicing' ), |
|
| 1316 | + 'TZ22' => __( 'Shinyanga', 'invoicing' ), |
|
| 1317 | + 'TZ23' => __( 'Singida', 'invoicing' ), |
|
| 1318 | + 'TZ24' => __( 'Tabora', 'invoicing' ), |
|
| 1319 | + 'TZ25' => __( 'Tanga', 'invoicing' ), |
|
| 1320 | + 'TZ26' => __( 'Manyara', 'invoicing' ), |
|
| 1321 | + 'TZ27' => __( 'Geita', 'invoicing' ), |
|
| 1322 | + 'TZ28' => __( 'Katavi', 'invoicing' ), |
|
| 1323 | + 'TZ29' => __( 'Njombe', 'invoicing' ), |
|
| 1324 | + 'TZ30' => __( 'Simiyu', 'invoicing' ), |
|
| 1325 | + ), |
|
| 1326 | + 'LK' => array(), |
|
| 1327 | + 'SE' => array(), |
|
| 1328 | + 'UG' => array( // Uganda districts. Ref: https://en.wikipedia.org/wiki/ISO_3166-2:UG. |
|
| 1329 | + 'UG314' => __( 'Abim', 'invoicing' ), |
|
| 1330 | + 'UG301' => __( 'Adjumani', 'invoicing' ), |
|
| 1331 | + 'UG322' => __( 'Agago', 'invoicing' ), |
|
| 1332 | + 'UG323' => __( 'Alebtong', 'invoicing' ), |
|
| 1333 | + 'UG315' => __( 'Amolatar', 'invoicing' ), |
|
| 1334 | + 'UG324' => __( 'Amudat', 'invoicing' ), |
|
| 1335 | + 'UG216' => __( 'Amuria', 'invoicing' ), |
|
| 1336 | + 'UG316' => __( 'Amuru', 'invoicing' ), |
|
| 1337 | + 'UG302' => __( 'Apac', 'invoicing' ), |
|
| 1338 | + 'UG303' => __( 'Arua', 'invoicing' ), |
|
| 1339 | + 'UG217' => __( 'Budaka', 'invoicing' ), |
|
| 1340 | + 'UG218' => __( 'Bududa', 'invoicing' ), |
|
| 1341 | + 'UG201' => __( 'Bugiri', 'invoicing' ), |
|
| 1342 | + 'UG235' => __( 'Bugweri', 'invoicing' ), |
|
| 1343 | + 'UG420' => __( 'Buhweju', 'invoicing' ), |
|
| 1344 | + 'UG117' => __( 'Buikwe', 'invoicing' ), |
|
| 1345 | + 'UG219' => __( 'Bukedea', 'invoicing' ), |
|
| 1346 | + 'UG118' => __( 'Bukomansimbi', 'invoicing' ), |
|
| 1347 | + 'UG220' => __( 'Bukwa', 'invoicing' ), |
|
| 1348 | + 'UG225' => __( 'Bulambuli', 'invoicing' ), |
|
| 1349 | + 'UG416' => __( 'Buliisa', 'invoicing' ), |
|
| 1350 | + 'UG401' => __( 'Bundibugyo', 'invoicing' ), |
|
| 1351 | + 'UG430' => __( 'Bunyangabu', 'invoicing' ), |
|
| 1352 | + 'UG402' => __( 'Bushenyi', 'invoicing' ), |
|
| 1353 | + 'UG202' => __( 'Busia', 'invoicing' ), |
|
| 1354 | + 'UG221' => __( 'Butaleja', 'invoicing' ), |
|
| 1355 | + 'UG119' => __( 'Butambala', 'invoicing' ), |
|
| 1356 | + 'UG233' => __( 'Butebo', 'invoicing' ), |
|
| 1357 | + 'UG120' => __( 'Buvuma', 'invoicing' ), |
|
| 1358 | + 'UG226' => __( 'Buyende', 'invoicing' ), |
|
| 1359 | + 'UG317' => __( 'Dokolo', 'invoicing' ), |
|
| 1360 | + 'UG121' => __( 'Gomba', 'invoicing' ), |
|
| 1361 | + 'UG304' => __( 'Gulu', 'invoicing' ), |
|
| 1362 | + 'UG403' => __( 'Hoima', 'invoicing' ), |
|
| 1363 | + 'UG417' => __( 'Ibanda', 'invoicing' ), |
|
| 1364 | + 'UG203' => __( 'Iganga', 'invoicing' ), |
|
| 1365 | + 'UG418' => __( 'Isingiro', 'invoicing' ), |
|
| 1366 | + 'UG204' => __( 'Jinja', 'invoicing' ), |
|
| 1367 | + 'UG318' => __( 'Kaabong', 'invoicing' ), |
|
| 1368 | + 'UG404' => __( 'Kabale', 'invoicing' ), |
|
| 1369 | + 'UG405' => __( 'Kabarole', 'invoicing' ), |
|
| 1370 | + 'UG213' => __( 'Kaberamaido', 'invoicing' ), |
|
| 1371 | + 'UG427' => __( 'Kagadi', 'invoicing' ), |
|
| 1372 | + 'UG428' => __( 'Kakumiro', 'invoicing' ), |
|
| 1373 | + 'UG101' => __( 'Kalangala', 'invoicing' ), |
|
| 1374 | + 'UG222' => __( 'Kaliro', 'invoicing' ), |
|
| 1375 | + 'UG122' => __( 'Kalungu', 'invoicing' ), |
|
| 1376 | + 'UG102' => __( 'Kampala', 'invoicing' ), |
|
| 1377 | + 'UG205' => __( 'Kamuli', 'invoicing' ), |
|
| 1378 | + 'UG413' => __( 'Kamwenge', 'invoicing' ), |
|
| 1379 | + 'UG414' => __( 'Kanungu', 'invoicing' ), |
|
| 1380 | + 'UG206' => __( 'Kapchorwa', 'invoicing' ), |
|
| 1381 | + 'UG236' => __( 'Kapelebyong', 'invoicing' ), |
|
| 1382 | + 'UG126' => __( 'Kasanda', 'invoicing' ), |
|
| 1383 | + 'UG406' => __( 'Kasese', 'invoicing' ), |
|
| 1384 | + 'UG207' => __( 'Katakwi', 'invoicing' ), |
|
| 1385 | + 'UG112' => __( 'Kayunga', 'invoicing' ), |
|
| 1386 | + 'UG407' => __( 'Kibaale', 'invoicing' ), |
|
| 1387 | + 'UG103' => __( 'Kiboga', 'invoicing' ), |
|
| 1388 | + 'UG227' => __( 'Kibuku', 'invoicing' ), |
|
| 1389 | + 'UG432' => __( 'Kikuube', 'invoicing' ), |
|
| 1390 | + 'UG419' => __( 'Kiruhura', 'invoicing' ), |
|
| 1391 | + 'UG421' => __( 'Kiryandongo', 'invoicing' ), |
|
| 1392 | + 'UG408' => __( 'Kisoro', 'invoicing' ), |
|
| 1393 | + 'UG305' => __( 'Kitgum', 'invoicing' ), |
|
| 1394 | + 'UG319' => __( 'Koboko', 'invoicing' ), |
|
| 1395 | + 'UG325' => __( 'Kole', 'invoicing' ), |
|
| 1396 | + 'UG306' => __( 'Kotido', 'invoicing' ), |
|
| 1397 | + 'UG208' => __( 'Kumi', 'invoicing' ), |
|
| 1398 | + 'UG333' => __( 'Kwania', 'invoicing' ), |
|
| 1399 | + 'UG228' => __( 'Kween', 'invoicing' ), |
|
| 1400 | + 'UG123' => __( 'Kyankwanzi', 'invoicing' ), |
|
| 1401 | + 'UG422' => __( 'Kyegegwa', 'invoicing' ), |
|
| 1402 | + 'UG415' => __( 'Kyenjojo', 'invoicing' ), |
|
| 1403 | + 'UG125' => __( 'Kyotera', 'invoicing' ), |
|
| 1404 | + 'UG326' => __( 'Lamwo', 'invoicing' ), |
|
| 1405 | + 'UG307' => __( 'Lira', 'invoicing' ), |
|
| 1406 | + 'UG229' => __( 'Luuka', 'invoicing' ), |
|
| 1407 | + 'UG104' => __( 'Luwero', 'invoicing' ), |
|
| 1408 | + 'UG124' => __( 'Lwengo', 'invoicing' ), |
|
| 1409 | + 'UG114' => __( 'Lyantonde', 'invoicing' ), |
|
| 1410 | + 'UG223' => __( 'Manafwa', 'invoicing' ), |
|
| 1411 | + 'UG320' => __( 'Maracha', 'invoicing' ), |
|
| 1412 | + 'UG105' => __( 'Masaka', 'invoicing' ), |
|
| 1413 | + 'UG409' => __( 'Masindi', 'invoicing' ), |
|
| 1414 | + 'UG214' => __( 'Mayuge', 'invoicing' ), |
|
| 1415 | + 'UG209' => __( 'Mbale', 'invoicing' ), |
|
| 1416 | + 'UG410' => __( 'Mbarara', 'invoicing' ), |
|
| 1417 | + 'UG423' => __( 'Mitooma', 'invoicing' ), |
|
| 1418 | + 'UG115' => __( 'Mityana', 'invoicing' ), |
|
| 1419 | + 'UG308' => __( 'Moroto', 'invoicing' ), |
|
| 1420 | + 'UG309' => __( 'Moyo', 'invoicing' ), |
|
| 1421 | + 'UG106' => __( 'Mpigi', 'invoicing' ), |
|
| 1422 | + 'UG107' => __( 'Mubende', 'invoicing' ), |
|
| 1423 | + 'UG108' => __( 'Mukono', 'invoicing' ), |
|
| 1424 | + 'UG334' => __( 'Nabilatuk', 'invoicing' ), |
|
| 1425 | + 'UG311' => __( 'Nakapiripirit', 'invoicing' ), |
|
| 1426 | + 'UG116' => __( 'Nakaseke', 'invoicing' ), |
|
| 1427 | + 'UG109' => __( 'Nakasongola', 'invoicing' ), |
|
| 1428 | + 'UG230' => __( 'Namayingo', 'invoicing' ), |
|
| 1429 | + 'UG234' => __( 'Namisindwa', 'invoicing' ), |
|
| 1430 | + 'UG224' => __( 'Namutumba', 'invoicing' ), |
|
| 1431 | + 'UG327' => __( 'Napak', 'invoicing' ), |
|
| 1432 | + 'UG310' => __( 'Nebbi', 'invoicing' ), |
|
| 1433 | + 'UG231' => __( 'Ngora', 'invoicing' ), |
|
| 1434 | + 'UG424' => __( 'Ntoroko', 'invoicing' ), |
|
| 1435 | + 'UG411' => __( 'Ntungamo', 'invoicing' ), |
|
| 1436 | + 'UG328' => __( 'Nwoya', 'invoicing' ), |
|
| 1437 | + 'UG331' => __( 'Omoro', 'invoicing' ), |
|
| 1438 | + 'UG329' => __( 'Otuke', 'invoicing' ), |
|
| 1439 | + 'UG321' => __( 'Oyam', 'invoicing' ), |
|
| 1440 | + 'UG312' => __( 'Pader', 'invoicing' ), |
|
| 1441 | + 'UG332' => __( 'Pakwach', 'invoicing' ), |
|
| 1442 | + 'UG210' => __( 'Pallisa', 'invoicing' ), |
|
| 1443 | + 'UG110' => __( 'Rakai', 'invoicing' ), |
|
| 1444 | + 'UG429' => __( 'Rubanda', 'invoicing' ), |
|
| 1445 | + 'UG425' => __( 'Rubirizi', 'invoicing' ), |
|
| 1446 | + 'UG431' => __( 'Rukiga', 'invoicing' ), |
|
| 1447 | + 'UG412' => __( 'Rukungiri', 'invoicing' ), |
|
| 1448 | + 'UG111' => __( 'Sembabule', 'invoicing' ), |
|
| 1449 | + 'UG232' => __( 'Serere', 'invoicing' ), |
|
| 1450 | + 'UG426' => __( 'Sheema', 'invoicing' ), |
|
| 1451 | + 'UG215' => __( 'Sironko', 'invoicing' ), |
|
| 1452 | + 'UG211' => __( 'Soroti', 'invoicing' ), |
|
| 1453 | + 'UG212' => __( 'Tororo', 'invoicing' ), |
|
| 1454 | + 'UG113' => __( 'Wakiso', 'invoicing' ), |
|
| 1455 | + 'UG313' => __( 'Yumbe', 'invoicing' ), |
|
| 1456 | + 'UG330' => __( 'Zombo', 'invoicing' ), |
|
| 1457 | + ), |
|
| 1458 | + 'UM' => array( |
|
| 1459 | + '81' => __( 'Baker Island', 'invoicing' ), |
|
| 1460 | + '84' => __( 'Howland Island', 'invoicing' ), |
|
| 1461 | + '86' => __( 'Jarvis Island', 'invoicing' ), |
|
| 1462 | + '67' => __( 'Johnston Atoll', 'invoicing' ), |
|
| 1463 | + '89' => __( 'Kingman Reef', 'invoicing' ), |
|
| 1464 | + '71' => __( 'Midway Atoll', 'invoicing' ), |
|
| 1465 | + '76' => __( 'Navassa Island', 'invoicing' ), |
|
| 1466 | + '95' => __( 'Palmyra Atoll', 'invoicing' ), |
|
| 1467 | + '79' => __( 'Wake Island', 'invoicing' ), |
|
| 1468 | + ), |
|
| 1469 | + 'US' => array( // United States. |
|
| 1470 | + 'AL' => __( 'Alabama', 'invoicing' ), |
|
| 1471 | + 'AK' => __( 'Alaska', 'invoicing' ), |
|
| 1472 | + 'AZ' => __( 'Arizona', 'invoicing' ), |
|
| 1473 | + 'AR' => __( 'Arkansas', 'invoicing' ), |
|
| 1474 | + 'CA' => __( 'California', 'invoicing' ), |
|
| 1475 | + 'CO' => __( 'Colorado', 'invoicing' ), |
|
| 1476 | + 'CT' => __( 'Connecticut', 'invoicing' ), |
|
| 1477 | + 'DE' => __( 'Delaware', 'invoicing' ), |
|
| 1478 | + 'DC' => __( 'District Of Columbia', 'invoicing' ), |
|
| 1479 | + 'FL' => __( 'Florida', 'invoicing' ), |
|
| 1480 | + 'GA' => _x( 'Georgia', 'US state of Georgia', 'invoicing' ), |
|
| 1481 | + 'HI' => __( 'Hawaii', 'invoicing' ), |
|
| 1482 | + 'ID' => __( 'Idaho', 'invoicing' ), |
|
| 1483 | + 'IL' => __( 'Illinois', 'invoicing' ), |
|
| 1484 | + 'IN' => __( 'Indiana', 'invoicing' ), |
|
| 1485 | + 'IA' => __( 'Iowa', 'invoicing' ), |
|
| 1486 | + 'KS' => __( 'Kansas', 'invoicing' ), |
|
| 1487 | + 'KY' => __( 'Kentucky', 'invoicing' ), |
|
| 1488 | + 'LA' => __( 'Louisiana', 'invoicing' ), |
|
| 1489 | + 'ME' => __( 'Maine', 'invoicing' ), |
|
| 1490 | + 'MD' => __( 'Maryland', 'invoicing' ), |
|
| 1491 | + 'MA' => __( 'Massachusetts', 'invoicing' ), |
|
| 1492 | + 'MI' => __( 'Michigan', 'invoicing' ), |
|
| 1493 | + 'MN' => __( 'Minnesota', 'invoicing' ), |
|
| 1494 | + 'MS' => __( 'Mississippi', 'invoicing' ), |
|
| 1495 | + 'MO' => __( 'Missouri', 'invoicing' ), |
|
| 1496 | + 'MT' => __( 'Montana', 'invoicing' ), |
|
| 1497 | + 'NE' => __( 'Nebraska', 'invoicing' ), |
|
| 1498 | + 'NV' => __( 'Nevada', 'invoicing' ), |
|
| 1499 | + 'NH' => __( 'New Hampshire', 'invoicing' ), |
|
| 1500 | + 'NJ' => __( 'New Jersey', 'invoicing' ), |
|
| 1501 | + 'NM' => __( 'New Mexico', 'invoicing' ), |
|
| 1502 | + 'NY' => __( 'New York', 'invoicing' ), |
|
| 1503 | + 'NC' => __( 'North Carolina', 'invoicing' ), |
|
| 1504 | + 'ND' => __( 'North Dakota', 'invoicing' ), |
|
| 1505 | + 'OH' => __( 'Ohio', 'invoicing' ), |
|
| 1506 | + 'OK' => __( 'Oklahoma', 'invoicing' ), |
|
| 1507 | + 'OR' => __( 'Oregon', 'invoicing' ), |
|
| 1508 | + 'PA' => __( 'Pennsylvania', 'invoicing' ), |
|
| 1509 | + 'RI' => __( 'Rhode Island', 'invoicing' ), |
|
| 1510 | + 'SC' => __( 'South Carolina', 'invoicing' ), |
|
| 1511 | + 'SD' => __( 'South Dakota', 'invoicing' ), |
|
| 1512 | + 'TN' => __( 'Tennessee', 'invoicing' ), |
|
| 1513 | + 'TX' => __( 'Texas', 'invoicing' ), |
|
| 1514 | + 'UT' => __( 'Utah', 'invoicing' ), |
|
| 1515 | + 'VT' => __( 'Vermont', 'invoicing' ), |
|
| 1516 | + 'VA' => __( 'Virginia', 'invoicing' ), |
|
| 1517 | + 'WA' => __( 'Washington', 'invoicing' ), |
|
| 1518 | + 'WV' => __( 'West Virginia', 'invoicing' ), |
|
| 1519 | + 'WI' => __( 'Wisconsin', 'invoicing' ), |
|
| 1520 | + 'WY' => __( 'Wyoming', 'invoicing' ), |
|
| 1521 | + 'AA' => __( 'Armed Forces (AA)', 'invoicing' ), |
|
| 1522 | + 'AE' => __( 'Armed Forces (AE)', 'invoicing' ), |
|
| 1523 | + 'AP' => __( 'Armed Forces (AP)', 'invoicing' ), |
|
| 1524 | + ), |
|
| 1525 | + 'VN' => array(), |
|
| 1526 | + 'YT' => array(), |
|
| 1527 | + 'ZA' => array( // South African states. |
|
| 1528 | + 'EC' => __( 'Eastern Cape', 'invoicing' ), |
|
| 1529 | + 'FS' => __( 'Free State', 'invoicing' ), |
|
| 1530 | + 'GP' => __( 'Gauteng', 'invoicing' ), |
|
| 1531 | + 'KZN' => __( 'KwaZulu-Natal', 'invoicing' ), |
|
| 1532 | + 'LP' => __( 'Limpopo', 'invoicing' ), |
|
| 1533 | + 'MP' => __( 'Mpumalanga', 'invoicing' ), |
|
| 1534 | + 'NC' => __( 'Northern Cape', 'invoicing' ), |
|
| 1535 | + 'NW' => __( 'North West', 'invoicing' ), |
|
| 1536 | + 'WC' => __( 'Western Cape', 'invoicing' ), |
|
| 1537 | + ), |
|
| 1538 | + 'ZM' => array( // Zambia's Provinces. Ref: https://en.wikipedia.org/wiki/ISO_3166-2:ZM. |
|
| 1539 | + 'ZM-01' => __( 'Western', 'invoicing' ), |
|
| 1540 | + 'ZM-02' => __( 'Central', 'invoicing' ), |
|
| 1541 | + 'ZM-03' => __( 'Eastern', 'invoicing' ), |
|
| 1542 | + 'ZM-04' => __( 'Luapula', 'invoicing' ), |
|
| 1543 | + 'ZM-05' => __( 'Northern', 'invoicing' ), |
|
| 1544 | + 'ZM-06' => __( 'North-Western', 'invoicing' ), |
|
| 1545 | + 'ZM-07' => __( 'Southern', 'invoicing' ), |
|
| 1546 | + 'ZM-08' => __( 'Copperbelt', 'invoicing' ), |
|
| 1547 | + 'ZM-09' => __( 'Lusaka', 'invoicing' ), |
|
| 1548 | + 'ZM-10' => __( 'Muchinga', 'invoicing' ), |
|
| 1549 | + ), |
|
| 1550 | 1550 | ); |
@@ -11,632 +11,632 @@ discard block |
||
| 11 | 11 | * @version 1.0.14 |
| 12 | 12 | */ |
| 13 | 13 | |
| 14 | -defined( 'ABSPATH' ) || exit; |
|
| 14 | +defined('ABSPATH') || exit; |
|
| 15 | 15 | |
| 16 | 16 | return array( |
| 17 | 17 | 'AF' => array(), |
| 18 | 18 | 'AO' => array( // Angola states. |
| 19 | - 'BGO' => __( 'Bengo', 'invoicing' ), |
|
| 20 | - 'BLU' => __( 'Benguela', 'invoicing' ), |
|
| 21 | - 'BIE' => __( 'Bié', 'invoicing' ), |
|
| 22 | - 'CAB' => __( 'Cabinda', 'invoicing' ), |
|
| 23 | - 'CNN' => __( 'Cunene', 'invoicing' ), |
|
| 24 | - 'HUA' => __( 'Huambo', 'invoicing' ), |
|
| 25 | - 'HUI' => __( 'Huíla', 'invoicing' ), |
|
| 26 | - 'CCU' => __( 'Kuando Kubango', 'invoicing' ), |
|
| 27 | - 'CNO' => __( 'Kwanza-Norte', 'invoicing' ), |
|
| 28 | - 'CUS' => __( 'Kwanza-Sul', 'invoicing' ), |
|
| 29 | - 'LUA' => __( 'Luanda', 'invoicing' ), |
|
| 30 | - 'LNO' => __( 'Lunda-Norte', 'invoicing' ), |
|
| 31 | - 'LSU' => __( 'Lunda-Sul', 'invoicing' ), |
|
| 32 | - 'MAL' => __( 'Malanje', 'invoicing' ), |
|
| 33 | - 'MOX' => __( 'Moxico', 'invoicing' ), |
|
| 34 | - 'NAM' => __( 'Namibe', 'invoicing' ), |
|
| 35 | - 'UIG' => __( 'Uíge', 'invoicing' ), |
|
| 36 | - 'ZAI' => __( 'Zaire', 'invoicing' ), |
|
| 19 | + 'BGO' => __('Bengo', 'invoicing'), |
|
| 20 | + 'BLU' => __('Benguela', 'invoicing'), |
|
| 21 | + 'BIE' => __('Bié', 'invoicing'), |
|
| 22 | + 'CAB' => __('Cabinda', 'invoicing'), |
|
| 23 | + 'CNN' => __('Cunene', 'invoicing'), |
|
| 24 | + 'HUA' => __('Huambo', 'invoicing'), |
|
| 25 | + 'HUI' => __('Huíla', 'invoicing'), |
|
| 26 | + 'CCU' => __('Kuando Kubango', 'invoicing'), |
|
| 27 | + 'CNO' => __('Kwanza-Norte', 'invoicing'), |
|
| 28 | + 'CUS' => __('Kwanza-Sul', 'invoicing'), |
|
| 29 | + 'LUA' => __('Luanda', 'invoicing'), |
|
| 30 | + 'LNO' => __('Lunda-Norte', 'invoicing'), |
|
| 31 | + 'LSU' => __('Lunda-Sul', 'invoicing'), |
|
| 32 | + 'MAL' => __('Malanje', 'invoicing'), |
|
| 33 | + 'MOX' => __('Moxico', 'invoicing'), |
|
| 34 | + 'NAM' => __('Namibe', 'invoicing'), |
|
| 35 | + 'UIG' => __('Uíge', 'invoicing'), |
|
| 36 | + 'ZAI' => __('Zaire', 'invoicing'), |
|
| 37 | 37 | ), |
| 38 | 38 | 'AR' => array( // Argentinian provinces. |
| 39 | - 'C' => __( 'Ciudad Autónoma de Buenos Aires', 'invoicing' ), |
|
| 40 | - 'B' => __( 'Buenos Aires', 'invoicing' ), |
|
| 41 | - 'K' => __( 'Catamarca', 'invoicing' ), |
|
| 42 | - 'H' => __( 'Chaco', 'invoicing' ), |
|
| 43 | - 'U' => __( 'Chubut', 'invoicing' ), |
|
| 44 | - 'X' => __( 'Córdoba', 'invoicing' ), |
|
| 45 | - 'W' => __( 'Corrientes', 'invoicing' ), |
|
| 46 | - 'E' => __( 'Entre Ríos', 'invoicing' ), |
|
| 47 | - 'P' => __( 'Formosa', 'invoicing' ), |
|
| 48 | - 'Y' => __( 'Jujuy', 'invoicing' ), |
|
| 49 | - 'L' => __( 'La Pampa', 'invoicing' ), |
|
| 50 | - 'F' => __( 'La Rioja', 'invoicing' ), |
|
| 51 | - 'M' => __( 'Mendoza', 'invoicing' ), |
|
| 52 | - 'N' => __( 'Misiones', 'invoicing' ), |
|
| 53 | - 'Q' => __( 'Neuquén', 'invoicing' ), |
|
| 54 | - 'R' => __( 'Río Negro', 'invoicing' ), |
|
| 55 | - 'A' => __( 'Salta', 'invoicing' ), |
|
| 56 | - 'J' => __( 'San Juan', 'invoicing' ), |
|
| 57 | - 'D' => __( 'San Luis', 'invoicing' ), |
|
| 58 | - 'Z' => __( 'Santa Cruz', 'invoicing' ), |
|
| 59 | - 'S' => __( 'Santa Fe', 'invoicing' ), |
|
| 60 | - 'G' => __( 'Santiago del Estero', 'invoicing' ), |
|
| 61 | - 'V' => __( 'Tierra del Fuego', 'invoicing' ), |
|
| 62 | - 'T' => __( 'Tucumán', 'invoicing' ), |
|
| 39 | + 'C' => __('Ciudad Autónoma de Buenos Aires', 'invoicing'), |
|
| 40 | + 'B' => __('Buenos Aires', 'invoicing'), |
|
| 41 | + 'K' => __('Catamarca', 'invoicing'), |
|
| 42 | + 'H' => __('Chaco', 'invoicing'), |
|
| 43 | + 'U' => __('Chubut', 'invoicing'), |
|
| 44 | + 'X' => __('Córdoba', 'invoicing'), |
|
| 45 | + 'W' => __('Corrientes', 'invoicing'), |
|
| 46 | + 'E' => __('Entre Ríos', 'invoicing'), |
|
| 47 | + 'P' => __('Formosa', 'invoicing'), |
|
| 48 | + 'Y' => __('Jujuy', 'invoicing'), |
|
| 49 | + 'L' => __('La Pampa', 'invoicing'), |
|
| 50 | + 'F' => __('La Rioja', 'invoicing'), |
|
| 51 | + 'M' => __('Mendoza', 'invoicing'), |
|
| 52 | + 'N' => __('Misiones', 'invoicing'), |
|
| 53 | + 'Q' => __('Neuquén', 'invoicing'), |
|
| 54 | + 'R' => __('Río Negro', 'invoicing'), |
|
| 55 | + 'A' => __('Salta', 'invoicing'), |
|
| 56 | + 'J' => __('San Juan', 'invoicing'), |
|
| 57 | + 'D' => __('San Luis', 'invoicing'), |
|
| 58 | + 'Z' => __('Santa Cruz', 'invoicing'), |
|
| 59 | + 'S' => __('Santa Fe', 'invoicing'), |
|
| 60 | + 'G' => __('Santiago del Estero', 'invoicing'), |
|
| 61 | + 'V' => __('Tierra del Fuego', 'invoicing'), |
|
| 62 | + 'T' => __('Tucumán', 'invoicing'), |
|
| 63 | 63 | ), |
| 64 | 64 | 'AT' => array(), |
| 65 | 65 | 'AU' => array( // Australian states. |
| 66 | - 'ACT' => __( 'Australian Capital Territory', 'invoicing' ), |
|
| 67 | - 'NSW' => __( 'New South Wales', 'invoicing' ), |
|
| 68 | - 'NT' => __( 'Northern Territory', 'invoicing' ), |
|
| 69 | - 'QLD' => __( 'Queensland', 'invoicing' ), |
|
| 70 | - 'SA' => __( 'South Australia', 'invoicing' ), |
|
| 71 | - 'TAS' => __( 'Tasmania', 'invoicing' ), |
|
| 72 | - 'VIC' => __( 'Victoria', 'invoicing' ), |
|
| 73 | - 'WA' => __( 'Western Australia', 'invoicing' ), |
|
| 66 | + 'ACT' => __('Australian Capital Territory', 'invoicing'), |
|
| 67 | + 'NSW' => __('New South Wales', 'invoicing'), |
|
| 68 | + 'NT' => __('Northern Territory', 'invoicing'), |
|
| 69 | + 'QLD' => __('Queensland', 'invoicing'), |
|
| 70 | + 'SA' => __('South Australia', 'invoicing'), |
|
| 71 | + 'TAS' => __('Tasmania', 'invoicing'), |
|
| 72 | + 'VIC' => __('Victoria', 'invoicing'), |
|
| 73 | + 'WA' => __('Western Australia', 'invoicing'), |
|
| 74 | 74 | ), |
| 75 | 75 | 'AX' => array(), |
| 76 | 76 | 'BD' => array( // Bangladeshi states (districts). |
| 77 | - 'BD-05' => __( 'Bagerhat', 'invoicing' ), |
|
| 78 | - 'BD-01' => __( 'Bandarban', 'invoicing' ), |
|
| 79 | - 'BD-02' => __( 'Barguna', 'invoicing' ), |
|
| 80 | - 'BD-06' => __( 'Barishal', 'invoicing' ), |
|
| 81 | - 'BD-07' => __( 'Bhola', 'invoicing' ), |
|
| 82 | - 'BD-03' => __( 'Bogura', 'invoicing' ), |
|
| 83 | - 'BD-04' => __( 'Brahmanbaria', 'invoicing' ), |
|
| 84 | - 'BD-09' => __( 'Chandpur', 'invoicing' ), |
|
| 85 | - 'BD-10' => __( 'Chattogram', 'invoicing' ), |
|
| 86 | - 'BD-12' => __( 'Chuadanga', 'invoicing' ), |
|
| 87 | - 'BD-11' => __( "Cox's Bazar", 'invoicing' ), |
|
| 88 | - 'BD-08' => __( 'Cumilla', 'invoicing' ), |
|
| 89 | - 'BD-13' => __( 'Dhaka', 'invoicing' ), |
|
| 90 | - 'BD-14' => __( 'Dinajpur', 'invoicing' ), |
|
| 91 | - 'BD-15' => __( 'Faridpur ', 'invoicing' ), |
|
| 92 | - 'BD-16' => __( 'Feni', 'invoicing' ), |
|
| 93 | - 'BD-19' => __( 'Gaibandha', 'invoicing' ), |
|
| 94 | - 'BD-18' => __( 'Gazipur', 'invoicing' ), |
|
| 95 | - 'BD-17' => __( 'Gopalganj', 'invoicing' ), |
|
| 96 | - 'BD-20' => __( 'Habiganj', 'invoicing' ), |
|
| 97 | - 'BD-21' => __( 'Jamalpur', 'invoicing' ), |
|
| 98 | - 'BD-22' => __( 'Jashore', 'invoicing' ), |
|
| 99 | - 'BD-25' => __( 'Jhalokati', 'invoicing' ), |
|
| 100 | - 'BD-23' => __( 'Jhenaidah', 'invoicing' ), |
|
| 101 | - 'BD-24' => __( 'Joypurhat', 'invoicing' ), |
|
| 102 | - 'BD-29' => __( 'Khagrachhari', 'invoicing' ), |
|
| 103 | - 'BD-27' => __( 'Khulna', 'invoicing' ), |
|
| 104 | - 'BD-26' => __( 'Kishoreganj', 'invoicing' ), |
|
| 105 | - 'BD-28' => __( 'Kurigram', 'invoicing' ), |
|
| 106 | - 'BD-30' => __( 'Kushtia', 'invoicing' ), |
|
| 107 | - 'BD-31' => __( 'Lakshmipur', 'invoicing' ), |
|
| 108 | - 'BD-32' => __( 'Lalmonirhat', 'invoicing' ), |
|
| 109 | - 'BD-36' => __( 'Madaripur', 'invoicing' ), |
|
| 110 | - 'BD-37' => __( 'Magura', 'invoicing' ), |
|
| 111 | - 'BD-33' => __( 'Manikganj ', 'invoicing' ), |
|
| 112 | - 'BD-39' => __( 'Meherpur', 'invoicing' ), |
|
| 113 | - 'BD-38' => __( 'Moulvibazar', 'invoicing' ), |
|
| 114 | - 'BD-35' => __( 'Munshiganj', 'invoicing' ), |
|
| 115 | - 'BD-34' => __( 'Mymensingh', 'invoicing' ), |
|
| 116 | - 'BD-48' => __( 'Naogaon', 'invoicing' ), |
|
| 117 | - 'BD-43' => __( 'Narail', 'invoicing' ), |
|
| 118 | - 'BD-40' => __( 'Narayanganj', 'invoicing' ), |
|
| 119 | - 'BD-42' => __( 'Narsingdi', 'invoicing' ), |
|
| 120 | - 'BD-44' => __( 'Natore', 'invoicing' ), |
|
| 121 | - 'BD-45' => __( 'Nawabganj', 'invoicing' ), |
|
| 122 | - 'BD-41' => __( 'Netrakona', 'invoicing' ), |
|
| 123 | - 'BD-46' => __( 'Nilphamari', 'invoicing' ), |
|
| 124 | - 'BD-47' => __( 'Noakhali', 'invoicing' ), |
|
| 125 | - 'BD-49' => __( 'Pabna', 'invoicing' ), |
|
| 126 | - 'BD-52' => __( 'Panchagarh', 'invoicing' ), |
|
| 127 | - 'BD-51' => __( 'Patuakhali', 'invoicing' ), |
|
| 128 | - 'BD-50' => __( 'Pirojpur', 'invoicing' ), |
|
| 129 | - 'BD-53' => __( 'Rajbari', 'invoicing' ), |
|
| 130 | - 'BD-54' => __( 'Rajshahi', 'invoicing' ), |
|
| 131 | - 'BD-56' => __( 'Rangamati', 'invoicing' ), |
|
| 132 | - 'BD-55' => __( 'Rangpur', 'invoicing' ), |
|
| 133 | - 'BD-58' => __( 'Satkhira', 'invoicing' ), |
|
| 134 | - 'BD-62' => __( 'Shariatpur', 'invoicing' ), |
|
| 135 | - 'BD-57' => __( 'Sherpur', 'invoicing' ), |
|
| 136 | - 'BD-59' => __( 'Sirajganj', 'invoicing' ), |
|
| 137 | - 'BD-61' => __( 'Sunamganj', 'invoicing' ), |
|
| 138 | - 'BD-60' => __( 'Sylhet', 'invoicing' ), |
|
| 139 | - 'BD-63' => __( 'Tangail', 'invoicing' ), |
|
| 140 | - 'BD-64' => __( 'Thakurgaon', 'invoicing' ), |
|
| 77 | + 'BD-05' => __('Bagerhat', 'invoicing'), |
|
| 78 | + 'BD-01' => __('Bandarban', 'invoicing'), |
|
| 79 | + 'BD-02' => __('Barguna', 'invoicing'), |
|
| 80 | + 'BD-06' => __('Barishal', 'invoicing'), |
|
| 81 | + 'BD-07' => __('Bhola', 'invoicing'), |
|
| 82 | + 'BD-03' => __('Bogura', 'invoicing'), |
|
| 83 | + 'BD-04' => __('Brahmanbaria', 'invoicing'), |
|
| 84 | + 'BD-09' => __('Chandpur', 'invoicing'), |
|
| 85 | + 'BD-10' => __('Chattogram', 'invoicing'), |
|
| 86 | + 'BD-12' => __('Chuadanga', 'invoicing'), |
|
| 87 | + 'BD-11' => __("Cox's Bazar", 'invoicing'), |
|
| 88 | + 'BD-08' => __('Cumilla', 'invoicing'), |
|
| 89 | + 'BD-13' => __('Dhaka', 'invoicing'), |
|
| 90 | + 'BD-14' => __('Dinajpur', 'invoicing'), |
|
| 91 | + 'BD-15' => __('Faridpur ', 'invoicing'), |
|
| 92 | + 'BD-16' => __('Feni', 'invoicing'), |
|
| 93 | + 'BD-19' => __('Gaibandha', 'invoicing'), |
|
| 94 | + 'BD-18' => __('Gazipur', 'invoicing'), |
|
| 95 | + 'BD-17' => __('Gopalganj', 'invoicing'), |
|
| 96 | + 'BD-20' => __('Habiganj', 'invoicing'), |
|
| 97 | + 'BD-21' => __('Jamalpur', 'invoicing'), |
|
| 98 | + 'BD-22' => __('Jashore', 'invoicing'), |
|
| 99 | + 'BD-25' => __('Jhalokati', 'invoicing'), |
|
| 100 | + 'BD-23' => __('Jhenaidah', 'invoicing'), |
|
| 101 | + 'BD-24' => __('Joypurhat', 'invoicing'), |
|
| 102 | + 'BD-29' => __('Khagrachhari', 'invoicing'), |
|
| 103 | + 'BD-27' => __('Khulna', 'invoicing'), |
|
| 104 | + 'BD-26' => __('Kishoreganj', 'invoicing'), |
|
| 105 | + 'BD-28' => __('Kurigram', 'invoicing'), |
|
| 106 | + 'BD-30' => __('Kushtia', 'invoicing'), |
|
| 107 | + 'BD-31' => __('Lakshmipur', 'invoicing'), |
|
| 108 | + 'BD-32' => __('Lalmonirhat', 'invoicing'), |
|
| 109 | + 'BD-36' => __('Madaripur', 'invoicing'), |
|
| 110 | + 'BD-37' => __('Magura', 'invoicing'), |
|
| 111 | + 'BD-33' => __('Manikganj ', 'invoicing'), |
|
| 112 | + 'BD-39' => __('Meherpur', 'invoicing'), |
|
| 113 | + 'BD-38' => __('Moulvibazar', 'invoicing'), |
|
| 114 | + 'BD-35' => __('Munshiganj', 'invoicing'), |
|
| 115 | + 'BD-34' => __('Mymensingh', 'invoicing'), |
|
| 116 | + 'BD-48' => __('Naogaon', 'invoicing'), |
|
| 117 | + 'BD-43' => __('Narail', 'invoicing'), |
|
| 118 | + 'BD-40' => __('Narayanganj', 'invoicing'), |
|
| 119 | + 'BD-42' => __('Narsingdi', 'invoicing'), |
|
| 120 | + 'BD-44' => __('Natore', 'invoicing'), |
|
| 121 | + 'BD-45' => __('Nawabganj', 'invoicing'), |
|
| 122 | + 'BD-41' => __('Netrakona', 'invoicing'), |
|
| 123 | + 'BD-46' => __('Nilphamari', 'invoicing'), |
|
| 124 | + 'BD-47' => __('Noakhali', 'invoicing'), |
|
| 125 | + 'BD-49' => __('Pabna', 'invoicing'), |
|
| 126 | + 'BD-52' => __('Panchagarh', 'invoicing'), |
|
| 127 | + 'BD-51' => __('Patuakhali', 'invoicing'), |
|
| 128 | + 'BD-50' => __('Pirojpur', 'invoicing'), |
|
| 129 | + 'BD-53' => __('Rajbari', 'invoicing'), |
|
| 130 | + 'BD-54' => __('Rajshahi', 'invoicing'), |
|
| 131 | + 'BD-56' => __('Rangamati', 'invoicing'), |
|
| 132 | + 'BD-55' => __('Rangpur', 'invoicing'), |
|
| 133 | + 'BD-58' => __('Satkhira', 'invoicing'), |
|
| 134 | + 'BD-62' => __('Shariatpur', 'invoicing'), |
|
| 135 | + 'BD-57' => __('Sherpur', 'invoicing'), |
|
| 136 | + 'BD-59' => __('Sirajganj', 'invoicing'), |
|
| 137 | + 'BD-61' => __('Sunamganj', 'invoicing'), |
|
| 138 | + 'BD-60' => __('Sylhet', 'invoicing'), |
|
| 139 | + 'BD-63' => __('Tangail', 'invoicing'), |
|
| 140 | + 'BD-64' => __('Thakurgaon', 'invoicing'), |
|
| 141 | 141 | ), |
| 142 | 142 | 'BE' => array(), |
| 143 | 143 | 'BG' => array( // Bulgarian states. |
| 144 | - 'BG-01' => __( 'Blagoevgrad', 'invoicing' ), |
|
| 145 | - 'BG-02' => __( 'Burgas', 'invoicing' ), |
|
| 146 | - 'BG-08' => __( 'Dobrich', 'invoicing' ), |
|
| 147 | - 'BG-07' => __( 'Gabrovo', 'invoicing' ), |
|
| 148 | - 'BG-26' => __( 'Haskovo', 'invoicing' ), |
|
| 149 | - 'BG-09' => __( 'Kardzhali', 'invoicing' ), |
|
| 150 | - 'BG-10' => __( 'Kyustendil', 'invoicing' ), |
|
| 151 | - 'BG-11' => __( 'Lovech', 'invoicing' ), |
|
| 152 | - 'BG-12' => __( 'Montana', 'invoicing' ), |
|
| 153 | - 'BG-13' => __( 'Pazardzhik', 'invoicing' ), |
|
| 154 | - 'BG-14' => __( 'Pernik', 'invoicing' ), |
|
| 155 | - 'BG-15' => __( 'Pleven', 'invoicing' ), |
|
| 156 | - 'BG-16' => __( 'Plovdiv', 'invoicing' ), |
|
| 157 | - 'BG-17' => __( 'Razgrad', 'invoicing' ), |
|
| 158 | - 'BG-18' => __( 'Ruse', 'invoicing' ), |
|
| 159 | - 'BG-27' => __( 'Shumen', 'invoicing' ), |
|
| 160 | - 'BG-19' => __( 'Silistra', 'invoicing' ), |
|
| 161 | - 'BG-20' => __( 'Sliven', 'invoicing' ), |
|
| 162 | - 'BG-21' => __( 'Smolyan', 'invoicing' ), |
|
| 163 | - 'BG-23' => __( 'Sofia', 'invoicing' ), |
|
| 164 | - 'BG-22' => __( 'Sofia-Grad', 'invoicing' ), |
|
| 165 | - 'BG-24' => __( 'Stara Zagora', 'invoicing' ), |
|
| 166 | - 'BG-25' => __( 'Targovishte', 'invoicing' ), |
|
| 167 | - 'BG-03' => __( 'Varna', 'invoicing' ), |
|
| 168 | - 'BG-04' => __( 'Veliko Tarnovo', 'invoicing' ), |
|
| 169 | - 'BG-05' => __( 'Vidin', 'invoicing' ), |
|
| 170 | - 'BG-06' => __( 'Vratsa', 'invoicing' ), |
|
| 171 | - 'BG-28' => __( 'Yambol', 'invoicing' ), |
|
| 144 | + 'BG-01' => __('Blagoevgrad', 'invoicing'), |
|
| 145 | + 'BG-02' => __('Burgas', 'invoicing'), |
|
| 146 | + 'BG-08' => __('Dobrich', 'invoicing'), |
|
| 147 | + 'BG-07' => __('Gabrovo', 'invoicing'), |
|
| 148 | + 'BG-26' => __('Haskovo', 'invoicing'), |
|
| 149 | + 'BG-09' => __('Kardzhali', 'invoicing'), |
|
| 150 | + 'BG-10' => __('Kyustendil', 'invoicing'), |
|
| 151 | + 'BG-11' => __('Lovech', 'invoicing'), |
|
| 152 | + 'BG-12' => __('Montana', 'invoicing'), |
|
| 153 | + 'BG-13' => __('Pazardzhik', 'invoicing'), |
|
| 154 | + 'BG-14' => __('Pernik', 'invoicing'), |
|
| 155 | + 'BG-15' => __('Pleven', 'invoicing'), |
|
| 156 | + 'BG-16' => __('Plovdiv', 'invoicing'), |
|
| 157 | + 'BG-17' => __('Razgrad', 'invoicing'), |
|
| 158 | + 'BG-18' => __('Ruse', 'invoicing'), |
|
| 159 | + 'BG-27' => __('Shumen', 'invoicing'), |
|
| 160 | + 'BG-19' => __('Silistra', 'invoicing'), |
|
| 161 | + 'BG-20' => __('Sliven', 'invoicing'), |
|
| 162 | + 'BG-21' => __('Smolyan', 'invoicing'), |
|
| 163 | + 'BG-23' => __('Sofia', 'invoicing'), |
|
| 164 | + 'BG-22' => __('Sofia-Grad', 'invoicing'), |
|
| 165 | + 'BG-24' => __('Stara Zagora', 'invoicing'), |
|
| 166 | + 'BG-25' => __('Targovishte', 'invoicing'), |
|
| 167 | + 'BG-03' => __('Varna', 'invoicing'), |
|
| 168 | + 'BG-04' => __('Veliko Tarnovo', 'invoicing'), |
|
| 169 | + 'BG-05' => __('Vidin', 'invoicing'), |
|
| 170 | + 'BG-06' => __('Vratsa', 'invoicing'), |
|
| 171 | + 'BG-28' => __('Yambol', 'invoicing'), |
|
| 172 | 172 | ), |
| 173 | 173 | 'BH' => array(), |
| 174 | 174 | 'BI' => array(), |
| 175 | 175 | 'BO' => array( // Bolivian states. |
| 176 | - 'B' => __( 'Chuquisaca', 'invoicing' ), |
|
| 177 | - 'H' => __( 'Beni', 'invoicing' ), |
|
| 178 | - 'C' => __( 'Cochabamba', 'invoicing' ), |
|
| 179 | - 'L' => __( 'La Paz', 'invoicing' ), |
|
| 180 | - 'O' => __( 'Oruro', 'invoicing' ), |
|
| 181 | - 'N' => __( 'Pando', 'invoicing' ), |
|
| 182 | - 'P' => __( 'Potosí', 'invoicing' ), |
|
| 183 | - 'S' => __( 'Santa Cruz', 'invoicing' ), |
|
| 184 | - 'T' => __( 'Tarija', 'invoicing' ), |
|
| 176 | + 'B' => __('Chuquisaca', 'invoicing'), |
|
| 177 | + 'H' => __('Beni', 'invoicing'), |
|
| 178 | + 'C' => __('Cochabamba', 'invoicing'), |
|
| 179 | + 'L' => __('La Paz', 'invoicing'), |
|
| 180 | + 'O' => __('Oruro', 'invoicing'), |
|
| 181 | + 'N' => __('Pando', 'invoicing'), |
|
| 182 | + 'P' => __('Potosí', 'invoicing'), |
|
| 183 | + 'S' => __('Santa Cruz', 'invoicing'), |
|
| 184 | + 'T' => __('Tarija', 'invoicing'), |
|
| 185 | 185 | ), |
| 186 | 186 | 'BR' => array( // Brazillian states. |
| 187 | - 'AC' => __( 'Acre', 'invoicing' ), |
|
| 188 | - 'AL' => __( 'Alagoas', 'invoicing' ), |
|
| 189 | - 'AP' => __( 'Amapá', 'invoicing' ), |
|
| 190 | - 'AM' => __( 'Amazonas', 'invoicing' ), |
|
| 191 | - 'BA' => __( 'Bahia', 'invoicing' ), |
|
| 192 | - 'CE' => __( 'Ceará', 'invoicing' ), |
|
| 193 | - 'DF' => __( 'Distrito Federal', 'invoicing' ), |
|
| 194 | - 'ES' => __( 'Espírito Santo', 'invoicing' ), |
|
| 195 | - 'GO' => __( 'Goiás', 'invoicing' ), |
|
| 196 | - 'MA' => __( 'Maranhão', 'invoicing' ), |
|
| 197 | - 'MT' => __( 'Mato Grosso', 'invoicing' ), |
|
| 198 | - 'MS' => __( 'Mato Grosso do Sul', 'invoicing' ), |
|
| 199 | - 'MG' => __( 'Minas Gerais', 'invoicing' ), |
|
| 200 | - 'PA' => __( 'Pará', 'invoicing' ), |
|
| 201 | - 'PB' => __( 'Paraíba', 'invoicing' ), |
|
| 202 | - 'PR' => __( 'Paraná', 'invoicing' ), |
|
| 203 | - 'PE' => __( 'Pernambuco', 'invoicing' ), |
|
| 204 | - 'PI' => __( 'Piauí', 'invoicing' ), |
|
| 205 | - 'RJ' => __( 'Rio de Janeiro', 'invoicing' ), |
|
| 206 | - 'RN' => __( 'Rio Grande do Norte', 'invoicing' ), |
|
| 207 | - 'RS' => __( 'Rio Grande do Sul', 'invoicing' ), |
|
| 208 | - 'RO' => __( 'Rondônia', 'invoicing' ), |
|
| 209 | - 'RR' => __( 'Roraima', 'invoicing' ), |
|
| 210 | - 'SC' => __( 'Santa Catarina', 'invoicing' ), |
|
| 211 | - 'SP' => __( 'São Paulo', 'invoicing' ), |
|
| 212 | - 'SE' => __( 'Sergipe', 'invoicing' ), |
|
| 213 | - 'TO' => __( 'Tocantins', 'invoicing' ), |
|
| 187 | + 'AC' => __('Acre', 'invoicing'), |
|
| 188 | + 'AL' => __('Alagoas', 'invoicing'), |
|
| 189 | + 'AP' => __('Amapá', 'invoicing'), |
|
| 190 | + 'AM' => __('Amazonas', 'invoicing'), |
|
| 191 | + 'BA' => __('Bahia', 'invoicing'), |
|
| 192 | + 'CE' => __('Ceará', 'invoicing'), |
|
| 193 | + 'DF' => __('Distrito Federal', 'invoicing'), |
|
| 194 | + 'ES' => __('Espírito Santo', 'invoicing'), |
|
| 195 | + 'GO' => __('Goiás', 'invoicing'), |
|
| 196 | + 'MA' => __('Maranhão', 'invoicing'), |
|
| 197 | + 'MT' => __('Mato Grosso', 'invoicing'), |
|
| 198 | + 'MS' => __('Mato Grosso do Sul', 'invoicing'), |
|
| 199 | + 'MG' => __('Minas Gerais', 'invoicing'), |
|
| 200 | + 'PA' => __('Pará', 'invoicing'), |
|
| 201 | + 'PB' => __('Paraíba', 'invoicing'), |
|
| 202 | + 'PR' => __('Paraná', 'invoicing'), |
|
| 203 | + 'PE' => __('Pernambuco', 'invoicing'), |
|
| 204 | + 'PI' => __('Piauí', 'invoicing'), |
|
| 205 | + 'RJ' => __('Rio de Janeiro', 'invoicing'), |
|
| 206 | + 'RN' => __('Rio Grande do Norte', 'invoicing'), |
|
| 207 | + 'RS' => __('Rio Grande do Sul', 'invoicing'), |
|
| 208 | + 'RO' => __('Rondônia', 'invoicing'), |
|
| 209 | + 'RR' => __('Roraima', 'invoicing'), |
|
| 210 | + 'SC' => __('Santa Catarina', 'invoicing'), |
|
| 211 | + 'SP' => __('São Paulo', 'invoicing'), |
|
| 212 | + 'SE' => __('Sergipe', 'invoicing'), |
|
| 213 | + 'TO' => __('Tocantins', 'invoicing'), |
|
| 214 | 214 | ), |
| 215 | 215 | 'CA' => array( // Canadian states. |
| 216 | - 'AB' => __( 'Alberta', 'invoicing' ), |
|
| 217 | - 'BC' => __( 'British Columbia', 'invoicing' ), |
|
| 218 | - 'MB' => __( 'Manitoba', 'invoicing' ), |
|
| 219 | - 'NB' => __( 'New Brunswick', 'invoicing' ), |
|
| 220 | - 'NL' => __( 'Newfoundland and Labrador', 'invoicing' ), |
|
| 221 | - 'NT' => __( 'Northwest Territories', 'invoicing' ), |
|
| 222 | - 'NS' => __( 'Nova Scotia', 'invoicing' ), |
|
| 223 | - 'NU' => __( 'Nunavut', 'invoicing' ), |
|
| 224 | - 'ON' => __( 'Ontario', 'invoicing' ), |
|
| 225 | - 'PE' => __( 'Prince Edward Island', 'invoicing' ), |
|
| 226 | - 'QC' => __( 'Quebec', 'invoicing' ), |
|
| 227 | - 'SK' => __( 'Saskatchewan', 'invoicing' ), |
|
| 228 | - 'YT' => __( 'Yukon Territory', 'invoicing' ), |
|
| 216 | + 'AB' => __('Alberta', 'invoicing'), |
|
| 217 | + 'BC' => __('British Columbia', 'invoicing'), |
|
| 218 | + 'MB' => __('Manitoba', 'invoicing'), |
|
| 219 | + 'NB' => __('New Brunswick', 'invoicing'), |
|
| 220 | + 'NL' => __('Newfoundland and Labrador', 'invoicing'), |
|
| 221 | + 'NT' => __('Northwest Territories', 'invoicing'), |
|
| 222 | + 'NS' => __('Nova Scotia', 'invoicing'), |
|
| 223 | + 'NU' => __('Nunavut', 'invoicing'), |
|
| 224 | + 'ON' => __('Ontario', 'invoicing'), |
|
| 225 | + 'PE' => __('Prince Edward Island', 'invoicing'), |
|
| 226 | + 'QC' => __('Quebec', 'invoicing'), |
|
| 227 | + 'SK' => __('Saskatchewan', 'invoicing'), |
|
| 228 | + 'YT' => __('Yukon Territory', 'invoicing'), |
|
| 229 | 229 | ), |
| 230 | 230 | 'CH' => array( // Cantons of Switzerland. |
| 231 | - 'AG' => __( 'Aargau', 'invoicing' ), |
|
| 232 | - 'AR' => __( 'Appenzell Ausserrhoden', 'invoicing' ), |
|
| 233 | - 'AI' => __( 'Appenzell Innerrhoden', 'invoicing' ), |
|
| 234 | - 'BL' => __( 'Basel-Landschaft', 'invoicing' ), |
|
| 235 | - 'BS' => __( 'Basel-Stadt', 'invoicing' ), |
|
| 236 | - 'BE' => __( 'Bern', 'invoicing' ), |
|
| 237 | - 'FR' => __( 'Fribourg', 'invoicing' ), |
|
| 238 | - 'GE' => __( 'Geneva', 'invoicing' ), |
|
| 239 | - 'GL' => __( 'Glarus', 'invoicing' ), |
|
| 240 | - 'GR' => __( 'Graubünden', 'invoicing' ), |
|
| 241 | - 'JU' => __( 'Jura', 'invoicing' ), |
|
| 242 | - 'LU' => __( 'Luzern', 'invoicing' ), |
|
| 243 | - 'NE' => __( 'Neuchâtel', 'invoicing' ), |
|
| 244 | - 'NW' => __( 'Nidwalden', 'invoicing' ), |
|
| 245 | - 'OW' => __( 'Obwalden', 'invoicing' ), |
|
| 246 | - 'SH' => __( 'Schaffhausen', 'invoicing' ), |
|
| 247 | - 'SZ' => __( 'Schwyz', 'invoicing' ), |
|
| 248 | - 'SO' => __( 'Solothurn', 'invoicing' ), |
|
| 249 | - 'SG' => __( 'St. Gallen', 'invoicing' ), |
|
| 250 | - 'TG' => __( 'Thurgau', 'invoicing' ), |
|
| 251 | - 'TI' => __( 'Ticino', 'invoicing' ), |
|
| 252 | - 'UR' => __( 'Uri', 'invoicing' ), |
|
| 253 | - 'VS' => __( 'Valais', 'invoicing' ), |
|
| 254 | - 'VD' => __( 'Vaud', 'invoicing' ), |
|
| 255 | - 'ZG' => __( 'Zug', 'invoicing' ), |
|
| 256 | - 'ZH' => __( 'Zürich', 'invoicing' ), |
|
| 231 | + 'AG' => __('Aargau', 'invoicing'), |
|
| 232 | + 'AR' => __('Appenzell Ausserrhoden', 'invoicing'), |
|
| 233 | + 'AI' => __('Appenzell Innerrhoden', 'invoicing'), |
|
| 234 | + 'BL' => __('Basel-Landschaft', 'invoicing'), |
|
| 235 | + 'BS' => __('Basel-Stadt', 'invoicing'), |
|
| 236 | + 'BE' => __('Bern', 'invoicing'), |
|
| 237 | + 'FR' => __('Fribourg', 'invoicing'), |
|
| 238 | + 'GE' => __('Geneva', 'invoicing'), |
|
| 239 | + 'GL' => __('Glarus', 'invoicing'), |
|
| 240 | + 'GR' => __('Graubünden', 'invoicing'), |
|
| 241 | + 'JU' => __('Jura', 'invoicing'), |
|
| 242 | + 'LU' => __('Luzern', 'invoicing'), |
|
| 243 | + 'NE' => __('Neuchâtel', 'invoicing'), |
|
| 244 | + 'NW' => __('Nidwalden', 'invoicing'), |
|
| 245 | + 'OW' => __('Obwalden', 'invoicing'), |
|
| 246 | + 'SH' => __('Schaffhausen', 'invoicing'), |
|
| 247 | + 'SZ' => __('Schwyz', 'invoicing'), |
|
| 248 | + 'SO' => __('Solothurn', 'invoicing'), |
|
| 249 | + 'SG' => __('St. Gallen', 'invoicing'), |
|
| 250 | + 'TG' => __('Thurgau', 'invoicing'), |
|
| 251 | + 'TI' => __('Ticino', 'invoicing'), |
|
| 252 | + 'UR' => __('Uri', 'invoicing'), |
|
| 253 | + 'VS' => __('Valais', 'invoicing'), |
|
| 254 | + 'VD' => __('Vaud', 'invoicing'), |
|
| 255 | + 'ZG' => __('Zug', 'invoicing'), |
|
| 256 | + 'ZH' => __('Zürich', 'invoicing'), |
|
| 257 | 257 | ), |
| 258 | 258 | 'CN' => array( // Chinese states. |
| 259 | - 'CN1' => __( 'Yunnan / 云南', 'invoicing' ), |
|
| 260 | - 'CN2' => __( 'Beijing / 北京', 'invoicing' ), |
|
| 261 | - 'CN3' => __( 'Tianjin / 天津', 'invoicing' ), |
|
| 262 | - 'CN4' => __( 'Hebei / 河北', 'invoicing' ), |
|
| 263 | - 'CN5' => __( 'Shanxi / 山西', 'invoicing' ), |
|
| 264 | - 'CN6' => __( 'Inner Mongolia / 內蒙古', 'invoicing' ), |
|
| 265 | - 'CN7' => __( 'Liaoning / 辽宁', 'invoicing' ), |
|
| 266 | - 'CN8' => __( 'Jilin / 吉林', 'invoicing' ), |
|
| 267 | - 'CN9' => __( 'Heilongjiang / 黑龙江', 'invoicing' ), |
|
| 268 | - 'CN10' => __( 'Shanghai / 上海', 'invoicing' ), |
|
| 269 | - 'CN11' => __( 'Jiangsu / 江苏', 'invoicing' ), |
|
| 270 | - 'CN12' => __( 'Zhejiang / 浙江', 'invoicing' ), |
|
| 271 | - 'CN13' => __( 'Anhui / 安徽', 'invoicing' ), |
|
| 272 | - 'CN14' => __( 'Fujian / 福建', 'invoicing' ), |
|
| 273 | - 'CN15' => __( 'Jiangxi / 江西', 'invoicing' ), |
|
| 274 | - 'CN16' => __( 'Shandong / 山东', 'invoicing' ), |
|
| 275 | - 'CN17' => __( 'Henan / 河南', 'invoicing' ), |
|
| 276 | - 'CN18' => __( 'Hubei / 湖北', 'invoicing' ), |
|
| 277 | - 'CN19' => __( 'Hunan / 湖南', 'invoicing' ), |
|
| 278 | - 'CN20' => __( 'Guangdong / 广东', 'invoicing' ), |
|
| 279 | - 'CN21' => __( 'Guangxi Zhuang / 广西壮族', 'invoicing' ), |
|
| 280 | - 'CN22' => __( 'Hainan / 海南', 'invoicing' ), |
|
| 281 | - 'CN23' => __( 'Chongqing / 重庆', 'invoicing' ), |
|
| 282 | - 'CN24' => __( 'Sichuan / 四川', 'invoicing' ), |
|
| 283 | - 'CN25' => __( 'Guizhou / 贵州', 'invoicing' ), |
|
| 284 | - 'CN26' => __( 'Shaanxi / 陕西', 'invoicing' ), |
|
| 285 | - 'CN27' => __( 'Gansu / 甘肃', 'invoicing' ), |
|
| 286 | - 'CN28' => __( 'Qinghai / 青海', 'invoicing' ), |
|
| 287 | - 'CN29' => __( 'Ningxia Hui / 宁夏', 'invoicing' ), |
|
| 288 | - 'CN30' => __( 'Macao / 澳门', 'invoicing' ), |
|
| 289 | - 'CN31' => __( 'Tibet / 西藏', 'invoicing' ), |
|
| 290 | - 'CN32' => __( 'Xinjiang / 新疆', 'invoicing' ), |
|
| 259 | + 'CN1' => __('Yunnan / 云南', 'invoicing'), |
|
| 260 | + 'CN2' => __('Beijing / 北京', 'invoicing'), |
|
| 261 | + 'CN3' => __('Tianjin / 天津', 'invoicing'), |
|
| 262 | + 'CN4' => __('Hebei / 河北', 'invoicing'), |
|
| 263 | + 'CN5' => __('Shanxi / 山西', 'invoicing'), |
|
| 264 | + 'CN6' => __('Inner Mongolia / 內蒙古', 'invoicing'), |
|
| 265 | + 'CN7' => __('Liaoning / 辽宁', 'invoicing'), |
|
| 266 | + 'CN8' => __('Jilin / 吉林', 'invoicing'), |
|
| 267 | + 'CN9' => __('Heilongjiang / 黑龙江', 'invoicing'), |
|
| 268 | + 'CN10' => __('Shanghai / 上海', 'invoicing'), |
|
| 269 | + 'CN11' => __('Jiangsu / 江苏', 'invoicing'), |
|
| 270 | + 'CN12' => __('Zhejiang / 浙江', 'invoicing'), |
|
| 271 | + 'CN13' => __('Anhui / 安徽', 'invoicing'), |
|
| 272 | + 'CN14' => __('Fujian / 福建', 'invoicing'), |
|
| 273 | + 'CN15' => __('Jiangxi / 江西', 'invoicing'), |
|
| 274 | + 'CN16' => __('Shandong / 山东', 'invoicing'), |
|
| 275 | + 'CN17' => __('Henan / 河南', 'invoicing'), |
|
| 276 | + 'CN18' => __('Hubei / 湖北', 'invoicing'), |
|
| 277 | + 'CN19' => __('Hunan / 湖南', 'invoicing'), |
|
| 278 | + 'CN20' => __('Guangdong / 广东', 'invoicing'), |
|
| 279 | + 'CN21' => __('Guangxi Zhuang / 广西壮族', 'invoicing'), |
|
| 280 | + 'CN22' => __('Hainan / 海南', 'invoicing'), |
|
| 281 | + 'CN23' => __('Chongqing / 重庆', 'invoicing'), |
|
| 282 | + 'CN24' => __('Sichuan / 四川', 'invoicing'), |
|
| 283 | + 'CN25' => __('Guizhou / 贵州', 'invoicing'), |
|
| 284 | + 'CN26' => __('Shaanxi / 陕西', 'invoicing'), |
|
| 285 | + 'CN27' => __('Gansu / 甘肃', 'invoicing'), |
|
| 286 | + 'CN28' => __('Qinghai / 青海', 'invoicing'), |
|
| 287 | + 'CN29' => __('Ningxia Hui / 宁夏', 'invoicing'), |
|
| 288 | + 'CN30' => __('Macao / 澳门', 'invoicing'), |
|
| 289 | + 'CN31' => __('Tibet / 西藏', 'invoicing'), |
|
| 290 | + 'CN32' => __('Xinjiang / 新疆', 'invoicing'), |
|
| 291 | 291 | ), |
| 292 | 292 | 'CZ' => array(), |
| 293 | 293 | 'DE' => array(), |
| 294 | 294 | 'DK' => array(), |
| 295 | 295 | 'EE' => array(), |
| 296 | 296 | 'ES' => array( // Spanish states. |
| 297 | - 'C' => __( 'A Coruña', 'invoicing' ), |
|
| 298 | - 'VI' => __( 'Araba/Álava', 'invoicing' ), |
|
| 299 | - 'AB' => __( 'Albacete', 'invoicing' ), |
|
| 300 | - 'A' => __( 'Alicante', 'invoicing' ), |
|
| 301 | - 'AL' => __( 'Almería', 'invoicing' ), |
|
| 302 | - 'O' => __( 'Asturias', 'invoicing' ), |
|
| 303 | - 'AV' => __( 'Ávila', 'invoicing' ), |
|
| 304 | - 'BA' => __( 'Badajoz', 'invoicing' ), |
|
| 305 | - 'PM' => __( 'Baleares', 'invoicing' ), |
|
| 306 | - 'B' => __( 'Barcelona', 'invoicing' ), |
|
| 307 | - 'BU' => __( 'Burgos', 'invoicing' ), |
|
| 308 | - 'CC' => __( 'Cáceres', 'invoicing' ), |
|
| 309 | - 'CA' => __( 'Cádiz', 'invoicing' ), |
|
| 310 | - 'S' => __( 'Cantabria', 'invoicing' ), |
|
| 311 | - 'CS' => __( 'Castellón', 'invoicing' ), |
|
| 312 | - 'CE' => __( 'Ceuta', 'invoicing' ), |
|
| 313 | - 'CR' => __( 'Ciudad Real', 'invoicing' ), |
|
| 314 | - 'CO' => __( 'Córdoba', 'invoicing' ), |
|
| 315 | - 'CU' => __( 'Cuenca', 'invoicing' ), |
|
| 316 | - 'GI' => __( 'Girona', 'invoicing' ), |
|
| 317 | - 'GR' => __( 'Granada', 'invoicing' ), |
|
| 318 | - 'GU' => __( 'Guadalajara', 'invoicing' ), |
|
| 319 | - 'SS' => __( 'Gipuzkoa', 'invoicing' ), |
|
| 320 | - 'H' => __( 'Huelva', 'invoicing' ), |
|
| 321 | - 'HU' => __( 'Huesca', 'invoicing' ), |
|
| 322 | - 'J' => __( 'Jaén', 'invoicing' ), |
|
| 323 | - 'LO' => __( 'La Rioja', 'invoicing' ), |
|
| 324 | - 'GC' => __( 'Las Palmas', 'invoicing' ), |
|
| 325 | - 'LE' => __( 'León', 'invoicing' ), |
|
| 326 | - 'L' => __( 'Lleida', 'invoicing' ), |
|
| 327 | - 'LU' => __( 'Lugo', 'invoicing' ), |
|
| 328 | - 'M' => __( 'Madrid', 'invoicing' ), |
|
| 329 | - 'MA' => __( 'Málaga', 'invoicing' ), |
|
| 330 | - 'ML' => __( 'Melilla', 'invoicing' ), |
|
| 331 | - 'MU' => __( 'Murcia', 'invoicing' ), |
|
| 332 | - 'NA' => __( 'Navarra', 'invoicing' ), |
|
| 333 | - 'OR' => __( 'Ourense', 'invoicing' ), |
|
| 334 | - 'P' => __( 'Palencia', 'invoicing' ), |
|
| 335 | - 'PO' => __( 'Pontevedra', 'invoicing' ), |
|
| 336 | - 'SA' => __( 'Salamanca', 'invoicing' ), |
|
| 337 | - 'TF' => __( 'Santa Cruz de Tenerife', 'invoicing' ), |
|
| 338 | - 'SG' => __( 'Segovia', 'invoicing' ), |
|
| 339 | - 'SE' => __( 'Sevilla', 'invoicing' ), |
|
| 340 | - 'SO' => __( 'Soria', 'invoicing' ), |
|
| 341 | - 'T' => __( 'Tarragona', 'invoicing' ), |
|
| 342 | - 'TE' => __( 'Teruel', 'invoicing' ), |
|
| 343 | - 'TO' => __( 'Toledo', 'invoicing' ), |
|
| 344 | - 'V' => __( 'Valencia', 'invoicing' ), |
|
| 345 | - 'VA' => __( 'Valladolid', 'invoicing' ), |
|
| 346 | - 'BI' => __( 'Bizkaia', 'invoicing' ), |
|
| 347 | - 'ZA' => __( 'Zamora', 'invoicing' ), |
|
| 348 | - 'Z' => __( 'Zaragoza', 'invoicing' ), |
|
| 297 | + 'C' => __('A Coruña', 'invoicing'), |
|
| 298 | + 'VI' => __('Araba/Álava', 'invoicing'), |
|
| 299 | + 'AB' => __('Albacete', 'invoicing'), |
|
| 300 | + 'A' => __('Alicante', 'invoicing'), |
|
| 301 | + 'AL' => __('Almería', 'invoicing'), |
|
| 302 | + 'O' => __('Asturias', 'invoicing'), |
|
| 303 | + 'AV' => __('Ávila', 'invoicing'), |
|
| 304 | + 'BA' => __('Badajoz', 'invoicing'), |
|
| 305 | + 'PM' => __('Baleares', 'invoicing'), |
|
| 306 | + 'B' => __('Barcelona', 'invoicing'), |
|
| 307 | + 'BU' => __('Burgos', 'invoicing'), |
|
| 308 | + 'CC' => __('Cáceres', 'invoicing'), |
|
| 309 | + 'CA' => __('Cádiz', 'invoicing'), |
|
| 310 | + 'S' => __('Cantabria', 'invoicing'), |
|
| 311 | + 'CS' => __('Castellón', 'invoicing'), |
|
| 312 | + 'CE' => __('Ceuta', 'invoicing'), |
|
| 313 | + 'CR' => __('Ciudad Real', 'invoicing'), |
|
| 314 | + 'CO' => __('Córdoba', 'invoicing'), |
|
| 315 | + 'CU' => __('Cuenca', 'invoicing'), |
|
| 316 | + 'GI' => __('Girona', 'invoicing'), |
|
| 317 | + 'GR' => __('Granada', 'invoicing'), |
|
| 318 | + 'GU' => __('Guadalajara', 'invoicing'), |
|
| 319 | + 'SS' => __('Gipuzkoa', 'invoicing'), |
|
| 320 | + 'H' => __('Huelva', 'invoicing'), |
|
| 321 | + 'HU' => __('Huesca', 'invoicing'), |
|
| 322 | + 'J' => __('Jaén', 'invoicing'), |
|
| 323 | + 'LO' => __('La Rioja', 'invoicing'), |
|
| 324 | + 'GC' => __('Las Palmas', 'invoicing'), |
|
| 325 | + 'LE' => __('León', 'invoicing'), |
|
| 326 | + 'L' => __('Lleida', 'invoicing'), |
|
| 327 | + 'LU' => __('Lugo', 'invoicing'), |
|
| 328 | + 'M' => __('Madrid', 'invoicing'), |
|
| 329 | + 'MA' => __('Málaga', 'invoicing'), |
|
| 330 | + 'ML' => __('Melilla', 'invoicing'), |
|
| 331 | + 'MU' => __('Murcia', 'invoicing'), |
|
| 332 | + 'NA' => __('Navarra', 'invoicing'), |
|
| 333 | + 'OR' => __('Ourense', 'invoicing'), |
|
| 334 | + 'P' => __('Palencia', 'invoicing'), |
|
| 335 | + 'PO' => __('Pontevedra', 'invoicing'), |
|
| 336 | + 'SA' => __('Salamanca', 'invoicing'), |
|
| 337 | + 'TF' => __('Santa Cruz de Tenerife', 'invoicing'), |
|
| 338 | + 'SG' => __('Segovia', 'invoicing'), |
|
| 339 | + 'SE' => __('Sevilla', 'invoicing'), |
|
| 340 | + 'SO' => __('Soria', 'invoicing'), |
|
| 341 | + 'T' => __('Tarragona', 'invoicing'), |
|
| 342 | + 'TE' => __('Teruel', 'invoicing'), |
|
| 343 | + 'TO' => __('Toledo', 'invoicing'), |
|
| 344 | + 'V' => __('Valencia', 'invoicing'), |
|
| 345 | + 'VA' => __('Valladolid', 'invoicing'), |
|
| 346 | + 'BI' => __('Bizkaia', 'invoicing'), |
|
| 347 | + 'ZA' => __('Zamora', 'invoicing'), |
|
| 348 | + 'Z' => __('Zaragoza', 'invoicing'), |
|
| 349 | 349 | ), |
| 350 | 350 | 'FI' => array(), |
| 351 | 351 | 'FR' => array(), |
| 352 | 352 | 'GP' => array(), |
| 353 | 353 | 'GR' => array( // Greek Regions. |
| 354 | - 'I' => __( 'Αττική', 'invoicing' ), |
|
| 355 | - 'A' => __( 'Ανατολική Μακεδονία και Θράκη', 'invoicing' ), |
|
| 356 | - 'B' => __( 'Κεντρική Μακεδονία', 'invoicing' ), |
|
| 357 | - 'C' => __( 'Δυτική Μακεδονία', 'invoicing' ), |
|
| 358 | - 'D' => __( 'Ήπειρος', 'invoicing' ), |
|
| 359 | - 'E' => __( 'Θεσσαλία', 'invoicing' ), |
|
| 360 | - 'F' => __( 'Ιόνιοι Νήσοι', 'invoicing' ), |
|
| 361 | - 'G' => __( 'Δυτική Ελλάδα', 'invoicing' ), |
|
| 362 | - 'H' => __( 'Στερεά Ελλάδα', 'invoicing' ), |
|
| 363 | - 'J' => __( 'Πελοπόννησος', 'invoicing' ), |
|
| 364 | - 'K' => __( 'Βόρειο Αιγαίο', 'invoicing' ), |
|
| 365 | - 'L' => __( 'Νότιο Αιγαίο', 'invoicing' ), |
|
| 366 | - 'M' => __( 'Κρήτη', 'invoicing' ), |
|
| 354 | + 'I' => __('Αττική', 'invoicing'), |
|
| 355 | + 'A' => __('Ανατολική Μακεδονία και Θράκη', 'invoicing'), |
|
| 356 | + 'B' => __('Κεντρική Μακεδονία', 'invoicing'), |
|
| 357 | + 'C' => __('Δυτική Μακεδονία', 'invoicing'), |
|
| 358 | + 'D' => __('Ήπειρος', 'invoicing'), |
|
| 359 | + 'E' => __('Θεσσαλία', 'invoicing'), |
|
| 360 | + 'F' => __('Ιόνιοι Νήσοι', 'invoicing'), |
|
| 361 | + 'G' => __('Δυτική Ελλάδα', 'invoicing'), |
|
| 362 | + 'H' => __('Στερεά Ελλάδα', 'invoicing'), |
|
| 363 | + 'J' => __('Πελοπόννησος', 'invoicing'), |
|
| 364 | + 'K' => __('Βόρειο Αιγαίο', 'invoicing'), |
|
| 365 | + 'L' => __('Νότιο Αιγαίο', 'invoicing'), |
|
| 366 | + 'M' => __('Κρήτη', 'invoicing'), |
|
| 367 | 367 | ), |
| 368 | 368 | 'GF' => array(), |
| 369 | 369 | 'HK' => array( // Hong Kong states. |
| 370 | - 'HONG KONG' => __( 'Hong Kong Island', 'invoicing' ), |
|
| 371 | - 'KOWLOON' => __( 'Kowloon', 'invoicing' ), |
|
| 372 | - 'NEW TERRITORIES' => __( 'New Territories', 'invoicing' ), |
|
| 370 | + 'HONG KONG' => __('Hong Kong Island', 'invoicing'), |
|
| 371 | + 'KOWLOON' => __('Kowloon', 'invoicing'), |
|
| 372 | + 'NEW TERRITORIES' => __('New Territories', 'invoicing'), |
|
| 373 | 373 | ), |
| 374 | 374 | 'HU' => array( // Hungary states. |
| 375 | - 'BK' => __( 'Bács-Kiskun', 'invoicing' ), |
|
| 376 | - 'BE' => __( 'Békés', 'invoicing' ), |
|
| 377 | - 'BA' => __( 'Baranya', 'invoicing' ), |
|
| 378 | - 'BZ' => __( 'Borsod-Abaúj-Zemplén', 'invoicing' ), |
|
| 379 | - 'BU' => __( 'Budapest', 'invoicing' ), |
|
| 380 | - 'CS' => __( 'Csongrád', 'invoicing' ), |
|
| 381 | - 'FE' => __( 'Fejér', 'invoicing' ), |
|
| 382 | - 'GS' => __( 'Győr-Moson-Sopron', 'invoicing' ), |
|
| 383 | - 'HB' => __( 'Hajdú-Bihar', 'invoicing' ), |
|
| 384 | - 'HE' => __( 'Heves', 'invoicing' ), |
|
| 385 | - 'JN' => __( 'Jász-Nagykun-Szolnok', 'invoicing' ), |
|
| 386 | - 'KE' => __( 'Komárom-Esztergom', 'invoicing' ), |
|
| 387 | - 'NO' => __( 'Nógrád', 'invoicing' ), |
|
| 388 | - 'PE' => __( 'Pest', 'invoicing' ), |
|
| 389 | - 'SO' => __( 'Somogy', 'invoicing' ), |
|
| 390 | - 'SZ' => __( 'Szabolcs-Szatmár-Bereg', 'invoicing' ), |
|
| 391 | - 'TO' => __( 'Tolna', 'invoicing' ), |
|
| 392 | - 'VA' => __( 'Vas', 'invoicing' ), |
|
| 393 | - 'VE' => __( 'Veszprém', 'invoicing' ), |
|
| 394 | - 'ZA' => __( 'Zala', 'invoicing' ), |
|
| 375 | + 'BK' => __('Bács-Kiskun', 'invoicing'), |
|
| 376 | + 'BE' => __('Békés', 'invoicing'), |
|
| 377 | + 'BA' => __('Baranya', 'invoicing'), |
|
| 378 | + 'BZ' => __('Borsod-Abaúj-Zemplén', 'invoicing'), |
|
| 379 | + 'BU' => __('Budapest', 'invoicing'), |
|
| 380 | + 'CS' => __('Csongrád', 'invoicing'), |
|
| 381 | + 'FE' => __('Fejér', 'invoicing'), |
|
| 382 | + 'GS' => __('Győr-Moson-Sopron', 'invoicing'), |
|
| 383 | + 'HB' => __('Hajdú-Bihar', 'invoicing'), |
|
| 384 | + 'HE' => __('Heves', 'invoicing'), |
|
| 385 | + 'JN' => __('Jász-Nagykun-Szolnok', 'invoicing'), |
|
| 386 | + 'KE' => __('Komárom-Esztergom', 'invoicing'), |
|
| 387 | + 'NO' => __('Nógrád', 'invoicing'), |
|
| 388 | + 'PE' => __('Pest', 'invoicing'), |
|
| 389 | + 'SO' => __('Somogy', 'invoicing'), |
|
| 390 | + 'SZ' => __('Szabolcs-Szatmár-Bereg', 'invoicing'), |
|
| 391 | + 'TO' => __('Tolna', 'invoicing'), |
|
| 392 | + 'VA' => __('Vas', 'invoicing'), |
|
| 393 | + 'VE' => __('Veszprém', 'invoicing'), |
|
| 394 | + 'ZA' => __('Zala', 'invoicing'), |
|
| 395 | 395 | ), |
| 396 | 396 | 'ID' => array( // Indonesia Provinces. |
| 397 | - 'AC' => __( 'Daerah Istimewa Aceh', 'invoicing' ), |
|
| 398 | - 'SU' => __( 'Sumatera Utara', 'invoicing' ), |
|
| 399 | - 'SB' => __( 'Sumatera Barat', 'invoicing' ), |
|
| 400 | - 'RI' => __( 'Riau', 'invoicing' ), |
|
| 401 | - 'KR' => __( 'Kepulauan Riau', 'invoicing' ), |
|
| 402 | - 'JA' => __( 'Jambi', 'invoicing' ), |
|
| 403 | - 'SS' => __( 'Sumatera Selatan', 'invoicing' ), |
|
| 404 | - 'BB' => __( 'Bangka Belitung', 'invoicing' ), |
|
| 405 | - 'BE' => __( 'Bengkulu', 'invoicing' ), |
|
| 406 | - 'LA' => __( 'Lampung', 'invoicing' ), |
|
| 407 | - 'JK' => __( 'DKI Jakarta', 'invoicing' ), |
|
| 408 | - 'JB' => __( 'Jawa Barat', 'invoicing' ), |
|
| 409 | - 'BT' => __( 'Banten', 'invoicing' ), |
|
| 410 | - 'JT' => __( 'Jawa Tengah', 'invoicing' ), |
|
| 411 | - 'JI' => __( 'Jawa Timur', 'invoicing' ), |
|
| 412 | - 'YO' => __( 'Daerah Istimewa Yogyakarta', 'invoicing' ), |
|
| 413 | - 'BA' => __( 'Bali', 'invoicing' ), |
|
| 414 | - 'NB' => __( 'Nusa Tenggara Barat', 'invoicing' ), |
|
| 415 | - 'NT' => __( 'Nusa Tenggara Timur', 'invoicing' ), |
|
| 416 | - 'KB' => __( 'Kalimantan Barat', 'invoicing' ), |
|
| 417 | - 'KT' => __( 'Kalimantan Tengah', 'invoicing' ), |
|
| 418 | - 'KI' => __( 'Kalimantan Timur', 'invoicing' ), |
|
| 419 | - 'KS' => __( 'Kalimantan Selatan', 'invoicing' ), |
|
| 420 | - 'KU' => __( 'Kalimantan Utara', 'invoicing' ), |
|
| 421 | - 'SA' => __( 'Sulawesi Utara', 'invoicing' ), |
|
| 422 | - 'ST' => __( 'Sulawesi Tengah', 'invoicing' ), |
|
| 423 | - 'SG' => __( 'Sulawesi Tenggara', 'invoicing' ), |
|
| 424 | - 'SR' => __( 'Sulawesi Barat', 'invoicing' ), |
|
| 425 | - 'SN' => __( 'Sulawesi Selatan', 'invoicing' ), |
|
| 426 | - 'GO' => __( 'Gorontalo', 'invoicing' ), |
|
| 427 | - 'MA' => __( 'Maluku', 'invoicing' ), |
|
| 428 | - 'MU' => __( 'Maluku Utara', 'invoicing' ), |
|
| 429 | - 'PA' => __( 'Papua', 'invoicing' ), |
|
| 430 | - 'PB' => __( 'Papua Barat', 'invoicing' ), |
|
| 397 | + 'AC' => __('Daerah Istimewa Aceh', 'invoicing'), |
|
| 398 | + 'SU' => __('Sumatera Utara', 'invoicing'), |
|
| 399 | + 'SB' => __('Sumatera Barat', 'invoicing'), |
|
| 400 | + 'RI' => __('Riau', 'invoicing'), |
|
| 401 | + 'KR' => __('Kepulauan Riau', 'invoicing'), |
|
| 402 | + 'JA' => __('Jambi', 'invoicing'), |
|
| 403 | + 'SS' => __('Sumatera Selatan', 'invoicing'), |
|
| 404 | + 'BB' => __('Bangka Belitung', 'invoicing'), |
|
| 405 | + 'BE' => __('Bengkulu', 'invoicing'), |
|
| 406 | + 'LA' => __('Lampung', 'invoicing'), |
|
| 407 | + 'JK' => __('DKI Jakarta', 'invoicing'), |
|
| 408 | + 'JB' => __('Jawa Barat', 'invoicing'), |
|
| 409 | + 'BT' => __('Banten', 'invoicing'), |
|
| 410 | + 'JT' => __('Jawa Tengah', 'invoicing'), |
|
| 411 | + 'JI' => __('Jawa Timur', 'invoicing'), |
|
| 412 | + 'YO' => __('Daerah Istimewa Yogyakarta', 'invoicing'), |
|
| 413 | + 'BA' => __('Bali', 'invoicing'), |
|
| 414 | + 'NB' => __('Nusa Tenggara Barat', 'invoicing'), |
|
| 415 | + 'NT' => __('Nusa Tenggara Timur', 'invoicing'), |
|
| 416 | + 'KB' => __('Kalimantan Barat', 'invoicing'), |
|
| 417 | + 'KT' => __('Kalimantan Tengah', 'invoicing'), |
|
| 418 | + 'KI' => __('Kalimantan Timur', 'invoicing'), |
|
| 419 | + 'KS' => __('Kalimantan Selatan', 'invoicing'), |
|
| 420 | + 'KU' => __('Kalimantan Utara', 'invoicing'), |
|
| 421 | + 'SA' => __('Sulawesi Utara', 'invoicing'), |
|
| 422 | + 'ST' => __('Sulawesi Tengah', 'invoicing'), |
|
| 423 | + 'SG' => __('Sulawesi Tenggara', 'invoicing'), |
|
| 424 | + 'SR' => __('Sulawesi Barat', 'invoicing'), |
|
| 425 | + 'SN' => __('Sulawesi Selatan', 'invoicing'), |
|
| 426 | + 'GO' => __('Gorontalo', 'invoicing'), |
|
| 427 | + 'MA' => __('Maluku', 'invoicing'), |
|
| 428 | + 'MU' => __('Maluku Utara', 'invoicing'), |
|
| 429 | + 'PA' => __('Papua', 'invoicing'), |
|
| 430 | + 'PB' => __('Papua Barat', 'invoicing'), |
|
| 431 | 431 | ), |
| 432 | 432 | 'IE' => array( // Republic of Ireland. |
| 433 | - 'CW' => __( 'Carlow', 'invoicing' ), |
|
| 434 | - 'CN' => __( 'Cavan', 'invoicing' ), |
|
| 435 | - 'CE' => __( 'Clare', 'invoicing' ), |
|
| 436 | - 'CO' => __( 'Cork', 'invoicing' ), |
|
| 437 | - 'DL' => __( 'Donegal', 'invoicing' ), |
|
| 438 | - 'D' => __( 'Dublin', 'invoicing' ), |
|
| 439 | - 'G' => __( 'Galway', 'invoicing' ), |
|
| 440 | - 'KY' => __( 'Kerry', 'invoicing' ), |
|
| 441 | - 'KE' => __( 'Kildare', 'invoicing' ), |
|
| 442 | - 'KK' => __( 'Kilkenny', 'invoicing' ), |
|
| 443 | - 'LS' => __( 'Laois', 'invoicing' ), |
|
| 444 | - 'LM' => __( 'Leitrim', 'invoicing' ), |
|
| 445 | - 'LK' => __( 'Limerick', 'invoicing' ), |
|
| 446 | - 'LD' => __( 'Longford', 'invoicing' ), |
|
| 447 | - 'LH' => __( 'Louth', 'invoicing' ), |
|
| 448 | - 'MO' => __( 'Mayo', 'invoicing' ), |
|
| 449 | - 'MH' => __( 'Meath', 'invoicing' ), |
|
| 450 | - 'MN' => __( 'Monaghan', 'invoicing' ), |
|
| 451 | - 'OY' => __( 'Offaly', 'invoicing' ), |
|
| 452 | - 'RN' => __( 'Roscommon', 'invoicing' ), |
|
| 453 | - 'SO' => __( 'Sligo', 'invoicing' ), |
|
| 454 | - 'TA' => __( 'Tipperary', 'invoicing' ), |
|
| 455 | - 'WD' => __( 'Waterford', 'invoicing' ), |
|
| 456 | - 'WH' => __( 'Westmeath', 'invoicing' ), |
|
| 457 | - 'WX' => __( 'Wexford', 'invoicing' ), |
|
| 458 | - 'WW' => __( 'Wicklow', 'invoicing' ), |
|
| 433 | + 'CW' => __('Carlow', 'invoicing'), |
|
| 434 | + 'CN' => __('Cavan', 'invoicing'), |
|
| 435 | + 'CE' => __('Clare', 'invoicing'), |
|
| 436 | + 'CO' => __('Cork', 'invoicing'), |
|
| 437 | + 'DL' => __('Donegal', 'invoicing'), |
|
| 438 | + 'D' => __('Dublin', 'invoicing'), |
|
| 439 | + 'G' => __('Galway', 'invoicing'), |
|
| 440 | + 'KY' => __('Kerry', 'invoicing'), |
|
| 441 | + 'KE' => __('Kildare', 'invoicing'), |
|
| 442 | + 'KK' => __('Kilkenny', 'invoicing'), |
|
| 443 | + 'LS' => __('Laois', 'invoicing'), |
|
| 444 | + 'LM' => __('Leitrim', 'invoicing'), |
|
| 445 | + 'LK' => __('Limerick', 'invoicing'), |
|
| 446 | + 'LD' => __('Longford', 'invoicing'), |
|
| 447 | + 'LH' => __('Louth', 'invoicing'), |
|
| 448 | + 'MO' => __('Mayo', 'invoicing'), |
|
| 449 | + 'MH' => __('Meath', 'invoicing'), |
|
| 450 | + 'MN' => __('Monaghan', 'invoicing'), |
|
| 451 | + 'OY' => __('Offaly', 'invoicing'), |
|
| 452 | + 'RN' => __('Roscommon', 'invoicing'), |
|
| 453 | + 'SO' => __('Sligo', 'invoicing'), |
|
| 454 | + 'TA' => __('Tipperary', 'invoicing'), |
|
| 455 | + 'WD' => __('Waterford', 'invoicing'), |
|
| 456 | + 'WH' => __('Westmeath', 'invoicing'), |
|
| 457 | + 'WX' => __('Wexford', 'invoicing'), |
|
| 458 | + 'WW' => __('Wicklow', 'invoicing'), |
|
| 459 | 459 | ), |
| 460 | 460 | 'IN' => array( // Indian states. |
| 461 | - 'AP' => __( 'Andhra Pradesh', 'invoicing' ), |
|
| 462 | - 'AR' => __( 'Arunachal Pradesh', 'invoicing' ), |
|
| 463 | - 'AS' => __( 'Assam', 'invoicing' ), |
|
| 464 | - 'BR' => __( 'Bihar', 'invoicing' ), |
|
| 465 | - 'CT' => __( 'Chhattisgarh', 'invoicing' ), |
|
| 466 | - 'GA' => __( 'Goa', 'invoicing' ), |
|
| 467 | - 'GJ' => __( 'Gujarat', 'invoicing' ), |
|
| 468 | - 'HR' => __( 'Haryana', 'invoicing' ), |
|
| 469 | - 'HP' => __( 'Himachal Pradesh', 'invoicing' ), |
|
| 470 | - 'JK' => __( 'Jammu and Kashmir', 'invoicing' ), |
|
| 471 | - 'JH' => __( 'Jharkhand', 'invoicing' ), |
|
| 472 | - 'KA' => __( 'Karnataka', 'invoicing' ), |
|
| 473 | - 'KL' => __( 'Kerala', 'invoicing' ), |
|
| 474 | - 'MP' => __( 'Madhya Pradesh', 'invoicing' ), |
|
| 475 | - 'MH' => __( 'Maharashtra', 'invoicing' ), |
|
| 476 | - 'MN' => __( 'Manipur', 'invoicing' ), |
|
| 477 | - 'ML' => __( 'Meghalaya', 'invoicing' ), |
|
| 478 | - 'MZ' => __( 'Mizoram', 'invoicing' ), |
|
| 479 | - 'NL' => __( 'Nagaland', 'invoicing' ), |
|
| 480 | - 'OR' => __( 'Orissa', 'invoicing' ), |
|
| 481 | - 'PB' => __( 'Punjab', 'invoicing' ), |
|
| 482 | - 'RJ' => __( 'Rajasthan', 'invoicing' ), |
|
| 483 | - 'SK' => __( 'Sikkim', 'invoicing' ), |
|
| 484 | - 'TN' => __( 'Tamil Nadu', 'invoicing' ), |
|
| 485 | - 'TS' => __( 'Telangana', 'invoicing' ), |
|
| 486 | - 'TR' => __( 'Tripura', 'invoicing' ), |
|
| 487 | - 'UK' => __( 'Uttarakhand', 'invoicing' ), |
|
| 488 | - 'UP' => __( 'Uttar Pradesh', 'invoicing' ), |
|
| 489 | - 'WB' => __( 'West Bengal', 'invoicing' ), |
|
| 490 | - 'AN' => __( 'Andaman and Nicobar Islands', 'invoicing' ), |
|
| 491 | - 'CH' => __( 'Chandigarh', 'invoicing' ), |
|
| 492 | - 'DN' => __( 'Dadra and Nagar Haveli', 'invoicing' ), |
|
| 493 | - 'DD' => __( 'Daman and Diu', 'invoicing' ), |
|
| 494 | - 'DL' => __( 'Delhi', 'invoicing' ), |
|
| 495 | - 'LD' => __( 'Lakshadeep', 'invoicing' ), |
|
| 496 | - 'PY' => __( 'Pondicherry (Puducherry)', 'invoicing' ), |
|
| 461 | + 'AP' => __('Andhra Pradesh', 'invoicing'), |
|
| 462 | + 'AR' => __('Arunachal Pradesh', 'invoicing'), |
|
| 463 | + 'AS' => __('Assam', 'invoicing'), |
|
| 464 | + 'BR' => __('Bihar', 'invoicing'), |
|
| 465 | + 'CT' => __('Chhattisgarh', 'invoicing'), |
|
| 466 | + 'GA' => __('Goa', 'invoicing'), |
|
| 467 | + 'GJ' => __('Gujarat', 'invoicing'), |
|
| 468 | + 'HR' => __('Haryana', 'invoicing'), |
|
| 469 | + 'HP' => __('Himachal Pradesh', 'invoicing'), |
|
| 470 | + 'JK' => __('Jammu and Kashmir', 'invoicing'), |
|
| 471 | + 'JH' => __('Jharkhand', 'invoicing'), |
|
| 472 | + 'KA' => __('Karnataka', 'invoicing'), |
|
| 473 | + 'KL' => __('Kerala', 'invoicing'), |
|
| 474 | + 'MP' => __('Madhya Pradesh', 'invoicing'), |
|
| 475 | + 'MH' => __('Maharashtra', 'invoicing'), |
|
| 476 | + 'MN' => __('Manipur', 'invoicing'), |
|
| 477 | + 'ML' => __('Meghalaya', 'invoicing'), |
|
| 478 | + 'MZ' => __('Mizoram', 'invoicing'), |
|
| 479 | + 'NL' => __('Nagaland', 'invoicing'), |
|
| 480 | + 'OR' => __('Orissa', 'invoicing'), |
|
| 481 | + 'PB' => __('Punjab', 'invoicing'), |
|
| 482 | + 'RJ' => __('Rajasthan', 'invoicing'), |
|
| 483 | + 'SK' => __('Sikkim', 'invoicing'), |
|
| 484 | + 'TN' => __('Tamil Nadu', 'invoicing'), |
|
| 485 | + 'TS' => __('Telangana', 'invoicing'), |
|
| 486 | + 'TR' => __('Tripura', 'invoicing'), |
|
| 487 | + 'UK' => __('Uttarakhand', 'invoicing'), |
|
| 488 | + 'UP' => __('Uttar Pradesh', 'invoicing'), |
|
| 489 | + 'WB' => __('West Bengal', 'invoicing'), |
|
| 490 | + 'AN' => __('Andaman and Nicobar Islands', 'invoicing'), |
|
| 491 | + 'CH' => __('Chandigarh', 'invoicing'), |
|
| 492 | + 'DN' => __('Dadra and Nagar Haveli', 'invoicing'), |
|
| 493 | + 'DD' => __('Daman and Diu', 'invoicing'), |
|
| 494 | + 'DL' => __('Delhi', 'invoicing'), |
|
| 495 | + 'LD' => __('Lakshadeep', 'invoicing'), |
|
| 496 | + 'PY' => __('Pondicherry (Puducherry)', 'invoicing'), |
|
| 497 | 497 | ), |
| 498 | 498 | 'IR' => array( // Iran States. |
| 499 | - 'KHZ' => __( 'Khuzestan (خوزستان)', 'invoicing' ), |
|
| 500 | - 'THR' => __( 'Tehran (تهران)', 'invoicing' ), |
|
| 501 | - 'ILM' => __( 'Ilaam (ایلام)', 'invoicing' ), |
|
| 502 | - 'BHR' => __( 'Bushehr (بوشهر)', 'invoicing' ), |
|
| 503 | - 'ADL' => __( 'Ardabil (اردبیل)', 'invoicing' ), |
|
| 504 | - 'ESF' => __( 'Isfahan (اصفهان)', 'invoicing' ), |
|
| 505 | - 'YZD' => __( 'Yazd (یزد)', 'invoicing' ), |
|
| 506 | - 'KRH' => __( 'Kermanshah (کرمانشاه)', 'invoicing' ), |
|
| 507 | - 'KRN' => __( 'Kerman (کرمان)', 'invoicing' ), |
|
| 508 | - 'HDN' => __( 'Hamadan (همدان)', 'invoicing' ), |
|
| 509 | - 'GZN' => __( 'Ghazvin (قزوین)', 'invoicing' ), |
|
| 510 | - 'ZJN' => __( 'Zanjan (زنجان)', 'invoicing' ), |
|
| 511 | - 'LRS' => __( 'Luristan (لرستان)', 'invoicing' ), |
|
| 512 | - 'ABZ' => __( 'Alborz (البرز)', 'invoicing' ), |
|
| 513 | - 'EAZ' => __( 'East Azarbaijan (آذربایجان شرقی)', 'invoicing' ), |
|
| 514 | - 'WAZ' => __( 'West Azarbaijan (آذربایجان غربی)', 'invoicing' ), |
|
| 515 | - 'CHB' => __( 'Chaharmahal and Bakhtiari (چهارمحال و بختیاری)', 'invoicing' ), |
|
| 516 | - 'SKH' => __( 'South Khorasan (خراسان جنوبی)', 'invoicing' ), |
|
| 517 | - 'RKH' => __( 'Razavi Khorasan (خراسان رضوی)', 'invoicing' ), |
|
| 518 | - 'NKH' => __( 'North Khorasan (خراسان شمالی)', 'invoicing' ), |
|
| 519 | - 'SMN' => __( 'Semnan (سمنان)', 'invoicing' ), |
|
| 520 | - 'FRS' => __( 'Fars (فارس)', 'invoicing' ), |
|
| 521 | - 'QHM' => __( 'Qom (قم)', 'invoicing' ), |
|
| 522 | - 'KRD' => __( 'Kurdistan / کردستان)', 'invoicing' ), |
|
| 523 | - 'KBD' => __( 'Kohgiluyeh and BoyerAhmad (کهگیلوییه و بویراحمد)', 'invoicing' ), |
|
| 524 | - 'GLS' => __( 'Golestan (گلستان)', 'invoicing' ), |
|
| 525 | - 'GIL' => __( 'Gilan (گیلان)', 'invoicing' ), |
|
| 526 | - 'MZN' => __( 'Mazandaran (مازندران)', 'invoicing' ), |
|
| 527 | - 'MKZ' => __( 'Markazi (مرکزی)', 'invoicing' ), |
|
| 528 | - 'HRZ' => __( 'Hormozgan (هرمزگان)', 'invoicing' ), |
|
| 529 | - 'SBN' => __( 'Sistan and Baluchestan (سیستان و بلوچستان)', 'invoicing' ), |
|
| 499 | + 'KHZ' => __('Khuzestan (خوزستان)', 'invoicing'), |
|
| 500 | + 'THR' => __('Tehran (تهران)', 'invoicing'), |
|
| 501 | + 'ILM' => __('Ilaam (ایلام)', 'invoicing'), |
|
| 502 | + 'BHR' => __('Bushehr (بوشهر)', 'invoicing'), |
|
| 503 | + 'ADL' => __('Ardabil (اردبیل)', 'invoicing'), |
|
| 504 | + 'ESF' => __('Isfahan (اصفهان)', 'invoicing'), |
|
| 505 | + 'YZD' => __('Yazd (یزد)', 'invoicing'), |
|
| 506 | + 'KRH' => __('Kermanshah (کرمانشاه)', 'invoicing'), |
|
| 507 | + 'KRN' => __('Kerman (کرمان)', 'invoicing'), |
|
| 508 | + 'HDN' => __('Hamadan (همدان)', 'invoicing'), |
|
| 509 | + 'GZN' => __('Ghazvin (قزوین)', 'invoicing'), |
|
| 510 | + 'ZJN' => __('Zanjan (زنجان)', 'invoicing'), |
|
| 511 | + 'LRS' => __('Luristan (لرستان)', 'invoicing'), |
|
| 512 | + 'ABZ' => __('Alborz (البرز)', 'invoicing'), |
|
| 513 | + 'EAZ' => __('East Azarbaijan (آذربایجان شرقی)', 'invoicing'), |
|
| 514 | + 'WAZ' => __('West Azarbaijan (آذربایجان غربی)', 'invoicing'), |
|
| 515 | + 'CHB' => __('Chaharmahal and Bakhtiari (چهارمحال و بختیاری)', 'invoicing'), |
|
| 516 | + 'SKH' => __('South Khorasan (خراسان جنوبی)', 'invoicing'), |
|
| 517 | + 'RKH' => __('Razavi Khorasan (خراسان رضوی)', 'invoicing'), |
|
| 518 | + 'NKH' => __('North Khorasan (خراسان شمالی)', 'invoicing'), |
|
| 519 | + 'SMN' => __('Semnan (سمنان)', 'invoicing'), |
|
| 520 | + 'FRS' => __('Fars (فارس)', 'invoicing'), |
|
| 521 | + 'QHM' => __('Qom (قم)', 'invoicing'), |
|
| 522 | + 'KRD' => __('Kurdistan / کردستان)', 'invoicing'), |
|
| 523 | + 'KBD' => __('Kohgiluyeh and BoyerAhmad (کهگیلوییه و بویراحمد)', 'invoicing'), |
|
| 524 | + 'GLS' => __('Golestan (گلستان)', 'invoicing'), |
|
| 525 | + 'GIL' => __('Gilan (گیلان)', 'invoicing'), |
|
| 526 | + 'MZN' => __('Mazandaran (مازندران)', 'invoicing'), |
|
| 527 | + 'MKZ' => __('Markazi (مرکزی)', 'invoicing'), |
|
| 528 | + 'HRZ' => __('Hormozgan (هرمزگان)', 'invoicing'), |
|
| 529 | + 'SBN' => __('Sistan and Baluchestan (سیستان و بلوچستان)', 'invoicing'), |
|
| 530 | 530 | ), |
| 531 | 531 | 'IS' => array(), |
| 532 | 532 | 'IT' => array( // Italy Provinces. |
| 533 | - 'AG' => __( 'Agrigento', 'invoicing' ), |
|
| 534 | - 'AL' => __( 'Alessandria', 'invoicing' ), |
|
| 535 | - 'AN' => __( 'Ancona', 'invoicing' ), |
|
| 536 | - 'AO' => __( 'Aosta', 'invoicing' ), |
|
| 537 | - 'AR' => __( 'Arezzo', 'invoicing' ), |
|
| 538 | - 'AP' => __( 'Ascoli Piceno', 'invoicing' ), |
|
| 539 | - 'AT' => __( 'Asti', 'invoicing' ), |
|
| 540 | - 'AV' => __( 'Avellino', 'invoicing' ), |
|
| 541 | - 'BA' => __( 'Bari', 'invoicing' ), |
|
| 542 | - 'BT' => __( 'Barletta-Andria-Trani', 'invoicing' ), |
|
| 543 | - 'BL' => __( 'Belluno', 'invoicing' ), |
|
| 544 | - 'BN' => __( 'Benevento', 'invoicing' ), |
|
| 545 | - 'BG' => __( 'Bergamo', 'invoicing' ), |
|
| 546 | - 'BI' => __( 'Biella', 'invoicing' ), |
|
| 547 | - 'BO' => __( 'Bologna', 'invoicing' ), |
|
| 548 | - 'BZ' => __( 'Bolzano', 'invoicing' ), |
|
| 549 | - 'BS' => __( 'Brescia', 'invoicing' ), |
|
| 550 | - 'BR' => __( 'Brindisi', 'invoicing' ), |
|
| 551 | - 'CA' => __( 'Cagliari', 'invoicing' ), |
|
| 552 | - 'CL' => __( 'Caltanissetta', 'invoicing' ), |
|
| 553 | - 'CB' => __( 'Campobasso', 'invoicing' ), |
|
| 554 | - 'CE' => __( 'Caserta', 'invoicing' ), |
|
| 555 | - 'CT' => __( 'Catania', 'invoicing' ), |
|
| 556 | - 'CZ' => __( 'Catanzaro', 'invoicing' ), |
|
| 557 | - 'CH' => __( 'Chieti', 'invoicing' ), |
|
| 558 | - 'CO' => __( 'Como', 'invoicing' ), |
|
| 559 | - 'CS' => __( 'Cosenza', 'invoicing' ), |
|
| 560 | - 'CR' => __( 'Cremona', 'invoicing' ), |
|
| 561 | - 'KR' => __( 'Crotone', 'invoicing' ), |
|
| 562 | - 'CN' => __( 'Cuneo', 'invoicing' ), |
|
| 563 | - 'EN' => __( 'Enna', 'invoicing' ), |
|
| 564 | - 'FM' => __( 'Fermo', 'invoicing' ), |
|
| 565 | - 'FE' => __( 'Ferrara', 'invoicing' ), |
|
| 566 | - 'FI' => __( 'Firenze', 'invoicing' ), |
|
| 567 | - 'FG' => __( 'Foggia', 'invoicing' ), |
|
| 568 | - 'FC' => __( 'Forlì-Cesena', 'invoicing' ), |
|
| 569 | - 'FR' => __( 'Frosinone', 'invoicing' ), |
|
| 570 | - 'GE' => __( 'Genova', 'invoicing' ), |
|
| 571 | - 'GO' => __( 'Gorizia', 'invoicing' ), |
|
| 572 | - 'GR' => __( 'Grosseto', 'invoicing' ), |
|
| 573 | - 'IM' => __( 'Imperia', 'invoicing' ), |
|
| 574 | - 'IS' => __( 'Isernia', 'invoicing' ), |
|
| 575 | - 'SP' => __( 'La Spezia', 'invoicing' ), |
|
| 576 | - 'AQ' => __( "L'Aquila", 'invoicing' ), |
|
| 577 | - 'LT' => __( 'Latina', 'invoicing' ), |
|
| 578 | - 'LE' => __( 'Lecce', 'invoicing' ), |
|
| 579 | - 'LC' => __( 'Lecco', 'invoicing' ), |
|
| 580 | - 'LI' => __( 'Livorno', 'invoicing' ), |
|
| 581 | - 'LO' => __( 'Lodi', 'invoicing' ), |
|
| 582 | - 'LU' => __( 'Lucca', 'invoicing' ), |
|
| 583 | - 'MC' => __( 'Macerata', 'invoicing' ), |
|
| 584 | - 'MN' => __( 'Mantova', 'invoicing' ), |
|
| 585 | - 'MS' => __( 'Massa-Carrara', 'invoicing' ), |
|
| 586 | - 'MT' => __( 'Matera', 'invoicing' ), |
|
| 587 | - 'ME' => __( 'Messina', 'invoicing' ), |
|
| 588 | - 'MI' => __( 'Milano', 'invoicing' ), |
|
| 589 | - 'MO' => __( 'Modena', 'invoicing' ), |
|
| 590 | - 'MB' => __( 'Monza e della Brianza', 'invoicing' ), |
|
| 591 | - 'NA' => __( 'Napoli', 'invoicing' ), |
|
| 592 | - 'NO' => __( 'Novara', 'invoicing' ), |
|
| 593 | - 'NU' => __( 'Nuoro', 'invoicing' ), |
|
| 594 | - 'OR' => __( 'Oristano', 'invoicing' ), |
|
| 595 | - 'PD' => __( 'Padova', 'invoicing' ), |
|
| 596 | - 'PA' => __( 'Palermo', 'invoicing' ), |
|
| 597 | - 'PR' => __( 'Parma', 'invoicing' ), |
|
| 598 | - 'PV' => __( 'Pavia', 'invoicing' ), |
|
| 599 | - 'PG' => __( 'Perugia', 'invoicing' ), |
|
| 600 | - 'PU' => __( 'Pesaro e Urbino', 'invoicing' ), |
|
| 601 | - 'PE' => __( 'Pescara', 'invoicing' ), |
|
| 602 | - 'PC' => __( 'Piacenza', 'invoicing' ), |
|
| 603 | - 'PI' => __( 'Pisa', 'invoicing' ), |
|
| 604 | - 'PT' => __( 'Pistoia', 'invoicing' ), |
|
| 605 | - 'PN' => __( 'Pordenone', 'invoicing' ), |
|
| 606 | - 'PZ' => __( 'Potenza', 'invoicing' ), |
|
| 607 | - 'PO' => __( 'Prato', 'invoicing' ), |
|
| 608 | - 'RG' => __( 'Ragusa', 'invoicing' ), |
|
| 609 | - 'RA' => __( 'Ravenna', 'invoicing' ), |
|
| 610 | - 'RC' => __( 'Reggio Calabria', 'invoicing' ), |
|
| 611 | - 'RE' => __( 'Reggio Emilia', 'invoicing' ), |
|
| 612 | - 'RI' => __( 'Rieti', 'invoicing' ), |
|
| 613 | - 'RN' => __( 'Rimini', 'invoicing' ), |
|
| 614 | - 'RM' => __( 'Roma', 'invoicing' ), |
|
| 615 | - 'RO' => __( 'Rovigo', 'invoicing' ), |
|
| 616 | - 'SA' => __( 'Salerno', 'invoicing' ), |
|
| 617 | - 'SS' => __( 'Sassari', 'invoicing' ), |
|
| 618 | - 'SV' => __( 'Savona', 'invoicing' ), |
|
| 619 | - 'SI' => __( 'Siena', 'invoicing' ), |
|
| 620 | - 'SR' => __( 'Siracusa', 'invoicing' ), |
|
| 621 | - 'SO' => __( 'Sondrio', 'invoicing' ), |
|
| 622 | - 'SU' => __( 'Sud Sardegna', 'invoicing' ), |
|
| 623 | - 'TA' => __( 'Taranto', 'invoicing' ), |
|
| 624 | - 'TE' => __( 'Teramo', 'invoicing' ), |
|
| 625 | - 'TR' => __( 'Terni', 'invoicing' ), |
|
| 626 | - 'TO' => __( 'Torino', 'invoicing' ), |
|
| 627 | - 'TP' => __( 'Trapani', 'invoicing' ), |
|
| 628 | - 'TN' => __( 'Trento', 'invoicing' ), |
|
| 629 | - 'TV' => __( 'Treviso', 'invoicing' ), |
|
| 630 | - 'TS' => __( 'Trieste', 'invoicing' ), |
|
| 631 | - 'UD' => __( 'Udine', 'invoicing' ), |
|
| 632 | - 'VA' => __( 'Varese', 'invoicing' ), |
|
| 633 | - 'VE' => __( 'Venezia', 'invoicing' ), |
|
| 634 | - 'VB' => __( 'Verbano-Cusio-Ossola', 'invoicing' ), |
|
| 635 | - 'VC' => __( 'Vercelli', 'invoicing' ), |
|
| 636 | - 'VR' => __( 'Verona', 'invoicing' ), |
|
| 637 | - 'VV' => __( 'Vibo Valentia', 'invoicing' ), |
|
| 638 | - 'VI' => __( 'Vicenza', 'invoicing' ), |
|
| 639 | - 'VT' => __( 'Viterbo', 'invoicing' ), |
|
| 533 | + 'AG' => __('Agrigento', 'invoicing'), |
|
| 534 | + 'AL' => __('Alessandria', 'invoicing'), |
|
| 535 | + 'AN' => __('Ancona', 'invoicing'), |
|
| 536 | + 'AO' => __('Aosta', 'invoicing'), |
|
| 537 | + 'AR' => __('Arezzo', 'invoicing'), |
|
| 538 | + 'AP' => __('Ascoli Piceno', 'invoicing'), |
|
| 539 | + 'AT' => __('Asti', 'invoicing'), |
|
| 540 | + 'AV' => __('Avellino', 'invoicing'), |
|
| 541 | + 'BA' => __('Bari', 'invoicing'), |
|
| 542 | + 'BT' => __('Barletta-Andria-Trani', 'invoicing'), |
|
| 543 | + 'BL' => __('Belluno', 'invoicing'), |
|
| 544 | + 'BN' => __('Benevento', 'invoicing'), |
|
| 545 | + 'BG' => __('Bergamo', 'invoicing'), |
|
| 546 | + 'BI' => __('Biella', 'invoicing'), |
|
| 547 | + 'BO' => __('Bologna', 'invoicing'), |
|
| 548 | + 'BZ' => __('Bolzano', 'invoicing'), |
|
| 549 | + 'BS' => __('Brescia', 'invoicing'), |
|
| 550 | + 'BR' => __('Brindisi', 'invoicing'), |
|
| 551 | + 'CA' => __('Cagliari', 'invoicing'), |
|
| 552 | + 'CL' => __('Caltanissetta', 'invoicing'), |
|
| 553 | + 'CB' => __('Campobasso', 'invoicing'), |
|
| 554 | + 'CE' => __('Caserta', 'invoicing'), |
|
| 555 | + 'CT' => __('Catania', 'invoicing'), |
|
| 556 | + 'CZ' => __('Catanzaro', 'invoicing'), |
|
| 557 | + 'CH' => __('Chieti', 'invoicing'), |
|
| 558 | + 'CO' => __('Como', 'invoicing'), |
|
| 559 | + 'CS' => __('Cosenza', 'invoicing'), |
|
| 560 | + 'CR' => __('Cremona', 'invoicing'), |
|
| 561 | + 'KR' => __('Crotone', 'invoicing'), |
|
| 562 | + 'CN' => __('Cuneo', 'invoicing'), |
|
| 563 | + 'EN' => __('Enna', 'invoicing'), |
|
| 564 | + 'FM' => __('Fermo', 'invoicing'), |
|
| 565 | + 'FE' => __('Ferrara', 'invoicing'), |
|
| 566 | + 'FI' => __('Firenze', 'invoicing'), |
|
| 567 | + 'FG' => __('Foggia', 'invoicing'), |
|
| 568 | + 'FC' => __('Forlì-Cesena', 'invoicing'), |
|
| 569 | + 'FR' => __('Frosinone', 'invoicing'), |
|
| 570 | + 'GE' => __('Genova', 'invoicing'), |
|
| 571 | + 'GO' => __('Gorizia', 'invoicing'), |
|
| 572 | + 'GR' => __('Grosseto', 'invoicing'), |
|
| 573 | + 'IM' => __('Imperia', 'invoicing'), |
|
| 574 | + 'IS' => __('Isernia', 'invoicing'), |
|
| 575 | + 'SP' => __('La Spezia', 'invoicing'), |
|
| 576 | + 'AQ' => __("L'Aquila", 'invoicing'), |
|
| 577 | + 'LT' => __('Latina', 'invoicing'), |
|
| 578 | + 'LE' => __('Lecce', 'invoicing'), |
|
| 579 | + 'LC' => __('Lecco', 'invoicing'), |
|
| 580 | + 'LI' => __('Livorno', 'invoicing'), |
|
| 581 | + 'LO' => __('Lodi', 'invoicing'), |
|
| 582 | + 'LU' => __('Lucca', 'invoicing'), |
|
| 583 | + 'MC' => __('Macerata', 'invoicing'), |
|
| 584 | + 'MN' => __('Mantova', 'invoicing'), |
|
| 585 | + 'MS' => __('Massa-Carrara', 'invoicing'), |
|
| 586 | + 'MT' => __('Matera', 'invoicing'), |
|
| 587 | + 'ME' => __('Messina', 'invoicing'), |
|
| 588 | + 'MI' => __('Milano', 'invoicing'), |
|
| 589 | + 'MO' => __('Modena', 'invoicing'), |
|
| 590 | + 'MB' => __('Monza e della Brianza', 'invoicing'), |
|
| 591 | + 'NA' => __('Napoli', 'invoicing'), |
|
| 592 | + 'NO' => __('Novara', 'invoicing'), |
|
| 593 | + 'NU' => __('Nuoro', 'invoicing'), |
|
| 594 | + 'OR' => __('Oristano', 'invoicing'), |
|
| 595 | + 'PD' => __('Padova', 'invoicing'), |
|
| 596 | + 'PA' => __('Palermo', 'invoicing'), |
|
| 597 | + 'PR' => __('Parma', 'invoicing'), |
|
| 598 | + 'PV' => __('Pavia', 'invoicing'), |
|
| 599 | + 'PG' => __('Perugia', 'invoicing'), |
|
| 600 | + 'PU' => __('Pesaro e Urbino', 'invoicing'), |
|
| 601 | + 'PE' => __('Pescara', 'invoicing'), |
|
| 602 | + 'PC' => __('Piacenza', 'invoicing'), |
|
| 603 | + 'PI' => __('Pisa', 'invoicing'), |
|
| 604 | + 'PT' => __('Pistoia', 'invoicing'), |
|
| 605 | + 'PN' => __('Pordenone', 'invoicing'), |
|
| 606 | + 'PZ' => __('Potenza', 'invoicing'), |
|
| 607 | + 'PO' => __('Prato', 'invoicing'), |
|
| 608 | + 'RG' => __('Ragusa', 'invoicing'), |
|
| 609 | + 'RA' => __('Ravenna', 'invoicing'), |
|
| 610 | + 'RC' => __('Reggio Calabria', 'invoicing'), |
|
| 611 | + 'RE' => __('Reggio Emilia', 'invoicing'), |
|
| 612 | + 'RI' => __('Rieti', 'invoicing'), |
|
| 613 | + 'RN' => __('Rimini', 'invoicing'), |
|
| 614 | + 'RM' => __('Roma', 'invoicing'), |
|
| 615 | + 'RO' => __('Rovigo', 'invoicing'), |
|
| 616 | + 'SA' => __('Salerno', 'invoicing'), |
|
| 617 | + 'SS' => __('Sassari', 'invoicing'), |
|
| 618 | + 'SV' => __('Savona', 'invoicing'), |
|
| 619 | + 'SI' => __('Siena', 'invoicing'), |
|
| 620 | + 'SR' => __('Siracusa', 'invoicing'), |
|
| 621 | + 'SO' => __('Sondrio', 'invoicing'), |
|
| 622 | + 'SU' => __('Sud Sardegna', 'invoicing'), |
|
| 623 | + 'TA' => __('Taranto', 'invoicing'), |
|
| 624 | + 'TE' => __('Teramo', 'invoicing'), |
|
| 625 | + 'TR' => __('Terni', 'invoicing'), |
|
| 626 | + 'TO' => __('Torino', 'invoicing'), |
|
| 627 | + 'TP' => __('Trapani', 'invoicing'), |
|
| 628 | + 'TN' => __('Trento', 'invoicing'), |
|
| 629 | + 'TV' => __('Treviso', 'invoicing'), |
|
| 630 | + 'TS' => __('Trieste', 'invoicing'), |
|
| 631 | + 'UD' => __('Udine', 'invoicing'), |
|
| 632 | + 'VA' => __('Varese', 'invoicing'), |
|
| 633 | + 'VE' => __('Venezia', 'invoicing'), |
|
| 634 | + 'VB' => __('Verbano-Cusio-Ossola', 'invoicing'), |
|
| 635 | + 'VC' => __('Vercelli', 'invoicing'), |
|
| 636 | + 'VR' => __('Verona', 'invoicing'), |
|
| 637 | + 'VV' => __('Vibo Valentia', 'invoicing'), |
|
| 638 | + 'VI' => __('Vicenza', 'invoicing'), |
|
| 639 | + 'VT' => __('Viterbo', 'invoicing'), |
|
| 640 | 640 | ), |
| 641 | 641 | 'IL' => array(), |
| 642 | 642 | 'IM' => array(), |
@@ -648,903 +648,903 @@ discard block |
||
| 648 | 648 | * The suffix corresponds with the Japanese translation file. |
| 649 | 649 | */ |
| 650 | 650 | 'JP' => array( |
| 651 | - 'JP01' => __( 'Hokkaido', 'invoicing' ), |
|
| 652 | - 'JP02' => __( 'Aomori', 'invoicing' ), |
|
| 653 | - 'JP03' => __( 'Iwate', 'invoicing' ), |
|
| 654 | - 'JP04' => __( 'Miyagi', 'invoicing' ), |
|
| 655 | - 'JP05' => __( 'Akita', 'invoicing' ), |
|
| 656 | - 'JP06' => __( 'Yamagata', 'invoicing' ), |
|
| 657 | - 'JP07' => __( 'Fukushima', 'invoicing' ), |
|
| 658 | - 'JP08' => __( 'Ibaraki', 'invoicing' ), |
|
| 659 | - 'JP09' => __( 'Tochigi', 'invoicing' ), |
|
| 660 | - 'JP10' => __( 'Gunma', 'invoicing' ), |
|
| 661 | - 'JP11' => __( 'Saitama', 'invoicing' ), |
|
| 662 | - 'JP12' => __( 'Chiba', 'invoicing' ), |
|
| 663 | - 'JP13' => __( 'Tokyo', 'invoicing' ), |
|
| 664 | - 'JP14' => __( 'Kanagawa', 'invoicing' ), |
|
| 665 | - 'JP15' => __( 'Niigata', 'invoicing' ), |
|
| 666 | - 'JP16' => __( 'Toyama', 'invoicing' ), |
|
| 667 | - 'JP17' => __( 'Ishikawa', 'invoicing' ), |
|
| 668 | - 'JP18' => __( 'Fukui', 'invoicing' ), |
|
| 669 | - 'JP19' => __( 'Yamanashi', 'invoicing' ), |
|
| 670 | - 'JP20' => __( 'Nagano', 'invoicing' ), |
|
| 671 | - 'JP21' => __( 'Gifu', 'invoicing' ), |
|
| 672 | - 'JP22' => __( 'Shizuoka', 'invoicing' ), |
|
| 673 | - 'JP23' => __( 'Aichi', 'invoicing' ), |
|
| 674 | - 'JP24' => __( 'Mie', 'invoicing' ), |
|
| 675 | - 'JP25' => __( 'Shiga', 'invoicing' ), |
|
| 676 | - 'JP26' => __( 'Kyoto', 'invoicing' ), |
|
| 677 | - 'JP27' => __( 'Osaka', 'invoicing' ), |
|
| 678 | - 'JP28' => __( 'Hyogo', 'invoicing' ), |
|
| 679 | - 'JP29' => __( 'Nara', 'invoicing' ), |
|
| 680 | - 'JP30' => __( 'Wakayama', 'invoicing' ), |
|
| 681 | - 'JP31' => __( 'Tottori', 'invoicing' ), |
|
| 682 | - 'JP32' => __( 'Shimane', 'invoicing' ), |
|
| 683 | - 'JP33' => __( 'Okayama', 'invoicing' ), |
|
| 684 | - 'JP34' => __( 'Hiroshima', 'invoicing' ), |
|
| 685 | - 'JP35' => __( 'Yamaguchi', 'invoicing' ), |
|
| 686 | - 'JP36' => __( 'Tokushima', 'invoicing' ), |
|
| 687 | - 'JP37' => __( 'Kagawa', 'invoicing' ), |
|
| 688 | - 'JP38' => __( 'Ehime', 'invoicing' ), |
|
| 689 | - 'JP39' => __( 'Kochi', 'invoicing' ), |
|
| 690 | - 'JP40' => __( 'Fukuoka', 'invoicing' ), |
|
| 691 | - 'JP41' => __( 'Saga', 'invoicing' ), |
|
| 692 | - 'JP42' => __( 'Nagasaki', 'invoicing' ), |
|
| 693 | - 'JP43' => __( 'Kumamoto', 'invoicing' ), |
|
| 694 | - 'JP44' => __( 'Oita', 'invoicing' ), |
|
| 695 | - 'JP45' => __( 'Miyazaki', 'invoicing' ), |
|
| 696 | - 'JP46' => __( 'Kagoshima', 'invoicing' ), |
|
| 697 | - 'JP47' => __( 'Okinawa', 'invoicing' ), |
|
| 651 | + 'JP01' => __('Hokkaido', 'invoicing'), |
|
| 652 | + 'JP02' => __('Aomori', 'invoicing'), |
|
| 653 | + 'JP03' => __('Iwate', 'invoicing'), |
|
| 654 | + 'JP04' => __('Miyagi', 'invoicing'), |
|
| 655 | + 'JP05' => __('Akita', 'invoicing'), |
|
| 656 | + 'JP06' => __('Yamagata', 'invoicing'), |
|
| 657 | + 'JP07' => __('Fukushima', 'invoicing'), |
|
| 658 | + 'JP08' => __('Ibaraki', 'invoicing'), |
|
| 659 | + 'JP09' => __('Tochigi', 'invoicing'), |
|
| 660 | + 'JP10' => __('Gunma', 'invoicing'), |
|
| 661 | + 'JP11' => __('Saitama', 'invoicing'), |
|
| 662 | + 'JP12' => __('Chiba', 'invoicing'), |
|
| 663 | + 'JP13' => __('Tokyo', 'invoicing'), |
|
| 664 | + 'JP14' => __('Kanagawa', 'invoicing'), |
|
| 665 | + 'JP15' => __('Niigata', 'invoicing'), |
|
| 666 | + 'JP16' => __('Toyama', 'invoicing'), |
|
| 667 | + 'JP17' => __('Ishikawa', 'invoicing'), |
|
| 668 | + 'JP18' => __('Fukui', 'invoicing'), |
|
| 669 | + 'JP19' => __('Yamanashi', 'invoicing'), |
|
| 670 | + 'JP20' => __('Nagano', 'invoicing'), |
|
| 671 | + 'JP21' => __('Gifu', 'invoicing'), |
|
| 672 | + 'JP22' => __('Shizuoka', 'invoicing'), |
|
| 673 | + 'JP23' => __('Aichi', 'invoicing'), |
|
| 674 | + 'JP24' => __('Mie', 'invoicing'), |
|
| 675 | + 'JP25' => __('Shiga', 'invoicing'), |
|
| 676 | + 'JP26' => __('Kyoto', 'invoicing'), |
|
| 677 | + 'JP27' => __('Osaka', 'invoicing'), |
|
| 678 | + 'JP28' => __('Hyogo', 'invoicing'), |
|
| 679 | + 'JP29' => __('Nara', 'invoicing'), |
|
| 680 | + 'JP30' => __('Wakayama', 'invoicing'), |
|
| 681 | + 'JP31' => __('Tottori', 'invoicing'), |
|
| 682 | + 'JP32' => __('Shimane', 'invoicing'), |
|
| 683 | + 'JP33' => __('Okayama', 'invoicing'), |
|
| 684 | + 'JP34' => __('Hiroshima', 'invoicing'), |
|
| 685 | + 'JP35' => __('Yamaguchi', 'invoicing'), |
|
| 686 | + 'JP36' => __('Tokushima', 'invoicing'), |
|
| 687 | + 'JP37' => __('Kagawa', 'invoicing'), |
|
| 688 | + 'JP38' => __('Ehime', 'invoicing'), |
|
| 689 | + 'JP39' => __('Kochi', 'invoicing'), |
|
| 690 | + 'JP40' => __('Fukuoka', 'invoicing'), |
|
| 691 | + 'JP41' => __('Saga', 'invoicing'), |
|
| 692 | + 'JP42' => __('Nagasaki', 'invoicing'), |
|
| 693 | + 'JP43' => __('Kumamoto', 'invoicing'), |
|
| 694 | + 'JP44' => __('Oita', 'invoicing'), |
|
| 695 | + 'JP45' => __('Miyazaki', 'invoicing'), |
|
| 696 | + 'JP46' => __('Kagoshima', 'invoicing'), |
|
| 697 | + 'JP47' => __('Okinawa', 'invoicing'), |
|
| 698 | 698 | ), |
| 699 | 699 | 'KE' => array( // Kenya Counties. |
| 700 | - '1' => __( 'Mombasa', 'invoicing' ), |
|
| 701 | - '2' => __( 'Kwale', 'invoicing' ), |
|
| 702 | - '3' => __( 'Kilifi', 'invoicing' ), |
|
| 703 | - '4' => __( 'Tana River', 'invoicing' ), |
|
| 704 | - '5' => __( 'Lamu', 'invoicing' ), |
|
| 705 | - '6' => __( 'Taita-Taveta', 'invoicing' ), |
|
| 706 | - '7' => __( 'Garissa', 'invoicing' ), |
|
| 707 | - '8' => __( 'Wajir', 'invoicing' ), |
|
| 708 | - '9' => __( 'Mandera', 'invoicing' ), |
|
| 709 | - '10' => __( 'Marsabit', 'invoicing' ), |
|
| 710 | - '11' => __( 'Isiolo', 'invoicing' ), |
|
| 711 | - '12' => __( 'Meru', 'invoicing' ), |
|
| 712 | - '13' => __( 'Tharaka-Nithi', 'invoicing' ), |
|
| 713 | - '14' => __( 'Embu', 'invoicing' ), |
|
| 714 | - '15' => __( 'Kitui', 'invoicing' ), |
|
| 715 | - '16' => __( 'Machakos', 'invoicing' ), |
|
| 716 | - '17' => __( 'Makueni', 'invoicing' ), |
|
| 717 | - '18' => __( 'Nyandarua', 'invoicing' ), |
|
| 718 | - '19' => __( 'Nyeri', 'invoicing' ), |
|
| 719 | - '20' => __( 'Kirinyaga', 'invoicing' ), |
|
| 720 | - '21' => __( "Murang'a", 'invoicing' ), |
|
| 721 | - '22' => __( 'Kiambu', 'invoicing' ), |
|
| 722 | - '23' => __( 'Turkana', 'invoicing' ), |
|
| 723 | - '24' => __( 'West Pokot', 'invoicing' ), |
|
| 724 | - '25' => __( 'Samburu', 'invoicing' ), |
|
| 725 | - '26' => __( 'Trans-Nzoia', 'invoicing' ), |
|
| 726 | - '27' => __( 'Uasin Gishu', 'invoicing' ), |
|
| 727 | - '28' => __( 'Elgeyo-Marakwet', 'invoicing' ), |
|
| 728 | - '29' => __( 'Nandi', 'invoicing' ), |
|
| 729 | - '30' => __( 'Baringo', 'invoicing' ), |
|
| 730 | - '31' => __( 'Laikipia', 'invoicing' ), |
|
| 731 | - '32' => __( 'Nakuru', 'invoicing' ), |
|
| 732 | - '33' => __( 'Narok', 'invoicing' ), |
|
| 733 | - '34' => __( 'Kajiado', 'invoicing' ), |
|
| 734 | - '35' => __( 'Kericho', 'invoicing' ), |
|
| 735 | - '36' => __( 'Bomet', 'invoicing' ), |
|
| 736 | - '37' => __( 'Kakamega', 'invoicing' ), |
|
| 737 | - '38' => __( 'Vihiga', 'invoicing' ), |
|
| 738 | - '39' => __( 'Bungoma', 'invoicing' ), |
|
| 739 | - '40' => __( 'Busia', 'invoicing' ), |
|
| 740 | - '41' => __( 'Siaya', 'invoicing' ), |
|
| 741 | - '42' => __( 'Kisumu', 'invoicing' ), |
|
| 742 | - '43' => __( 'Homa bay', 'invoicing' ), |
|
| 743 | - '44' => __( 'Migori', 'invoicing' ), |
|
| 744 | - '45' => __( 'Kisii', 'invoicing' ), |
|
| 745 | - '46' => __( 'Nyamira', 'invoicing' ), |
|
| 746 | - '47' => __( 'Nairobi', 'invoicing' ), |
|
| 700 | + '1' => __('Mombasa', 'invoicing'), |
|
| 701 | + '2' => __('Kwale', 'invoicing'), |
|
| 702 | + '3' => __('Kilifi', 'invoicing'), |
|
| 703 | + '4' => __('Tana River', 'invoicing'), |
|
| 704 | + '5' => __('Lamu', 'invoicing'), |
|
| 705 | + '6' => __('Taita-Taveta', 'invoicing'), |
|
| 706 | + '7' => __('Garissa', 'invoicing'), |
|
| 707 | + '8' => __('Wajir', 'invoicing'), |
|
| 708 | + '9' => __('Mandera', 'invoicing'), |
|
| 709 | + '10' => __('Marsabit', 'invoicing'), |
|
| 710 | + '11' => __('Isiolo', 'invoicing'), |
|
| 711 | + '12' => __('Meru', 'invoicing'), |
|
| 712 | + '13' => __('Tharaka-Nithi', 'invoicing'), |
|
| 713 | + '14' => __('Embu', 'invoicing'), |
|
| 714 | + '15' => __('Kitui', 'invoicing'), |
|
| 715 | + '16' => __('Machakos', 'invoicing'), |
|
| 716 | + '17' => __('Makueni', 'invoicing'), |
|
| 717 | + '18' => __('Nyandarua', 'invoicing'), |
|
| 718 | + '19' => __('Nyeri', 'invoicing'), |
|
| 719 | + '20' => __('Kirinyaga', 'invoicing'), |
|
| 720 | + '21' => __("Murang'a", 'invoicing'), |
|
| 721 | + '22' => __('Kiambu', 'invoicing'), |
|
| 722 | + '23' => __('Turkana', 'invoicing'), |
|
| 723 | + '24' => __('West Pokot', 'invoicing'), |
|
| 724 | + '25' => __('Samburu', 'invoicing'), |
|
| 725 | + '26' => __('Trans-Nzoia', 'invoicing'), |
|
| 726 | + '27' => __('Uasin Gishu', 'invoicing'), |
|
| 727 | + '28' => __('Elgeyo-Marakwet', 'invoicing'), |
|
| 728 | + '29' => __('Nandi', 'invoicing'), |
|
| 729 | + '30' => __('Baringo', 'invoicing'), |
|
| 730 | + '31' => __('Laikipia', 'invoicing'), |
|
| 731 | + '32' => __('Nakuru', 'invoicing'), |
|
| 732 | + '33' => __('Narok', 'invoicing'), |
|
| 733 | + '34' => __('Kajiado', 'invoicing'), |
|
| 734 | + '35' => __('Kericho', 'invoicing'), |
|
| 735 | + '36' => __('Bomet', 'invoicing'), |
|
| 736 | + '37' => __('Kakamega', 'invoicing'), |
|
| 737 | + '38' => __('Vihiga', 'invoicing'), |
|
| 738 | + '39' => __('Bungoma', 'invoicing'), |
|
| 739 | + '40' => __('Busia', 'invoicing'), |
|
| 740 | + '41' => __('Siaya', 'invoicing'), |
|
| 741 | + '42' => __('Kisumu', 'invoicing'), |
|
| 742 | + '43' => __('Homa bay', 'invoicing'), |
|
| 743 | + '44' => __('Migori', 'invoicing'), |
|
| 744 | + '45' => __('Kisii', 'invoicing'), |
|
| 745 | + '46' => __('Nyamira', 'invoicing'), |
|
| 746 | + '47' => __('Nairobi', 'invoicing'), |
|
| 747 | 747 | ), |
| 748 | 748 | 'KR' => array(), |
| 749 | 749 | 'KW' => array(), |
| 750 | 750 | 'LB' => array(), |
| 751 | 751 | 'LR' => array( // Liberia provinces. |
| 752 | - 'BM' => __( 'Bomi', 'invoicing' ), |
|
| 753 | - 'BN' => __( 'Bong', 'invoicing' ), |
|
| 754 | - 'GA' => __( 'Gbarpolu', 'invoicing' ), |
|
| 755 | - 'GB' => __( 'Grand Bassa', 'invoicing' ), |
|
| 756 | - 'GC' => __( 'Grand Cape Mount', 'invoicing' ), |
|
| 757 | - 'GG' => __( 'Grand Gedeh', 'invoicing' ), |
|
| 758 | - 'GK' => __( 'Grand Kru', 'invoicing' ), |
|
| 759 | - 'LO' => __( 'Lofa', 'invoicing' ), |
|
| 760 | - 'MA' => __( 'Margibi', 'invoicing' ), |
|
| 761 | - 'MY' => __( 'Maryland', 'invoicing' ), |
|
| 762 | - 'MO' => __( 'Montserrado', 'invoicing' ), |
|
| 763 | - 'NM' => __( 'Nimba', 'invoicing' ), |
|
| 764 | - 'RV' => __( 'Rivercess', 'invoicing' ), |
|
| 765 | - 'RG' => __( 'River Gee', 'invoicing' ), |
|
| 766 | - 'SN' => __( 'Sinoe', 'invoicing' ), |
|
| 752 | + 'BM' => __('Bomi', 'invoicing'), |
|
| 753 | + 'BN' => __('Bong', 'invoicing'), |
|
| 754 | + 'GA' => __('Gbarpolu', 'invoicing'), |
|
| 755 | + 'GB' => __('Grand Bassa', 'invoicing'), |
|
| 756 | + 'GC' => __('Grand Cape Mount', 'invoicing'), |
|
| 757 | + 'GG' => __('Grand Gedeh', 'invoicing'), |
|
| 758 | + 'GK' => __('Grand Kru', 'invoicing'), |
|
| 759 | + 'LO' => __('Lofa', 'invoicing'), |
|
| 760 | + 'MA' => __('Margibi', 'invoicing'), |
|
| 761 | + 'MY' => __('Maryland', 'invoicing'), |
|
| 762 | + 'MO' => __('Montserrado', 'invoicing'), |
|
| 763 | + 'NM' => __('Nimba', 'invoicing'), |
|
| 764 | + 'RV' => __('Rivercess', 'invoicing'), |
|
| 765 | + 'RG' => __('River Gee', 'invoicing'), |
|
| 766 | + 'SN' => __('Sinoe', 'invoicing'), |
|
| 767 | 767 | ), |
| 768 | 768 | 'LU' => array(), |
| 769 | 769 | 'MD' => array( // Moldova states. |
| 770 | - 'C' => __( 'Chișinău', 'invoicing' ), |
|
| 771 | - 'BL' => __( 'Bălți', 'invoicing' ), |
|
| 772 | - 'AN' => __( 'Anenii Noi', 'invoicing' ), |
|
| 773 | - 'BS' => __( 'Basarabeasca', 'invoicing' ), |
|
| 774 | - 'BR' => __( 'Briceni', 'invoicing' ), |
|
| 775 | - 'CH' => __( 'Cahul', 'invoicing' ), |
|
| 776 | - 'CT' => __( 'Cantemir', 'invoicing' ), |
|
| 777 | - 'CL' => __( 'Călărași', 'invoicing' ), |
|
| 778 | - 'CS' => __( 'Căușeni', 'invoicing' ), |
|
| 779 | - 'CM' => __( 'Cimișlia', 'invoicing' ), |
|
| 780 | - 'CR' => __( 'Criuleni', 'invoicing' ), |
|
| 781 | - 'DN' => __( 'Dondușeni', 'invoicing' ), |
|
| 782 | - 'DR' => __( 'Drochia', 'invoicing' ), |
|
| 783 | - 'DB' => __( 'Dubăsari', 'invoicing' ), |
|
| 784 | - 'ED' => __( 'Edineț', 'invoicing' ), |
|
| 785 | - 'FL' => __( 'Fălești', 'invoicing' ), |
|
| 786 | - 'FR' => __( 'Florești', 'invoicing' ), |
|
| 787 | - 'GE' => __( 'UTA Găgăuzia', 'invoicing' ), |
|
| 788 | - 'GL' => __( 'Glodeni', 'invoicing' ), |
|
| 789 | - 'HN' => __( 'Hîncești', 'invoicing' ), |
|
| 790 | - 'IL' => __( 'Ialoveni', 'invoicing' ), |
|
| 791 | - 'LV' => __( 'Leova', 'invoicing' ), |
|
| 792 | - 'NS' => __( 'Nisporeni', 'invoicing' ), |
|
| 793 | - 'OC' => __( 'Ocnița', 'invoicing' ), |
|
| 794 | - 'OR' => __( 'Orhei', 'invoicing' ), |
|
| 795 | - 'RZ' => __( 'Rezina', 'invoicing' ), |
|
| 796 | - 'RS' => __( 'Rîșcani', 'invoicing' ), |
|
| 797 | - 'SG' => __( 'Sîngerei', 'invoicing' ), |
|
| 798 | - 'SR' => __( 'Soroca', 'invoicing' ), |
|
| 799 | - 'ST' => __( 'Strășeni', 'invoicing' ), |
|
| 800 | - 'SD' => __( 'Șoldănești', 'invoicing' ), |
|
| 801 | - 'SV' => __( 'Ștefan Vodă', 'invoicing' ), |
|
| 802 | - 'TR' => __( 'Taraclia', 'invoicing' ), |
|
| 803 | - 'TL' => __( 'Telenești', 'invoicing' ), |
|
| 804 | - 'UN' => __( 'Ungheni', 'invoicing' ), |
|
| 770 | + 'C' => __('Chișinău', 'invoicing'), |
|
| 771 | + 'BL' => __('Bălți', 'invoicing'), |
|
| 772 | + 'AN' => __('Anenii Noi', 'invoicing'), |
|
| 773 | + 'BS' => __('Basarabeasca', 'invoicing'), |
|
| 774 | + 'BR' => __('Briceni', 'invoicing'), |
|
| 775 | + 'CH' => __('Cahul', 'invoicing'), |
|
| 776 | + 'CT' => __('Cantemir', 'invoicing'), |
|
| 777 | + 'CL' => __('Călărași', 'invoicing'), |
|
| 778 | + 'CS' => __('Căușeni', 'invoicing'), |
|
| 779 | + 'CM' => __('Cimișlia', 'invoicing'), |
|
| 780 | + 'CR' => __('Criuleni', 'invoicing'), |
|
| 781 | + 'DN' => __('Dondușeni', 'invoicing'), |
|
| 782 | + 'DR' => __('Drochia', 'invoicing'), |
|
| 783 | + 'DB' => __('Dubăsari', 'invoicing'), |
|
| 784 | + 'ED' => __('Edineț', 'invoicing'), |
|
| 785 | + 'FL' => __('Fălești', 'invoicing'), |
|
| 786 | + 'FR' => __('Florești', 'invoicing'), |
|
| 787 | + 'GE' => __('UTA Găgăuzia', 'invoicing'), |
|
| 788 | + 'GL' => __('Glodeni', 'invoicing'), |
|
| 789 | + 'HN' => __('Hîncești', 'invoicing'), |
|
| 790 | + 'IL' => __('Ialoveni', 'invoicing'), |
|
| 791 | + 'LV' => __('Leova', 'invoicing'), |
|
| 792 | + 'NS' => __('Nisporeni', 'invoicing'), |
|
| 793 | + 'OC' => __('Ocnița', 'invoicing'), |
|
| 794 | + 'OR' => __('Orhei', 'invoicing'), |
|
| 795 | + 'RZ' => __('Rezina', 'invoicing'), |
|
| 796 | + 'RS' => __('Rîșcani', 'invoicing'), |
|
| 797 | + 'SG' => __('Sîngerei', 'invoicing'), |
|
| 798 | + 'SR' => __('Soroca', 'invoicing'), |
|
| 799 | + 'ST' => __('Strășeni', 'invoicing'), |
|
| 800 | + 'SD' => __('Șoldănești', 'invoicing'), |
|
| 801 | + 'SV' => __('Ștefan Vodă', 'invoicing'), |
|
| 802 | + 'TR' => __('Taraclia', 'invoicing'), |
|
| 803 | + 'TL' => __('Telenești', 'invoicing'), |
|
| 804 | + 'UN' => __('Ungheni', 'invoicing'), |
|
| 805 | 805 | ), |
| 806 | 806 | 'MQ' => array(), |
| 807 | 807 | 'MT' => array(), |
| 808 | 808 | 'MX' => array( // Mexico States. |
| 809 | - 'DF' => __( 'Ciudad de México', 'invoicing' ), |
|
| 810 | - 'JA' => __( 'Jalisco', 'invoicing' ), |
|
| 811 | - 'NL' => __( 'Nuevo León', 'invoicing' ), |
|
| 812 | - 'AG' => __( 'Aguascalientes', 'invoicing' ), |
|
| 813 | - 'BC' => __( 'Baja California', 'invoicing' ), |
|
| 814 | - 'BS' => __( 'Baja California Sur', 'invoicing' ), |
|
| 815 | - 'CM' => __( 'Campeche', 'invoicing' ), |
|
| 816 | - 'CS' => __( 'Chiapas', 'invoicing' ), |
|
| 817 | - 'CH' => __( 'Chihuahua', 'invoicing' ), |
|
| 818 | - 'CO' => __( 'Coahuila', 'invoicing' ), |
|
| 819 | - 'CL' => __( 'Colima', 'invoicing' ), |
|
| 820 | - 'DG' => __( 'Durango', 'invoicing' ), |
|
| 821 | - 'GT' => __( 'Guanajuato', 'invoicing' ), |
|
| 822 | - 'GR' => __( 'Guerrero', 'invoicing' ), |
|
| 823 | - 'HG' => __( 'Hidalgo', 'invoicing' ), |
|
| 824 | - 'MX' => __( 'Estado de México', 'invoicing' ), |
|
| 825 | - 'MI' => __( 'Michoacán', 'invoicing' ), |
|
| 826 | - 'MO' => __( 'Morelos', 'invoicing' ), |
|
| 827 | - 'NA' => __( 'Nayarit', 'invoicing' ), |
|
| 828 | - 'OA' => __( 'Oaxaca', 'invoicing' ), |
|
| 829 | - 'PU' => __( 'Puebla', 'invoicing' ), |
|
| 830 | - 'QT' => __( 'Querétaro', 'invoicing' ), |
|
| 831 | - 'QR' => __( 'Quintana Roo', 'invoicing' ), |
|
| 832 | - 'SL' => __( 'San Luis Potosí', 'invoicing' ), |
|
| 833 | - 'SI' => __( 'Sinaloa', 'invoicing' ), |
|
| 834 | - 'SO' => __( 'Sonora', 'invoicing' ), |
|
| 835 | - 'TB' => __( 'Tabasco', 'invoicing' ), |
|
| 836 | - 'TM' => __( 'Tamaulipas', 'invoicing' ), |
|
| 837 | - 'TL' => __( 'Tlaxcala', 'invoicing' ), |
|
| 838 | - 'VE' => __( 'Veracruz', 'invoicing' ), |
|
| 839 | - 'YU' => __( 'Yucatán', 'invoicing' ), |
|
| 840 | - 'ZA' => __( 'Zacatecas', 'invoicing' ), |
|
| 809 | + 'DF' => __('Ciudad de México', 'invoicing'), |
|
| 810 | + 'JA' => __('Jalisco', 'invoicing'), |
|
| 811 | + 'NL' => __('Nuevo León', 'invoicing'), |
|
| 812 | + 'AG' => __('Aguascalientes', 'invoicing'), |
|
| 813 | + 'BC' => __('Baja California', 'invoicing'), |
|
| 814 | + 'BS' => __('Baja California Sur', 'invoicing'), |
|
| 815 | + 'CM' => __('Campeche', 'invoicing'), |
|
| 816 | + 'CS' => __('Chiapas', 'invoicing'), |
|
| 817 | + 'CH' => __('Chihuahua', 'invoicing'), |
|
| 818 | + 'CO' => __('Coahuila', 'invoicing'), |
|
| 819 | + 'CL' => __('Colima', 'invoicing'), |
|
| 820 | + 'DG' => __('Durango', 'invoicing'), |
|
| 821 | + 'GT' => __('Guanajuato', 'invoicing'), |
|
| 822 | + 'GR' => __('Guerrero', 'invoicing'), |
|
| 823 | + 'HG' => __('Hidalgo', 'invoicing'), |
|
| 824 | + 'MX' => __('Estado de México', 'invoicing'), |
|
| 825 | + 'MI' => __('Michoacán', 'invoicing'), |
|
| 826 | + 'MO' => __('Morelos', 'invoicing'), |
|
| 827 | + 'NA' => __('Nayarit', 'invoicing'), |
|
| 828 | + 'OA' => __('Oaxaca', 'invoicing'), |
|
| 829 | + 'PU' => __('Puebla', 'invoicing'), |
|
| 830 | + 'QT' => __('Querétaro', 'invoicing'), |
|
| 831 | + 'QR' => __('Quintana Roo', 'invoicing'), |
|
| 832 | + 'SL' => __('San Luis Potosí', 'invoicing'), |
|
| 833 | + 'SI' => __('Sinaloa', 'invoicing'), |
|
| 834 | + 'SO' => __('Sonora', 'invoicing'), |
|
| 835 | + 'TB' => __('Tabasco', 'invoicing'), |
|
| 836 | + 'TM' => __('Tamaulipas', 'invoicing'), |
|
| 837 | + 'TL' => __('Tlaxcala', 'invoicing'), |
|
| 838 | + 'VE' => __('Veracruz', 'invoicing'), |
|
| 839 | + 'YU' => __('Yucatán', 'invoicing'), |
|
| 840 | + 'ZA' => __('Zacatecas', 'invoicing'), |
|
| 841 | 841 | ), |
| 842 | 842 | 'MY' => array( // Malaysian states. |
| 843 | - 'JHR' => __( 'Johor', 'invoicing' ), |
|
| 844 | - 'KDH' => __( 'Kedah', 'invoicing' ), |
|
| 845 | - 'KTN' => __( 'Kelantan', 'invoicing' ), |
|
| 846 | - 'LBN' => __( 'Labuan', 'invoicing' ), |
|
| 847 | - 'MLK' => __( 'Malacca (Melaka)', 'invoicing' ), |
|
| 848 | - 'NSN' => __( 'Negeri Sembilan', 'invoicing' ), |
|
| 849 | - 'PHG' => __( 'Pahang', 'invoicing' ), |
|
| 850 | - 'PNG' => __( 'Penang (Pulau Pinang)', 'invoicing' ), |
|
| 851 | - 'PRK' => __( 'Perak', 'invoicing' ), |
|
| 852 | - 'PLS' => __( 'Perlis', 'invoicing' ), |
|
| 853 | - 'SBH' => __( 'Sabah', 'invoicing' ), |
|
| 854 | - 'SWK' => __( 'Sarawak', 'invoicing' ), |
|
| 855 | - 'SGR' => __( 'Selangor', 'invoicing' ), |
|
| 856 | - 'TRG' => __( 'Terengganu', 'invoicing' ), |
|
| 857 | - 'PJY' => __( 'Putrajaya', 'invoicing' ), |
|
| 858 | - 'KUL' => __( 'Kuala Lumpur', 'invoicing' ), |
|
| 843 | + 'JHR' => __('Johor', 'invoicing'), |
|
| 844 | + 'KDH' => __('Kedah', 'invoicing'), |
|
| 845 | + 'KTN' => __('Kelantan', 'invoicing'), |
|
| 846 | + 'LBN' => __('Labuan', 'invoicing'), |
|
| 847 | + 'MLK' => __('Malacca (Melaka)', 'invoicing'), |
|
| 848 | + 'NSN' => __('Negeri Sembilan', 'invoicing'), |
|
| 849 | + 'PHG' => __('Pahang', 'invoicing'), |
|
| 850 | + 'PNG' => __('Penang (Pulau Pinang)', 'invoicing'), |
|
| 851 | + 'PRK' => __('Perak', 'invoicing'), |
|
| 852 | + 'PLS' => __('Perlis', 'invoicing'), |
|
| 853 | + 'SBH' => __('Sabah', 'invoicing'), |
|
| 854 | + 'SWK' => __('Sarawak', 'invoicing'), |
|
| 855 | + 'SGR' => __('Selangor', 'invoicing'), |
|
| 856 | + 'TRG' => __('Terengganu', 'invoicing'), |
|
| 857 | + 'PJY' => __('Putrajaya', 'invoicing'), |
|
| 858 | + 'KUL' => __('Kuala Lumpur', 'invoicing'), |
|
| 859 | 859 | ), |
| 860 | 860 | 'NG' => array( // Nigerian provinces. |
| 861 | - 'AB' => __( 'Abia', 'invoicing' ), |
|
| 862 | - 'FC' => __( 'Abuja', 'invoicing' ), |
|
| 863 | - 'AD' => __( 'Adamawa', 'invoicing' ), |
|
| 864 | - 'AK' => __( 'Akwa Ibom', 'invoicing' ), |
|
| 865 | - 'AN' => __( 'Anambra', 'invoicing' ), |
|
| 866 | - 'BA' => __( 'Bauchi', 'invoicing' ), |
|
| 867 | - 'BY' => __( 'Bayelsa', 'invoicing' ), |
|
| 868 | - 'BE' => __( 'Benue', 'invoicing' ), |
|
| 869 | - 'BO' => __( 'Borno', 'invoicing' ), |
|
| 870 | - 'CR' => __( 'Cross River', 'invoicing' ), |
|
| 871 | - 'DE' => __( 'Delta', 'invoicing' ), |
|
| 872 | - 'EB' => __( 'Ebonyi', 'invoicing' ), |
|
| 873 | - 'ED' => __( 'Edo', 'invoicing' ), |
|
| 874 | - 'EK' => __( 'Ekiti', 'invoicing' ), |
|
| 875 | - 'EN' => __( 'Enugu', 'invoicing' ), |
|
| 876 | - 'GO' => __( 'Gombe', 'invoicing' ), |
|
| 877 | - 'IM' => __( 'Imo', 'invoicing' ), |
|
| 878 | - 'JI' => __( 'Jigawa', 'invoicing' ), |
|
| 879 | - 'KD' => __( 'Kaduna', 'invoicing' ), |
|
| 880 | - 'KN' => __( 'Kano', 'invoicing' ), |
|
| 881 | - 'KT' => __( 'Katsina', 'invoicing' ), |
|
| 882 | - 'KE' => __( 'Kebbi', 'invoicing' ), |
|
| 883 | - 'KO' => __( 'Kogi', 'invoicing' ), |
|
| 884 | - 'KW' => __( 'Kwara', 'invoicing' ), |
|
| 885 | - 'LA' => __( 'Lagos', 'invoicing' ), |
|
| 886 | - 'NA' => __( 'Nasarawa', 'invoicing' ), |
|
| 887 | - 'NI' => __( 'Niger', 'invoicing' ), |
|
| 888 | - 'OG' => __( 'Ogun', 'invoicing' ), |
|
| 889 | - 'ON' => __( 'Ondo', 'invoicing' ), |
|
| 890 | - 'OS' => __( 'Osun', 'invoicing' ), |
|
| 891 | - 'OY' => __( 'Oyo', 'invoicing' ), |
|
| 892 | - 'PL' => __( 'Plateau', 'invoicing' ), |
|
| 893 | - 'RI' => __( 'Rivers', 'invoicing' ), |
|
| 894 | - 'SO' => __( 'Sokoto', 'invoicing' ), |
|
| 895 | - 'TA' => __( 'Taraba', 'invoicing' ), |
|
| 896 | - 'YO' => __( 'Yobe', 'invoicing' ), |
|
| 897 | - 'ZA' => __( 'Zamfara', 'invoicing' ), |
|
| 861 | + 'AB' => __('Abia', 'invoicing'), |
|
| 862 | + 'FC' => __('Abuja', 'invoicing'), |
|
| 863 | + 'AD' => __('Adamawa', 'invoicing'), |
|
| 864 | + 'AK' => __('Akwa Ibom', 'invoicing'), |
|
| 865 | + 'AN' => __('Anambra', 'invoicing'), |
|
| 866 | + 'BA' => __('Bauchi', 'invoicing'), |
|
| 867 | + 'BY' => __('Bayelsa', 'invoicing'), |
|
| 868 | + 'BE' => __('Benue', 'invoicing'), |
|
| 869 | + 'BO' => __('Borno', 'invoicing'), |
|
| 870 | + 'CR' => __('Cross River', 'invoicing'), |
|
| 871 | + 'DE' => __('Delta', 'invoicing'), |
|
| 872 | + 'EB' => __('Ebonyi', 'invoicing'), |
|
| 873 | + 'ED' => __('Edo', 'invoicing'), |
|
| 874 | + 'EK' => __('Ekiti', 'invoicing'), |
|
| 875 | + 'EN' => __('Enugu', 'invoicing'), |
|
| 876 | + 'GO' => __('Gombe', 'invoicing'), |
|
| 877 | + 'IM' => __('Imo', 'invoicing'), |
|
| 878 | + 'JI' => __('Jigawa', 'invoicing'), |
|
| 879 | + 'KD' => __('Kaduna', 'invoicing'), |
|
| 880 | + 'KN' => __('Kano', 'invoicing'), |
|
| 881 | + 'KT' => __('Katsina', 'invoicing'), |
|
| 882 | + 'KE' => __('Kebbi', 'invoicing'), |
|
| 883 | + 'KO' => __('Kogi', 'invoicing'), |
|
| 884 | + 'KW' => __('Kwara', 'invoicing'), |
|
| 885 | + 'LA' => __('Lagos', 'invoicing'), |
|
| 886 | + 'NA' => __('Nasarawa', 'invoicing'), |
|
| 887 | + 'NI' => __('Niger', 'invoicing'), |
|
| 888 | + 'OG' => __('Ogun', 'invoicing'), |
|
| 889 | + 'ON' => __('Ondo', 'invoicing'), |
|
| 890 | + 'OS' => __('Osun', 'invoicing'), |
|
| 891 | + 'OY' => __('Oyo', 'invoicing'), |
|
| 892 | + 'PL' => __('Plateau', 'invoicing'), |
|
| 893 | + 'RI' => __('Rivers', 'invoicing'), |
|
| 894 | + 'SO' => __('Sokoto', 'invoicing'), |
|
| 895 | + 'TA' => __('Taraba', 'invoicing'), |
|
| 896 | + 'YO' => __('Yobe', 'invoicing'), |
|
| 897 | + 'ZA' => __('Zamfara', 'invoicing'), |
|
| 898 | 898 | ), |
| 899 | 899 | 'NL' => array(), |
| 900 | 900 | 'NO' => array(), |
| 901 | 901 | 'NP' => array( // Nepal states (Zones). |
| 902 | - 'BAG' => __( 'Bagmati', 'invoicing' ), |
|
| 903 | - 'BHE' => __( 'Bheri', 'invoicing' ), |
|
| 904 | - 'DHA' => __( 'Dhaulagiri', 'invoicing' ), |
|
| 905 | - 'GAN' => __( 'Gandaki', 'invoicing' ), |
|
| 906 | - 'JAN' => __( 'Janakpur', 'invoicing' ), |
|
| 907 | - 'KAR' => __( 'Karnali', 'invoicing' ), |
|
| 908 | - 'KOS' => __( 'Koshi', 'invoicing' ), |
|
| 909 | - 'LUM' => __( 'Lumbini', 'invoicing' ), |
|
| 910 | - 'MAH' => __( 'Mahakali', 'invoicing' ), |
|
| 911 | - 'MEC' => __( 'Mechi', 'invoicing' ), |
|
| 912 | - 'NAR' => __( 'Narayani', 'invoicing' ), |
|
| 913 | - 'RAP' => __( 'Rapti', 'invoicing' ), |
|
| 914 | - 'SAG' => __( 'Sagarmatha', 'invoicing' ), |
|
| 915 | - 'SET' => __( 'Seti', 'invoicing' ), |
|
| 902 | + 'BAG' => __('Bagmati', 'invoicing'), |
|
| 903 | + 'BHE' => __('Bheri', 'invoicing'), |
|
| 904 | + 'DHA' => __('Dhaulagiri', 'invoicing'), |
|
| 905 | + 'GAN' => __('Gandaki', 'invoicing'), |
|
| 906 | + 'JAN' => __('Janakpur', 'invoicing'), |
|
| 907 | + 'KAR' => __('Karnali', 'invoicing'), |
|
| 908 | + 'KOS' => __('Koshi', 'invoicing'), |
|
| 909 | + 'LUM' => __('Lumbini', 'invoicing'), |
|
| 910 | + 'MAH' => __('Mahakali', 'invoicing'), |
|
| 911 | + 'MEC' => __('Mechi', 'invoicing'), |
|
| 912 | + 'NAR' => __('Narayani', 'invoicing'), |
|
| 913 | + 'RAP' => __('Rapti', 'invoicing'), |
|
| 914 | + 'SAG' => __('Sagarmatha', 'invoicing'), |
|
| 915 | + 'SET' => __('Seti', 'invoicing'), |
|
| 916 | 916 | ), |
| 917 | 917 | 'NZ' => array( // New Zealand States. |
| 918 | - 'NL' => __( 'Northland', 'invoicing' ), |
|
| 919 | - 'AK' => __( 'Auckland', 'invoicing' ), |
|
| 920 | - 'WA' => __( 'Waikato', 'invoicing' ), |
|
| 921 | - 'BP' => __( 'Bay of Plenty', 'invoicing' ), |
|
| 922 | - 'TK' => __( 'Taranaki', 'invoicing' ), |
|
| 923 | - 'GI' => __( 'Gisborne', 'invoicing' ), |
|
| 924 | - 'HB' => __( 'Hawke’s Bay', 'invoicing' ), |
|
| 925 | - 'MW' => __( 'Manawatu-Wanganui', 'invoicing' ), |
|
| 926 | - 'WE' => __( 'Wellington', 'invoicing' ), |
|
| 927 | - 'NS' => __( 'Nelson', 'invoicing' ), |
|
| 928 | - 'MB' => __( 'Marlborough', 'invoicing' ), |
|
| 929 | - 'TM' => __( 'Tasman', 'invoicing' ), |
|
| 930 | - 'WC' => __( 'West Coast', 'invoicing' ), |
|
| 931 | - 'CT' => __( 'Canterbury', 'invoicing' ), |
|
| 932 | - 'OT' => __( 'Otago', 'invoicing' ), |
|
| 933 | - 'SL' => __( 'Southland', 'invoicing' ), |
|
| 918 | + 'NL' => __('Northland', 'invoicing'), |
|
| 919 | + 'AK' => __('Auckland', 'invoicing'), |
|
| 920 | + 'WA' => __('Waikato', 'invoicing'), |
|
| 921 | + 'BP' => __('Bay of Plenty', 'invoicing'), |
|
| 922 | + 'TK' => __('Taranaki', 'invoicing'), |
|
| 923 | + 'GI' => __('Gisborne', 'invoicing'), |
|
| 924 | + 'HB' => __('Hawke’s Bay', 'invoicing'), |
|
| 925 | + 'MW' => __('Manawatu-Wanganui', 'invoicing'), |
|
| 926 | + 'WE' => __('Wellington', 'invoicing'), |
|
| 927 | + 'NS' => __('Nelson', 'invoicing'), |
|
| 928 | + 'MB' => __('Marlborough', 'invoicing'), |
|
| 929 | + 'TM' => __('Tasman', 'invoicing'), |
|
| 930 | + 'WC' => __('West Coast', 'invoicing'), |
|
| 931 | + 'CT' => __('Canterbury', 'invoicing'), |
|
| 932 | + 'OT' => __('Otago', 'invoicing'), |
|
| 933 | + 'SL' => __('Southland', 'invoicing'), |
|
| 934 | 934 | ), |
| 935 | 935 | 'PE' => array( // Peru states. |
| 936 | - 'CAL' => __( 'El Callao', 'invoicing' ), |
|
| 937 | - 'LMA' => __( 'Municipalidad Metropolitana de Lima', 'invoicing' ), |
|
| 938 | - 'AMA' => __( 'Amazonas', 'invoicing' ), |
|
| 939 | - 'ANC' => __( 'Ancash', 'invoicing' ), |
|
| 940 | - 'APU' => __( 'Apurímac', 'invoicing' ), |
|
| 941 | - 'ARE' => __( 'Arequipa', 'invoicing' ), |
|
| 942 | - 'AYA' => __( 'Ayacucho', 'invoicing' ), |
|
| 943 | - 'CAJ' => __( 'Cajamarca', 'invoicing' ), |
|
| 944 | - 'CUS' => __( 'Cusco', 'invoicing' ), |
|
| 945 | - 'HUV' => __( 'Huancavelica', 'invoicing' ), |
|
| 946 | - 'HUC' => __( 'Huánuco', 'invoicing' ), |
|
| 947 | - 'ICA' => __( 'Ica', 'invoicing' ), |
|
| 948 | - 'JUN' => __( 'Junín', 'invoicing' ), |
|
| 949 | - 'LAL' => __( 'La Libertad', 'invoicing' ), |
|
| 950 | - 'LAM' => __( 'Lambayeque', 'invoicing' ), |
|
| 951 | - 'LIM' => __( 'Lima', 'invoicing' ), |
|
| 952 | - 'LOR' => __( 'Loreto', 'invoicing' ), |
|
| 953 | - 'MDD' => __( 'Madre de Dios', 'invoicing' ), |
|
| 954 | - 'MOQ' => __( 'Moquegua', 'invoicing' ), |
|
| 955 | - 'PAS' => __( 'Pasco', 'invoicing' ), |
|
| 956 | - 'PIU' => __( 'Piura', 'invoicing' ), |
|
| 957 | - 'PUN' => __( 'Puno', 'invoicing' ), |
|
| 958 | - 'SAM' => __( 'San Martín', 'invoicing' ), |
|
| 959 | - 'TAC' => __( 'Tacna', 'invoicing' ), |
|
| 960 | - 'TUM' => __( 'Tumbes', 'invoicing' ), |
|
| 961 | - 'UCA' => __( 'Ucayali', 'invoicing' ), |
|
| 936 | + 'CAL' => __('El Callao', 'invoicing'), |
|
| 937 | + 'LMA' => __('Municipalidad Metropolitana de Lima', 'invoicing'), |
|
| 938 | + 'AMA' => __('Amazonas', 'invoicing'), |
|
| 939 | + 'ANC' => __('Ancash', 'invoicing'), |
|
| 940 | + 'APU' => __('Apurímac', 'invoicing'), |
|
| 941 | + 'ARE' => __('Arequipa', 'invoicing'), |
|
| 942 | + 'AYA' => __('Ayacucho', 'invoicing'), |
|
| 943 | + 'CAJ' => __('Cajamarca', 'invoicing'), |
|
| 944 | + 'CUS' => __('Cusco', 'invoicing'), |
|
| 945 | + 'HUV' => __('Huancavelica', 'invoicing'), |
|
| 946 | + 'HUC' => __('Huánuco', 'invoicing'), |
|
| 947 | + 'ICA' => __('Ica', 'invoicing'), |
|
| 948 | + 'JUN' => __('Junín', 'invoicing'), |
|
| 949 | + 'LAL' => __('La Libertad', 'invoicing'), |
|
| 950 | + 'LAM' => __('Lambayeque', 'invoicing'), |
|
| 951 | + 'LIM' => __('Lima', 'invoicing'), |
|
| 952 | + 'LOR' => __('Loreto', 'invoicing'), |
|
| 953 | + 'MDD' => __('Madre de Dios', 'invoicing'), |
|
| 954 | + 'MOQ' => __('Moquegua', 'invoicing'), |
|
| 955 | + 'PAS' => __('Pasco', 'invoicing'), |
|
| 956 | + 'PIU' => __('Piura', 'invoicing'), |
|
| 957 | + 'PUN' => __('Puno', 'invoicing'), |
|
| 958 | + 'SAM' => __('San Martín', 'invoicing'), |
|
| 959 | + 'TAC' => __('Tacna', 'invoicing'), |
|
| 960 | + 'TUM' => __('Tumbes', 'invoicing'), |
|
| 961 | + 'UCA' => __('Ucayali', 'invoicing'), |
|
| 962 | 962 | ), |
| 963 | 963 | |
| 964 | 964 | /** |
| 965 | 965 | * Philippine Provinces. |
| 966 | 966 | */ |
| 967 | 967 | 'PH' => array( |
| 968 | - 'ABR' => __( 'Abra', 'invoicing' ), |
|
| 969 | - 'AGN' => __( 'Agusan del Norte', 'invoicing' ), |
|
| 970 | - 'AGS' => __( 'Agusan del Sur', 'invoicing' ), |
|
| 971 | - 'AKL' => __( 'Aklan', 'invoicing' ), |
|
| 972 | - 'ALB' => __( 'Albay', 'invoicing' ), |
|
| 973 | - 'ANT' => __( 'Antique', 'invoicing' ), |
|
| 974 | - 'APA' => __( 'Apayao', 'invoicing' ), |
|
| 975 | - 'AUR' => __( 'Aurora', 'invoicing' ), |
|
| 976 | - 'BAS' => __( 'Basilan', 'invoicing' ), |
|
| 977 | - 'BAN' => __( 'Bataan', 'invoicing' ), |
|
| 978 | - 'BTN' => __( 'Batanes', 'invoicing' ), |
|
| 979 | - 'BTG' => __( 'Batangas', 'invoicing' ), |
|
| 980 | - 'BEN' => __( 'Benguet', 'invoicing' ), |
|
| 981 | - 'BIL' => __( 'Biliran', 'invoicing' ), |
|
| 982 | - 'BOH' => __( 'Bohol', 'invoicing' ), |
|
| 983 | - 'BUK' => __( 'Bukidnon', 'invoicing' ), |
|
| 984 | - 'BUL' => __( 'Bulacan', 'invoicing' ), |
|
| 985 | - 'CAG' => __( 'Cagayan', 'invoicing' ), |
|
| 986 | - 'CAN' => __( 'Camarines Norte', 'invoicing' ), |
|
| 987 | - 'CAS' => __( 'Camarines Sur', 'invoicing' ), |
|
| 988 | - 'CAM' => __( 'Camiguin', 'invoicing' ), |
|
| 989 | - 'CAP' => __( 'Capiz', 'invoicing' ), |
|
| 990 | - 'CAT' => __( 'Catanduanes', 'invoicing' ), |
|
| 991 | - 'CAV' => __( 'Cavite', 'invoicing' ), |
|
| 992 | - 'CEB' => __( 'Cebu', 'invoicing' ), |
|
| 993 | - 'COM' => __( 'Compostela Valley', 'invoicing' ), |
|
| 994 | - 'NCO' => __( 'Cotabato', 'invoicing' ), |
|
| 995 | - 'DAV' => __( 'Davao del Norte', 'invoicing' ), |
|
| 996 | - 'DAS' => __( 'Davao del Sur', 'invoicing' ), |
|
| 997 | - 'DAC' => __( 'Davao Occidental', 'invoicing' ), |
|
| 998 | - 'DAO' => __( 'Davao Oriental', 'invoicing' ), |
|
| 999 | - 'DIN' => __( 'Dinagat Islands', 'invoicing' ), |
|
| 1000 | - 'EAS' => __( 'Eastern Samar', 'invoicing' ), |
|
| 1001 | - 'GUI' => __( 'Guimaras', 'invoicing' ), |
|
| 1002 | - 'IFU' => __( 'Ifugao', 'invoicing' ), |
|
| 1003 | - 'ILN' => __( 'Ilocos Norte', 'invoicing' ), |
|
| 1004 | - 'ILS' => __( 'Ilocos Sur', 'invoicing' ), |
|
| 1005 | - 'ILI' => __( 'Iloilo', 'invoicing' ), |
|
| 1006 | - 'ISA' => __( 'Isabela', 'invoicing' ), |
|
| 1007 | - 'KAL' => __( 'Kalinga', 'invoicing' ), |
|
| 1008 | - 'LUN' => __( 'La Union', 'invoicing' ), |
|
| 1009 | - 'LAG' => __( 'Laguna', 'invoicing' ), |
|
| 1010 | - 'LAN' => __( 'Lanao del Norte', 'invoicing' ), |
|
| 1011 | - 'LAS' => __( 'Lanao del Sur', 'invoicing' ), |
|
| 1012 | - 'LEY' => __( 'Leyte', 'invoicing' ), |
|
| 1013 | - 'MAG' => __( 'Maguindanao', 'invoicing' ), |
|
| 1014 | - 'MAD' => __( 'Marinduque', 'invoicing' ), |
|
| 1015 | - 'MAS' => __( 'Masbate', 'invoicing' ), |
|
| 1016 | - 'MSC' => __( 'Misamis Occidental', 'invoicing' ), |
|
| 1017 | - 'MSR' => __( 'Misamis Oriental', 'invoicing' ), |
|
| 1018 | - 'MOU' => __( 'Mountain Province', 'invoicing' ), |
|
| 1019 | - 'NEC' => __( 'Negros Occidental', 'invoicing' ), |
|
| 1020 | - 'NER' => __( 'Negros Oriental', 'invoicing' ), |
|
| 1021 | - 'NSA' => __( 'Northern Samar', 'invoicing' ), |
|
| 1022 | - 'NUE' => __( 'Nueva Ecija', 'invoicing' ), |
|
| 1023 | - 'NUV' => __( 'Nueva Vizcaya', 'invoicing' ), |
|
| 1024 | - 'MDC' => __( 'Occidental Mindoro', 'invoicing' ), |
|
| 1025 | - 'MDR' => __( 'Oriental Mindoro', 'invoicing' ), |
|
| 1026 | - 'PLW' => __( 'Palawan', 'invoicing' ), |
|
| 1027 | - 'PAM' => __( 'Pampanga', 'invoicing' ), |
|
| 1028 | - 'PAN' => __( 'Pangasinan', 'invoicing' ), |
|
| 1029 | - 'QUE' => __( 'Quezon', 'invoicing' ), |
|
| 1030 | - 'QUI' => __( 'Quirino', 'invoicing' ), |
|
| 1031 | - 'RIZ' => __( 'Rizal', 'invoicing' ), |
|
| 1032 | - 'ROM' => __( 'Romblon', 'invoicing' ), |
|
| 1033 | - 'WSA' => __( 'Samar', 'invoicing' ), |
|
| 1034 | - 'SAR' => __( 'Sarangani', 'invoicing' ), |
|
| 1035 | - 'SIQ' => __( 'Siquijor', 'invoicing' ), |
|
| 1036 | - 'SOR' => __( 'Sorsogon', 'invoicing' ), |
|
| 1037 | - 'SCO' => __( 'South Cotabato', 'invoicing' ), |
|
| 1038 | - 'SLE' => __( 'Southern Leyte', 'invoicing' ), |
|
| 1039 | - 'SUK' => __( 'Sultan Kudarat', 'invoicing' ), |
|
| 1040 | - 'SLU' => __( 'Sulu', 'invoicing' ), |
|
| 1041 | - 'SUN' => __( 'Surigao del Norte', 'invoicing' ), |
|
| 1042 | - 'SUR' => __( 'Surigao del Sur', 'invoicing' ), |
|
| 1043 | - 'TAR' => __( 'Tarlac', 'invoicing' ), |
|
| 1044 | - 'TAW' => __( 'Tawi-Tawi', 'invoicing' ), |
|
| 1045 | - 'ZMB' => __( 'Zambales', 'invoicing' ), |
|
| 1046 | - 'ZAN' => __( 'Zamboanga del Norte', 'invoicing' ), |
|
| 1047 | - 'ZAS' => __( 'Zamboanga del Sur', 'invoicing' ), |
|
| 1048 | - 'ZSI' => __( 'Zamboanga Sibugay', 'invoicing' ), |
|
| 1049 | - '00' => __( 'Metro Manila', 'invoicing' ), |
|
| 968 | + 'ABR' => __('Abra', 'invoicing'), |
|
| 969 | + 'AGN' => __('Agusan del Norte', 'invoicing'), |
|
| 970 | + 'AGS' => __('Agusan del Sur', 'invoicing'), |
|
| 971 | + 'AKL' => __('Aklan', 'invoicing'), |
|
| 972 | + 'ALB' => __('Albay', 'invoicing'), |
|
| 973 | + 'ANT' => __('Antique', 'invoicing'), |
|
| 974 | + 'APA' => __('Apayao', 'invoicing'), |
|
| 975 | + 'AUR' => __('Aurora', 'invoicing'), |
|
| 976 | + 'BAS' => __('Basilan', 'invoicing'), |
|
| 977 | + 'BAN' => __('Bataan', 'invoicing'), |
|
| 978 | + 'BTN' => __('Batanes', 'invoicing'), |
|
| 979 | + 'BTG' => __('Batangas', 'invoicing'), |
|
| 980 | + 'BEN' => __('Benguet', 'invoicing'), |
|
| 981 | + 'BIL' => __('Biliran', 'invoicing'), |
|
| 982 | + 'BOH' => __('Bohol', 'invoicing'), |
|
| 983 | + 'BUK' => __('Bukidnon', 'invoicing'), |
|
| 984 | + 'BUL' => __('Bulacan', 'invoicing'), |
|
| 985 | + 'CAG' => __('Cagayan', 'invoicing'), |
|
| 986 | + 'CAN' => __('Camarines Norte', 'invoicing'), |
|
| 987 | + 'CAS' => __('Camarines Sur', 'invoicing'), |
|
| 988 | + 'CAM' => __('Camiguin', 'invoicing'), |
|
| 989 | + 'CAP' => __('Capiz', 'invoicing'), |
|
| 990 | + 'CAT' => __('Catanduanes', 'invoicing'), |
|
| 991 | + 'CAV' => __('Cavite', 'invoicing'), |
|
| 992 | + 'CEB' => __('Cebu', 'invoicing'), |
|
| 993 | + 'COM' => __('Compostela Valley', 'invoicing'), |
|
| 994 | + 'NCO' => __('Cotabato', 'invoicing'), |
|
| 995 | + 'DAV' => __('Davao del Norte', 'invoicing'), |
|
| 996 | + 'DAS' => __('Davao del Sur', 'invoicing'), |
|
| 997 | + 'DAC' => __('Davao Occidental', 'invoicing'), |
|
| 998 | + 'DAO' => __('Davao Oriental', 'invoicing'), |
|
| 999 | + 'DIN' => __('Dinagat Islands', 'invoicing'), |
|
| 1000 | + 'EAS' => __('Eastern Samar', 'invoicing'), |
|
| 1001 | + 'GUI' => __('Guimaras', 'invoicing'), |
|
| 1002 | + 'IFU' => __('Ifugao', 'invoicing'), |
|
| 1003 | + 'ILN' => __('Ilocos Norte', 'invoicing'), |
|
| 1004 | + 'ILS' => __('Ilocos Sur', 'invoicing'), |
|
| 1005 | + 'ILI' => __('Iloilo', 'invoicing'), |
|
| 1006 | + 'ISA' => __('Isabela', 'invoicing'), |
|
| 1007 | + 'KAL' => __('Kalinga', 'invoicing'), |
|
| 1008 | + 'LUN' => __('La Union', 'invoicing'), |
|
| 1009 | + 'LAG' => __('Laguna', 'invoicing'), |
|
| 1010 | + 'LAN' => __('Lanao del Norte', 'invoicing'), |
|
| 1011 | + 'LAS' => __('Lanao del Sur', 'invoicing'), |
|
| 1012 | + 'LEY' => __('Leyte', 'invoicing'), |
|
| 1013 | + 'MAG' => __('Maguindanao', 'invoicing'), |
|
| 1014 | + 'MAD' => __('Marinduque', 'invoicing'), |
|
| 1015 | + 'MAS' => __('Masbate', 'invoicing'), |
|
| 1016 | + 'MSC' => __('Misamis Occidental', 'invoicing'), |
|
| 1017 | + 'MSR' => __('Misamis Oriental', 'invoicing'), |
|
| 1018 | + 'MOU' => __('Mountain Province', 'invoicing'), |
|
| 1019 | + 'NEC' => __('Negros Occidental', 'invoicing'), |
|
| 1020 | + 'NER' => __('Negros Oriental', 'invoicing'), |
|
| 1021 | + 'NSA' => __('Northern Samar', 'invoicing'), |
|
| 1022 | + 'NUE' => __('Nueva Ecija', 'invoicing'), |
|
| 1023 | + 'NUV' => __('Nueva Vizcaya', 'invoicing'), |
|
| 1024 | + 'MDC' => __('Occidental Mindoro', 'invoicing'), |
|
| 1025 | + 'MDR' => __('Oriental Mindoro', 'invoicing'), |
|
| 1026 | + 'PLW' => __('Palawan', 'invoicing'), |
|
| 1027 | + 'PAM' => __('Pampanga', 'invoicing'), |
|
| 1028 | + 'PAN' => __('Pangasinan', 'invoicing'), |
|
| 1029 | + 'QUE' => __('Quezon', 'invoicing'), |
|
| 1030 | + 'QUI' => __('Quirino', 'invoicing'), |
|
| 1031 | + 'RIZ' => __('Rizal', 'invoicing'), |
|
| 1032 | + 'ROM' => __('Romblon', 'invoicing'), |
|
| 1033 | + 'WSA' => __('Samar', 'invoicing'), |
|
| 1034 | + 'SAR' => __('Sarangani', 'invoicing'), |
|
| 1035 | + 'SIQ' => __('Siquijor', 'invoicing'), |
|
| 1036 | + 'SOR' => __('Sorsogon', 'invoicing'), |
|
| 1037 | + 'SCO' => __('South Cotabato', 'invoicing'), |
|
| 1038 | + 'SLE' => __('Southern Leyte', 'invoicing'), |
|
| 1039 | + 'SUK' => __('Sultan Kudarat', 'invoicing'), |
|
| 1040 | + 'SLU' => __('Sulu', 'invoicing'), |
|
| 1041 | + 'SUN' => __('Surigao del Norte', 'invoicing'), |
|
| 1042 | + 'SUR' => __('Surigao del Sur', 'invoicing'), |
|
| 1043 | + 'TAR' => __('Tarlac', 'invoicing'), |
|
| 1044 | + 'TAW' => __('Tawi-Tawi', 'invoicing'), |
|
| 1045 | + 'ZMB' => __('Zambales', 'invoicing'), |
|
| 1046 | + 'ZAN' => __('Zamboanga del Norte', 'invoicing'), |
|
| 1047 | + 'ZAS' => __('Zamboanga del Sur', 'invoicing'), |
|
| 1048 | + 'ZSI' => __('Zamboanga Sibugay', 'invoicing'), |
|
| 1049 | + '00' => __('Metro Manila', 'invoicing'), |
|
| 1050 | 1050 | ), |
| 1051 | 1051 | 'PK' => array( // Pakistan's states. |
| 1052 | - 'JK' => __( 'Azad Kashmir', 'invoicing' ), |
|
| 1053 | - 'BA' => __( 'Balochistan', 'invoicing' ), |
|
| 1054 | - 'TA' => __( 'FATA', 'invoicing' ), |
|
| 1055 | - 'GB' => __( 'Gilgit Baltistan', 'invoicing' ), |
|
| 1056 | - 'IS' => __( 'Islamabad Capital Territory', 'invoicing' ), |
|
| 1057 | - 'KP' => __( 'Khyber Pakhtunkhwa', 'invoicing' ), |
|
| 1058 | - 'PB' => __( 'Punjab', 'invoicing' ), |
|
| 1059 | - 'SD' => __( 'Sindh', 'invoicing' ), |
|
| 1052 | + 'JK' => __('Azad Kashmir', 'invoicing'), |
|
| 1053 | + 'BA' => __('Balochistan', 'invoicing'), |
|
| 1054 | + 'TA' => __('FATA', 'invoicing'), |
|
| 1055 | + 'GB' => __('Gilgit Baltistan', 'invoicing'), |
|
| 1056 | + 'IS' => __('Islamabad Capital Territory', 'invoicing'), |
|
| 1057 | + 'KP' => __('Khyber Pakhtunkhwa', 'invoicing'), |
|
| 1058 | + 'PB' => __('Punjab', 'invoicing'), |
|
| 1059 | + 'SD' => __('Sindh', 'invoicing'), |
|
| 1060 | 1060 | ), |
| 1061 | 1061 | 'PL' => array(), |
| 1062 | 1062 | 'PT' => array(), |
| 1063 | 1063 | 'PY' => array( // Paraguay states. |
| 1064 | - 'PY-ASU' => __( 'Asunción', 'invoicing' ), |
|
| 1065 | - 'PY-1' => __( 'Concepción', 'invoicing' ), |
|
| 1066 | - 'PY-2' => __( 'San Pedro', 'invoicing' ), |
|
| 1067 | - 'PY-3' => __( 'Cordillera', 'invoicing' ), |
|
| 1068 | - 'PY-4' => __( 'Guairá', 'invoicing' ), |
|
| 1069 | - 'PY-5' => __( 'Caaguazú', 'invoicing' ), |
|
| 1070 | - 'PY-6' => __( 'Caazapá', 'invoicing' ), |
|
| 1071 | - 'PY-7' => __( 'Itapúa', 'invoicing' ), |
|
| 1072 | - 'PY-8' => __( 'Misiones', 'invoicing' ), |
|
| 1073 | - 'PY-9' => __( 'Paraguarí', 'invoicing' ), |
|
| 1074 | - 'PY-10' => __( 'Alto Paraná', 'invoicing' ), |
|
| 1075 | - 'PY-11' => __( 'Central', 'invoicing' ), |
|
| 1076 | - 'PY-12' => __( 'Ñeembucú', 'invoicing' ), |
|
| 1077 | - 'PY-13' => __( 'Amambay', 'invoicing' ), |
|
| 1078 | - 'PY-14' => __( 'Canindeyú', 'invoicing' ), |
|
| 1079 | - 'PY-15' => __( 'Presidente Hayes', 'invoicing' ), |
|
| 1080 | - 'PY-16' => __( 'Alto Paraguay', 'invoicing' ), |
|
| 1081 | - 'PY-17' => __( 'Boquerón', 'invoicing' ), |
|
| 1064 | + 'PY-ASU' => __('Asunción', 'invoicing'), |
|
| 1065 | + 'PY-1' => __('Concepción', 'invoicing'), |
|
| 1066 | + 'PY-2' => __('San Pedro', 'invoicing'), |
|
| 1067 | + 'PY-3' => __('Cordillera', 'invoicing'), |
|
| 1068 | + 'PY-4' => __('Guairá', 'invoicing'), |
|
| 1069 | + 'PY-5' => __('Caaguazú', 'invoicing'), |
|
| 1070 | + 'PY-6' => __('Caazapá', 'invoicing'), |
|
| 1071 | + 'PY-7' => __('Itapúa', 'invoicing'), |
|
| 1072 | + 'PY-8' => __('Misiones', 'invoicing'), |
|
| 1073 | + 'PY-9' => __('Paraguarí', 'invoicing'), |
|
| 1074 | + 'PY-10' => __('Alto Paraná', 'invoicing'), |
|
| 1075 | + 'PY-11' => __('Central', 'invoicing'), |
|
| 1076 | + 'PY-12' => __('Ñeembucú', 'invoicing'), |
|
| 1077 | + 'PY-13' => __('Amambay', 'invoicing'), |
|
| 1078 | + 'PY-14' => __('Canindeyú', 'invoicing'), |
|
| 1079 | + 'PY-15' => __('Presidente Hayes', 'invoicing'), |
|
| 1080 | + 'PY-16' => __('Alto Paraguay', 'invoicing'), |
|
| 1081 | + 'PY-17' => __('Boquerón', 'invoicing'), |
|
| 1082 | 1082 | ), |
| 1083 | 1083 | 'RE' => array(), |
| 1084 | 1084 | 'RO' => array( // Romania states. |
| 1085 | - 'AB' => __( 'Alba', 'invoicing' ), |
|
| 1086 | - 'AR' => __( 'Arad', 'invoicing' ), |
|
| 1087 | - 'AG' => __( 'Argeș', 'invoicing' ), |
|
| 1088 | - 'BC' => __( 'Bacău', 'invoicing' ), |
|
| 1089 | - 'BH' => __( 'Bihor', 'invoicing' ), |
|
| 1090 | - 'BN' => __( 'Bistrița-Năsăud', 'invoicing' ), |
|
| 1091 | - 'BT' => __( 'Botoșani', 'invoicing' ), |
|
| 1092 | - 'BR' => __( 'Brăila', 'invoicing' ), |
|
| 1093 | - 'BV' => __( 'Brașov', 'invoicing' ), |
|
| 1094 | - 'B' => __( 'București', 'invoicing' ), |
|
| 1095 | - 'BZ' => __( 'Buzău', 'invoicing' ), |
|
| 1096 | - 'CL' => __( 'Călărași', 'invoicing' ), |
|
| 1097 | - 'CS' => __( 'Caraș-Severin', 'invoicing' ), |
|
| 1098 | - 'CJ' => __( 'Cluj', 'invoicing' ), |
|
| 1099 | - 'CT' => __( 'Constanța', 'invoicing' ), |
|
| 1100 | - 'CV' => __( 'Covasna', 'invoicing' ), |
|
| 1101 | - 'DB' => __( 'Dâmbovița', 'invoicing' ), |
|
| 1102 | - 'DJ' => __( 'Dolj', 'invoicing' ), |
|
| 1103 | - 'GL' => __( 'Galați', 'invoicing' ), |
|
| 1104 | - 'GR' => __( 'Giurgiu', 'invoicing' ), |
|
| 1105 | - 'GJ' => __( 'Gorj', 'invoicing' ), |
|
| 1106 | - 'HR' => __( 'Harghita', 'invoicing' ), |
|
| 1107 | - 'HD' => __( 'Hunedoara', 'invoicing' ), |
|
| 1108 | - 'IL' => __( 'Ialomița', 'invoicing' ), |
|
| 1109 | - 'IS' => __( 'Iași', 'invoicing' ), |
|
| 1110 | - 'IF' => __( 'Ilfov', 'invoicing' ), |
|
| 1111 | - 'MM' => __( 'Maramureș', 'invoicing' ), |
|
| 1112 | - 'MH' => __( 'Mehedinți', 'invoicing' ), |
|
| 1113 | - 'MS' => __( 'Mureș', 'invoicing' ), |
|
| 1114 | - 'NT' => __( 'Neamț', 'invoicing' ), |
|
| 1115 | - 'OT' => __( 'Olt', 'invoicing' ), |
|
| 1116 | - 'PH' => __( 'Prahova', 'invoicing' ), |
|
| 1117 | - 'SJ' => __( 'Sălaj', 'invoicing' ), |
|
| 1118 | - 'SM' => __( 'Satu Mare', 'invoicing' ), |
|
| 1119 | - 'SB' => __( 'Sibiu', 'invoicing' ), |
|
| 1120 | - 'SV' => __( 'Suceava', 'invoicing' ), |
|
| 1121 | - 'TR' => __( 'Teleorman', 'invoicing' ), |
|
| 1122 | - 'TM' => __( 'Timiș', 'invoicing' ), |
|
| 1123 | - 'TL' => __( 'Tulcea', 'invoicing' ), |
|
| 1124 | - 'VL' => __( 'Vâlcea', 'invoicing' ), |
|
| 1125 | - 'VS' => __( 'Vaslui', 'invoicing' ), |
|
| 1126 | - 'VN' => __( 'Vrancea', 'invoicing' ), |
|
| 1085 | + 'AB' => __('Alba', 'invoicing'), |
|
| 1086 | + 'AR' => __('Arad', 'invoicing'), |
|
| 1087 | + 'AG' => __('Argeș', 'invoicing'), |
|
| 1088 | + 'BC' => __('Bacău', 'invoicing'), |
|
| 1089 | + 'BH' => __('Bihor', 'invoicing'), |
|
| 1090 | + 'BN' => __('Bistrița-Năsăud', 'invoicing'), |
|
| 1091 | + 'BT' => __('Botoșani', 'invoicing'), |
|
| 1092 | + 'BR' => __('Brăila', 'invoicing'), |
|
| 1093 | + 'BV' => __('Brașov', 'invoicing'), |
|
| 1094 | + 'B' => __('București', 'invoicing'), |
|
| 1095 | + 'BZ' => __('Buzău', 'invoicing'), |
|
| 1096 | + 'CL' => __('Călărași', 'invoicing'), |
|
| 1097 | + 'CS' => __('Caraș-Severin', 'invoicing'), |
|
| 1098 | + 'CJ' => __('Cluj', 'invoicing'), |
|
| 1099 | + 'CT' => __('Constanța', 'invoicing'), |
|
| 1100 | + 'CV' => __('Covasna', 'invoicing'), |
|
| 1101 | + 'DB' => __('Dâmbovița', 'invoicing'), |
|
| 1102 | + 'DJ' => __('Dolj', 'invoicing'), |
|
| 1103 | + 'GL' => __('Galați', 'invoicing'), |
|
| 1104 | + 'GR' => __('Giurgiu', 'invoicing'), |
|
| 1105 | + 'GJ' => __('Gorj', 'invoicing'), |
|
| 1106 | + 'HR' => __('Harghita', 'invoicing'), |
|
| 1107 | + 'HD' => __('Hunedoara', 'invoicing'), |
|
| 1108 | + 'IL' => __('Ialomița', 'invoicing'), |
|
| 1109 | + 'IS' => __('Iași', 'invoicing'), |
|
| 1110 | + 'IF' => __('Ilfov', 'invoicing'), |
|
| 1111 | + 'MM' => __('Maramureș', 'invoicing'), |
|
| 1112 | + 'MH' => __('Mehedinți', 'invoicing'), |
|
| 1113 | + 'MS' => __('Mureș', 'invoicing'), |
|
| 1114 | + 'NT' => __('Neamț', 'invoicing'), |
|
| 1115 | + 'OT' => __('Olt', 'invoicing'), |
|
| 1116 | + 'PH' => __('Prahova', 'invoicing'), |
|
| 1117 | + 'SJ' => __('Sălaj', 'invoicing'), |
|
| 1118 | + 'SM' => __('Satu Mare', 'invoicing'), |
|
| 1119 | + 'SB' => __('Sibiu', 'invoicing'), |
|
| 1120 | + 'SV' => __('Suceava', 'invoicing'), |
|
| 1121 | + 'TR' => __('Teleorman', 'invoicing'), |
|
| 1122 | + 'TM' => __('Timiș', 'invoicing'), |
|
| 1123 | + 'TL' => __('Tulcea', 'invoicing'), |
|
| 1124 | + 'VL' => __('Vâlcea', 'invoicing'), |
|
| 1125 | + 'VS' => __('Vaslui', 'invoicing'), |
|
| 1126 | + 'VN' => __('Vrancea', 'invoicing'), |
|
| 1127 | 1127 | ), |
| 1128 | 1128 | 'RS' => array(), |
| 1129 | 1129 | 'SG' => array(), |
| 1130 | 1130 | 'SK' => array(), |
| 1131 | 1131 | 'SI' => array(), |
| 1132 | 1132 | 'TH' => array( // Thailand states. |
| 1133 | - 'TH-37' => __( 'Amnat Charoen', 'invoicing' ), |
|
| 1134 | - 'TH-15' => __( 'Ang Thong', 'invoicing' ), |
|
| 1135 | - 'TH-14' => __( 'Ayutthaya', 'invoicing' ), |
|
| 1136 | - 'TH-10' => __( 'Bangkok', 'invoicing' ), |
|
| 1137 | - 'TH-38' => __( 'Bueng Kan', 'invoicing' ), |
|
| 1138 | - 'TH-31' => __( 'Buri Ram', 'invoicing' ), |
|
| 1139 | - 'TH-24' => __( 'Chachoengsao', 'invoicing' ), |
|
| 1140 | - 'TH-18' => __( 'Chai Nat', 'invoicing' ), |
|
| 1141 | - 'TH-36' => __( 'Chaiyaphum', 'invoicing' ), |
|
| 1142 | - 'TH-22' => __( 'Chanthaburi', 'invoicing' ), |
|
| 1143 | - 'TH-50' => __( 'Chiang Mai', 'invoicing' ), |
|
| 1144 | - 'TH-57' => __( 'Chiang Rai', 'invoicing' ), |
|
| 1145 | - 'TH-20' => __( 'Chonburi', 'invoicing' ), |
|
| 1146 | - 'TH-86' => __( 'Chumphon', 'invoicing' ), |
|
| 1147 | - 'TH-46' => __( 'Kalasin', 'invoicing' ), |
|
| 1148 | - 'TH-62' => __( 'Kamphaeng Phet', 'invoicing' ), |
|
| 1149 | - 'TH-71' => __( 'Kanchanaburi', 'invoicing' ), |
|
| 1150 | - 'TH-40' => __( 'Khon Kaen', 'invoicing' ), |
|
| 1151 | - 'TH-81' => __( 'Krabi', 'invoicing' ), |
|
| 1152 | - 'TH-52' => __( 'Lampang', 'invoicing' ), |
|
| 1153 | - 'TH-51' => __( 'Lamphun', 'invoicing' ), |
|
| 1154 | - 'TH-42' => __( 'Loei', 'invoicing' ), |
|
| 1155 | - 'TH-16' => __( 'Lopburi', 'invoicing' ), |
|
| 1156 | - 'TH-58' => __( 'Mae Hong Son', 'invoicing' ), |
|
| 1157 | - 'TH-44' => __( 'Maha Sarakham', 'invoicing' ), |
|
| 1158 | - 'TH-49' => __( 'Mukdahan', 'invoicing' ), |
|
| 1159 | - 'TH-26' => __( 'Nakhon Nayok', 'invoicing' ), |
|
| 1160 | - 'TH-73' => __( 'Nakhon Pathom', 'invoicing' ), |
|
| 1161 | - 'TH-48' => __( 'Nakhon Phanom', 'invoicing' ), |
|
| 1162 | - 'TH-30' => __( 'Nakhon Ratchasima', 'invoicing' ), |
|
| 1163 | - 'TH-60' => __( 'Nakhon Sawan', 'invoicing' ), |
|
| 1164 | - 'TH-80' => __( 'Nakhon Si Thammarat', 'invoicing' ), |
|
| 1165 | - 'TH-55' => __( 'Nan', 'invoicing' ), |
|
| 1166 | - 'TH-96' => __( 'Narathiwat', 'invoicing' ), |
|
| 1167 | - 'TH-39' => __( 'Nong Bua Lam Phu', 'invoicing' ), |
|
| 1168 | - 'TH-43' => __( 'Nong Khai', 'invoicing' ), |
|
| 1169 | - 'TH-12' => __( 'Nonthaburi', 'invoicing' ), |
|
| 1170 | - 'TH-13' => __( 'Pathum Thani', 'invoicing' ), |
|
| 1171 | - 'TH-94' => __( 'Pattani', 'invoicing' ), |
|
| 1172 | - 'TH-82' => __( 'Phang Nga', 'invoicing' ), |
|
| 1173 | - 'TH-93' => __( 'Phatthalung', 'invoicing' ), |
|
| 1174 | - 'TH-56' => __( 'Phayao', 'invoicing' ), |
|
| 1175 | - 'TH-67' => __( 'Phetchabun', 'invoicing' ), |
|
| 1176 | - 'TH-76' => __( 'Phetchaburi', 'invoicing' ), |
|
| 1177 | - 'TH-66' => __( 'Phichit', 'invoicing' ), |
|
| 1178 | - 'TH-65' => __( 'Phitsanulok', 'invoicing' ), |
|
| 1179 | - 'TH-54' => __( 'Phrae', 'invoicing' ), |
|
| 1180 | - 'TH-83' => __( 'Phuket', 'invoicing' ), |
|
| 1181 | - 'TH-25' => __( 'Prachin Buri', 'invoicing' ), |
|
| 1182 | - 'TH-77' => __( 'Prachuap Khiri Khan', 'invoicing' ), |
|
| 1183 | - 'TH-85' => __( 'Ranong', 'invoicing' ), |
|
| 1184 | - 'TH-70' => __( 'Ratchaburi', 'invoicing' ), |
|
| 1185 | - 'TH-21' => __( 'Rayong', 'invoicing' ), |
|
| 1186 | - 'TH-45' => __( 'Roi Et', 'invoicing' ), |
|
| 1187 | - 'TH-27' => __( 'Sa Kaeo', 'invoicing' ), |
|
| 1188 | - 'TH-47' => __( 'Sakon Nakhon', 'invoicing' ), |
|
| 1189 | - 'TH-11' => __( 'Samut Prakan', 'invoicing' ), |
|
| 1190 | - 'TH-74' => __( 'Samut Sakhon', 'invoicing' ), |
|
| 1191 | - 'TH-75' => __( 'Samut Songkhram', 'invoicing' ), |
|
| 1192 | - 'TH-19' => __( 'Saraburi', 'invoicing' ), |
|
| 1193 | - 'TH-91' => __( 'Satun', 'invoicing' ), |
|
| 1194 | - 'TH-17' => __( 'Sing Buri', 'invoicing' ), |
|
| 1195 | - 'TH-33' => __( 'Sisaket', 'invoicing' ), |
|
| 1196 | - 'TH-90' => __( 'Songkhla', 'invoicing' ), |
|
| 1197 | - 'TH-64' => __( 'Sukhothai', 'invoicing' ), |
|
| 1198 | - 'TH-72' => __( 'Suphan Buri', 'invoicing' ), |
|
| 1199 | - 'TH-84' => __( 'Surat Thani', 'invoicing' ), |
|
| 1200 | - 'TH-32' => __( 'Surin', 'invoicing' ), |
|
| 1201 | - 'TH-63' => __( 'Tak', 'invoicing' ), |
|
| 1202 | - 'TH-92' => __( 'Trang', 'invoicing' ), |
|
| 1203 | - 'TH-23' => __( 'Trat', 'invoicing' ), |
|
| 1204 | - 'TH-34' => __( 'Ubon Ratchathani', 'invoicing' ), |
|
| 1205 | - 'TH-41' => __( 'Udon Thani', 'invoicing' ), |
|
| 1206 | - 'TH-61' => __( 'Uthai Thani', 'invoicing' ), |
|
| 1207 | - 'TH-53' => __( 'Uttaradit', 'invoicing' ), |
|
| 1208 | - 'TH-95' => __( 'Yala', 'invoicing' ), |
|
| 1209 | - 'TH-35' => __( 'Yasothon', 'invoicing' ), |
|
| 1133 | + 'TH-37' => __('Amnat Charoen', 'invoicing'), |
|
| 1134 | + 'TH-15' => __('Ang Thong', 'invoicing'), |
|
| 1135 | + 'TH-14' => __('Ayutthaya', 'invoicing'), |
|
| 1136 | + 'TH-10' => __('Bangkok', 'invoicing'), |
|
| 1137 | + 'TH-38' => __('Bueng Kan', 'invoicing'), |
|
| 1138 | + 'TH-31' => __('Buri Ram', 'invoicing'), |
|
| 1139 | + 'TH-24' => __('Chachoengsao', 'invoicing'), |
|
| 1140 | + 'TH-18' => __('Chai Nat', 'invoicing'), |
|
| 1141 | + 'TH-36' => __('Chaiyaphum', 'invoicing'), |
|
| 1142 | + 'TH-22' => __('Chanthaburi', 'invoicing'), |
|
| 1143 | + 'TH-50' => __('Chiang Mai', 'invoicing'), |
|
| 1144 | + 'TH-57' => __('Chiang Rai', 'invoicing'), |
|
| 1145 | + 'TH-20' => __('Chonburi', 'invoicing'), |
|
| 1146 | + 'TH-86' => __('Chumphon', 'invoicing'), |
|
| 1147 | + 'TH-46' => __('Kalasin', 'invoicing'), |
|
| 1148 | + 'TH-62' => __('Kamphaeng Phet', 'invoicing'), |
|
| 1149 | + 'TH-71' => __('Kanchanaburi', 'invoicing'), |
|
| 1150 | + 'TH-40' => __('Khon Kaen', 'invoicing'), |
|
| 1151 | + 'TH-81' => __('Krabi', 'invoicing'), |
|
| 1152 | + 'TH-52' => __('Lampang', 'invoicing'), |
|
| 1153 | + 'TH-51' => __('Lamphun', 'invoicing'), |
|
| 1154 | + 'TH-42' => __('Loei', 'invoicing'), |
|
| 1155 | + 'TH-16' => __('Lopburi', 'invoicing'), |
|
| 1156 | + 'TH-58' => __('Mae Hong Son', 'invoicing'), |
|
| 1157 | + 'TH-44' => __('Maha Sarakham', 'invoicing'), |
|
| 1158 | + 'TH-49' => __('Mukdahan', 'invoicing'), |
|
| 1159 | + 'TH-26' => __('Nakhon Nayok', 'invoicing'), |
|
| 1160 | + 'TH-73' => __('Nakhon Pathom', 'invoicing'), |
|
| 1161 | + 'TH-48' => __('Nakhon Phanom', 'invoicing'), |
|
| 1162 | + 'TH-30' => __('Nakhon Ratchasima', 'invoicing'), |
|
| 1163 | + 'TH-60' => __('Nakhon Sawan', 'invoicing'), |
|
| 1164 | + 'TH-80' => __('Nakhon Si Thammarat', 'invoicing'), |
|
| 1165 | + 'TH-55' => __('Nan', 'invoicing'), |
|
| 1166 | + 'TH-96' => __('Narathiwat', 'invoicing'), |
|
| 1167 | + 'TH-39' => __('Nong Bua Lam Phu', 'invoicing'), |
|
| 1168 | + 'TH-43' => __('Nong Khai', 'invoicing'), |
|
| 1169 | + 'TH-12' => __('Nonthaburi', 'invoicing'), |
|
| 1170 | + 'TH-13' => __('Pathum Thani', 'invoicing'), |
|
| 1171 | + 'TH-94' => __('Pattani', 'invoicing'), |
|
| 1172 | + 'TH-82' => __('Phang Nga', 'invoicing'), |
|
| 1173 | + 'TH-93' => __('Phatthalung', 'invoicing'), |
|
| 1174 | + 'TH-56' => __('Phayao', 'invoicing'), |
|
| 1175 | + 'TH-67' => __('Phetchabun', 'invoicing'), |
|
| 1176 | + 'TH-76' => __('Phetchaburi', 'invoicing'), |
|
| 1177 | + 'TH-66' => __('Phichit', 'invoicing'), |
|
| 1178 | + 'TH-65' => __('Phitsanulok', 'invoicing'), |
|
| 1179 | + 'TH-54' => __('Phrae', 'invoicing'), |
|
| 1180 | + 'TH-83' => __('Phuket', 'invoicing'), |
|
| 1181 | + 'TH-25' => __('Prachin Buri', 'invoicing'), |
|
| 1182 | + 'TH-77' => __('Prachuap Khiri Khan', 'invoicing'), |
|
| 1183 | + 'TH-85' => __('Ranong', 'invoicing'), |
|
| 1184 | + 'TH-70' => __('Ratchaburi', 'invoicing'), |
|
| 1185 | + 'TH-21' => __('Rayong', 'invoicing'), |
|
| 1186 | + 'TH-45' => __('Roi Et', 'invoicing'), |
|
| 1187 | + 'TH-27' => __('Sa Kaeo', 'invoicing'), |
|
| 1188 | + 'TH-47' => __('Sakon Nakhon', 'invoicing'), |
|
| 1189 | + 'TH-11' => __('Samut Prakan', 'invoicing'), |
|
| 1190 | + 'TH-74' => __('Samut Sakhon', 'invoicing'), |
|
| 1191 | + 'TH-75' => __('Samut Songkhram', 'invoicing'), |
|
| 1192 | + 'TH-19' => __('Saraburi', 'invoicing'), |
|
| 1193 | + 'TH-91' => __('Satun', 'invoicing'), |
|
| 1194 | + 'TH-17' => __('Sing Buri', 'invoicing'), |
|
| 1195 | + 'TH-33' => __('Sisaket', 'invoicing'), |
|
| 1196 | + 'TH-90' => __('Songkhla', 'invoicing'), |
|
| 1197 | + 'TH-64' => __('Sukhothai', 'invoicing'), |
|
| 1198 | + 'TH-72' => __('Suphan Buri', 'invoicing'), |
|
| 1199 | + 'TH-84' => __('Surat Thani', 'invoicing'), |
|
| 1200 | + 'TH-32' => __('Surin', 'invoicing'), |
|
| 1201 | + 'TH-63' => __('Tak', 'invoicing'), |
|
| 1202 | + 'TH-92' => __('Trang', 'invoicing'), |
|
| 1203 | + 'TH-23' => __('Trat', 'invoicing'), |
|
| 1204 | + 'TH-34' => __('Ubon Ratchathani', 'invoicing'), |
|
| 1205 | + 'TH-41' => __('Udon Thani', 'invoicing'), |
|
| 1206 | + 'TH-61' => __('Uthai Thani', 'invoicing'), |
|
| 1207 | + 'TH-53' => __('Uttaradit', 'invoicing'), |
|
| 1208 | + 'TH-95' => __('Yala', 'invoicing'), |
|
| 1209 | + 'TH-35' => __('Yasothon', 'invoicing'), |
|
| 1210 | 1210 | ), |
| 1211 | 1211 | 'TR' => array( // Turkey States. |
| 1212 | - 'TR01' => __( 'Adana', 'invoicing' ), |
|
| 1213 | - 'TR02' => __( 'Adıyaman', 'invoicing' ), |
|
| 1214 | - 'TR03' => __( 'Afyon', 'invoicing' ), |
|
| 1215 | - 'TR04' => __( 'Ağrı', 'invoicing' ), |
|
| 1216 | - 'TR05' => __( 'Amasya', 'invoicing' ), |
|
| 1217 | - 'TR06' => __( 'Ankara', 'invoicing' ), |
|
| 1218 | - 'TR07' => __( 'Antalya', 'invoicing' ), |
|
| 1219 | - 'TR08' => __( 'Artvin', 'invoicing' ), |
|
| 1220 | - 'TR09' => __( 'Aydın', 'invoicing' ), |
|
| 1221 | - 'TR10' => __( 'Balıkesir', 'invoicing' ), |
|
| 1222 | - 'TR11' => __( 'Bilecik', 'invoicing' ), |
|
| 1223 | - 'TR12' => __( 'Bingöl', 'invoicing' ), |
|
| 1224 | - 'TR13' => __( 'Bitlis', 'invoicing' ), |
|
| 1225 | - 'TR14' => __( 'Bolu', 'invoicing' ), |
|
| 1226 | - 'TR15' => __( 'Burdur', 'invoicing' ), |
|
| 1227 | - 'TR16' => __( 'Bursa', 'invoicing' ), |
|
| 1228 | - 'TR17' => __( 'Çanakkale', 'invoicing' ), |
|
| 1229 | - 'TR18' => __( 'Çankırı', 'invoicing' ), |
|
| 1230 | - 'TR19' => __( 'Çorum', 'invoicing' ), |
|
| 1231 | - 'TR20' => __( 'Denizli', 'invoicing' ), |
|
| 1232 | - 'TR21' => __( 'Diyarbakır', 'invoicing' ), |
|
| 1233 | - 'TR22' => __( 'Edirne', 'invoicing' ), |
|
| 1234 | - 'TR23' => __( 'Elazığ', 'invoicing' ), |
|
| 1235 | - 'TR24' => __( 'Erzincan', 'invoicing' ), |
|
| 1236 | - 'TR25' => __( 'Erzurum', 'invoicing' ), |
|
| 1237 | - 'TR26' => __( 'Eskişehir', 'invoicing' ), |
|
| 1238 | - 'TR27' => __( 'Gaziantep', 'invoicing' ), |
|
| 1239 | - 'TR28' => __( 'Giresun', 'invoicing' ), |
|
| 1240 | - 'TR29' => __( 'Gümüşhane', 'invoicing' ), |
|
| 1241 | - 'TR30' => __( 'Hakkari', 'invoicing' ), |
|
| 1242 | - 'TR31' => __( 'Hatay', 'invoicing' ), |
|
| 1243 | - 'TR32' => __( 'Isparta', 'invoicing' ), |
|
| 1244 | - 'TR33' => __( 'İçel', 'invoicing' ), |
|
| 1245 | - 'TR34' => __( 'İstanbul', 'invoicing' ), |
|
| 1246 | - 'TR35' => __( 'İzmir', 'invoicing' ), |
|
| 1247 | - 'TR36' => __( 'Kars', 'invoicing' ), |
|
| 1248 | - 'TR37' => __( 'Kastamonu', 'invoicing' ), |
|
| 1249 | - 'TR38' => __( 'Kayseri', 'invoicing' ), |
|
| 1250 | - 'TR39' => __( 'Kırklareli', 'invoicing' ), |
|
| 1251 | - 'TR40' => __( 'Kırşehir', 'invoicing' ), |
|
| 1252 | - 'TR41' => __( 'Kocaeli', 'invoicing' ), |
|
| 1253 | - 'TR42' => __( 'Konya', 'invoicing' ), |
|
| 1254 | - 'TR43' => __( 'Kütahya', 'invoicing' ), |
|
| 1255 | - 'TR44' => __( 'Malatya', 'invoicing' ), |
|
| 1256 | - 'TR45' => __( 'Manisa', 'invoicing' ), |
|
| 1257 | - 'TR46' => __( 'Kahramanmaraş', 'invoicing' ), |
|
| 1258 | - 'TR47' => __( 'Mardin', 'invoicing' ), |
|
| 1259 | - 'TR48' => __( 'Muğla', 'invoicing' ), |
|
| 1260 | - 'TR49' => __( 'Muş', 'invoicing' ), |
|
| 1261 | - 'TR50' => __( 'Nevşehir', 'invoicing' ), |
|
| 1262 | - 'TR51' => __( 'Niğde', 'invoicing' ), |
|
| 1263 | - 'TR52' => __( 'Ordu', 'invoicing' ), |
|
| 1264 | - 'TR53' => __( 'Rize', 'invoicing' ), |
|
| 1265 | - 'TR54' => __( 'Sakarya', 'invoicing' ), |
|
| 1266 | - 'TR55' => __( 'Samsun', 'invoicing' ), |
|
| 1267 | - 'TR56' => __( 'Siirt', 'invoicing' ), |
|
| 1268 | - 'TR57' => __( 'Sinop', 'invoicing' ), |
|
| 1269 | - 'TR58' => __( 'Sivas', 'invoicing' ), |
|
| 1270 | - 'TR59' => __( 'Tekirdağ', 'invoicing' ), |
|
| 1271 | - 'TR60' => __( 'Tokat', 'invoicing' ), |
|
| 1272 | - 'TR61' => __( 'Trabzon', 'invoicing' ), |
|
| 1273 | - 'TR62' => __( 'Tunceli', 'invoicing' ), |
|
| 1274 | - 'TR63' => __( 'Şanlıurfa', 'invoicing' ), |
|
| 1275 | - 'TR64' => __( 'Uşak', 'invoicing' ), |
|
| 1276 | - 'TR65' => __( 'Van', 'invoicing' ), |
|
| 1277 | - 'TR66' => __( 'Yozgat', 'invoicing' ), |
|
| 1278 | - 'TR67' => __( 'Zonguldak', 'invoicing' ), |
|
| 1279 | - 'TR68' => __( 'Aksaray', 'invoicing' ), |
|
| 1280 | - 'TR69' => __( 'Bayburt', 'invoicing' ), |
|
| 1281 | - 'TR70' => __( 'Karaman', 'invoicing' ), |
|
| 1282 | - 'TR71' => __( 'Kırıkkale', 'invoicing' ), |
|
| 1283 | - 'TR72' => __( 'Batman', 'invoicing' ), |
|
| 1284 | - 'TR73' => __( 'Şırnak', 'invoicing' ), |
|
| 1285 | - 'TR74' => __( 'Bartın', 'invoicing' ), |
|
| 1286 | - 'TR75' => __( 'Ardahan', 'invoicing' ), |
|
| 1287 | - 'TR76' => __( 'Iğdır', 'invoicing' ), |
|
| 1288 | - 'TR77' => __( 'Yalova', 'invoicing' ), |
|
| 1289 | - 'TR78' => __( 'Karabük', 'invoicing' ), |
|
| 1290 | - 'TR79' => __( 'Kilis', 'invoicing' ), |
|
| 1291 | - 'TR80' => __( 'Osmaniye', 'invoicing' ), |
|
| 1292 | - 'TR81' => __( 'Düzce', 'invoicing' ), |
|
| 1212 | + 'TR01' => __('Adana', 'invoicing'), |
|
| 1213 | + 'TR02' => __('Adıyaman', 'invoicing'), |
|
| 1214 | + 'TR03' => __('Afyon', 'invoicing'), |
|
| 1215 | + 'TR04' => __('Ağrı', 'invoicing'), |
|
| 1216 | + 'TR05' => __('Amasya', 'invoicing'), |
|
| 1217 | + 'TR06' => __('Ankara', 'invoicing'), |
|
| 1218 | + 'TR07' => __('Antalya', 'invoicing'), |
|
| 1219 | + 'TR08' => __('Artvin', 'invoicing'), |
|
| 1220 | + 'TR09' => __('Aydın', 'invoicing'), |
|
| 1221 | + 'TR10' => __('Balıkesir', 'invoicing'), |
|
| 1222 | + 'TR11' => __('Bilecik', 'invoicing'), |
|
| 1223 | + 'TR12' => __('Bingöl', 'invoicing'), |
|
| 1224 | + 'TR13' => __('Bitlis', 'invoicing'), |
|
| 1225 | + 'TR14' => __('Bolu', 'invoicing'), |
|
| 1226 | + 'TR15' => __('Burdur', 'invoicing'), |
|
| 1227 | + 'TR16' => __('Bursa', 'invoicing'), |
|
| 1228 | + 'TR17' => __('Çanakkale', 'invoicing'), |
|
| 1229 | + 'TR18' => __('Çankırı', 'invoicing'), |
|
| 1230 | + 'TR19' => __('Çorum', 'invoicing'), |
|
| 1231 | + 'TR20' => __('Denizli', 'invoicing'), |
|
| 1232 | + 'TR21' => __('Diyarbakır', 'invoicing'), |
|
| 1233 | + 'TR22' => __('Edirne', 'invoicing'), |
|
| 1234 | + 'TR23' => __('Elazığ', 'invoicing'), |
|
| 1235 | + 'TR24' => __('Erzincan', 'invoicing'), |
|
| 1236 | + 'TR25' => __('Erzurum', 'invoicing'), |
|
| 1237 | + 'TR26' => __('Eskişehir', 'invoicing'), |
|
| 1238 | + 'TR27' => __('Gaziantep', 'invoicing'), |
|
| 1239 | + 'TR28' => __('Giresun', 'invoicing'), |
|
| 1240 | + 'TR29' => __('Gümüşhane', 'invoicing'), |
|
| 1241 | + 'TR30' => __('Hakkari', 'invoicing'), |
|
| 1242 | + 'TR31' => __('Hatay', 'invoicing'), |
|
| 1243 | + 'TR32' => __('Isparta', 'invoicing'), |
|
| 1244 | + 'TR33' => __('İçel', 'invoicing'), |
|
| 1245 | + 'TR34' => __('İstanbul', 'invoicing'), |
|
| 1246 | + 'TR35' => __('İzmir', 'invoicing'), |
|
| 1247 | + 'TR36' => __('Kars', 'invoicing'), |
|
| 1248 | + 'TR37' => __('Kastamonu', 'invoicing'), |
|
| 1249 | + 'TR38' => __('Kayseri', 'invoicing'), |
|
| 1250 | + 'TR39' => __('Kırklareli', 'invoicing'), |
|
| 1251 | + 'TR40' => __('Kırşehir', 'invoicing'), |
|
| 1252 | + 'TR41' => __('Kocaeli', 'invoicing'), |
|
| 1253 | + 'TR42' => __('Konya', 'invoicing'), |
|
| 1254 | + 'TR43' => __('Kütahya', 'invoicing'), |
|
| 1255 | + 'TR44' => __('Malatya', 'invoicing'), |
|
| 1256 | + 'TR45' => __('Manisa', 'invoicing'), |
|
| 1257 | + 'TR46' => __('Kahramanmaraş', 'invoicing'), |
|
| 1258 | + 'TR47' => __('Mardin', 'invoicing'), |
|
| 1259 | + 'TR48' => __('Muğla', 'invoicing'), |
|
| 1260 | + 'TR49' => __('Muş', 'invoicing'), |
|
| 1261 | + 'TR50' => __('Nevşehir', 'invoicing'), |
|
| 1262 | + 'TR51' => __('Niğde', 'invoicing'), |
|
| 1263 | + 'TR52' => __('Ordu', 'invoicing'), |
|
| 1264 | + 'TR53' => __('Rize', 'invoicing'), |
|
| 1265 | + 'TR54' => __('Sakarya', 'invoicing'), |
|
| 1266 | + 'TR55' => __('Samsun', 'invoicing'), |
|
| 1267 | + 'TR56' => __('Siirt', 'invoicing'), |
|
| 1268 | + 'TR57' => __('Sinop', 'invoicing'), |
|
| 1269 | + 'TR58' => __('Sivas', 'invoicing'), |
|
| 1270 | + 'TR59' => __('Tekirdağ', 'invoicing'), |
|
| 1271 | + 'TR60' => __('Tokat', 'invoicing'), |
|
| 1272 | + 'TR61' => __('Trabzon', 'invoicing'), |
|
| 1273 | + 'TR62' => __('Tunceli', 'invoicing'), |
|
| 1274 | + 'TR63' => __('Şanlıurfa', 'invoicing'), |
|
| 1275 | + 'TR64' => __('Uşak', 'invoicing'), |
|
| 1276 | + 'TR65' => __('Van', 'invoicing'), |
|
| 1277 | + 'TR66' => __('Yozgat', 'invoicing'), |
|
| 1278 | + 'TR67' => __('Zonguldak', 'invoicing'), |
|
| 1279 | + 'TR68' => __('Aksaray', 'invoicing'), |
|
| 1280 | + 'TR69' => __('Bayburt', 'invoicing'), |
|
| 1281 | + 'TR70' => __('Karaman', 'invoicing'), |
|
| 1282 | + 'TR71' => __('Kırıkkale', 'invoicing'), |
|
| 1283 | + 'TR72' => __('Batman', 'invoicing'), |
|
| 1284 | + 'TR73' => __('Şırnak', 'invoicing'), |
|
| 1285 | + 'TR74' => __('Bartın', 'invoicing'), |
|
| 1286 | + 'TR75' => __('Ardahan', 'invoicing'), |
|
| 1287 | + 'TR76' => __('Iğdır', 'invoicing'), |
|
| 1288 | + 'TR77' => __('Yalova', 'invoicing'), |
|
| 1289 | + 'TR78' => __('Karabük', 'invoicing'), |
|
| 1290 | + 'TR79' => __('Kilis', 'invoicing'), |
|
| 1291 | + 'TR80' => __('Osmaniye', 'invoicing'), |
|
| 1292 | + 'TR81' => __('Düzce', 'invoicing'), |
|
| 1293 | 1293 | ), |
| 1294 | 1294 | 'TZ' => array( // Tanzania States. |
| 1295 | - 'TZ01' => __( 'Arusha', 'invoicing' ), |
|
| 1296 | - 'TZ02' => __( 'Dar es Salaam', 'invoicing' ), |
|
| 1297 | - 'TZ03' => __( 'Dodoma', 'invoicing' ), |
|
| 1298 | - 'TZ04' => __( 'Iringa', 'invoicing' ), |
|
| 1299 | - 'TZ05' => __( 'Kagera', 'invoicing' ), |
|
| 1300 | - 'TZ06' => __( 'Pemba North', 'invoicing' ), |
|
| 1301 | - 'TZ07' => __( 'Zanzibar North', 'invoicing' ), |
|
| 1302 | - 'TZ08' => __( 'Kigoma', 'invoicing' ), |
|
| 1303 | - 'TZ09' => __( 'Kilimanjaro', 'invoicing' ), |
|
| 1304 | - 'TZ10' => __( 'Pemba South', 'invoicing' ), |
|
| 1305 | - 'TZ11' => __( 'Zanzibar South', 'invoicing' ), |
|
| 1306 | - 'TZ12' => __( 'Lindi', 'invoicing' ), |
|
| 1307 | - 'TZ13' => __( 'Mara', 'invoicing' ), |
|
| 1308 | - 'TZ14' => __( 'Mbeya', 'invoicing' ), |
|
| 1309 | - 'TZ15' => __( 'Zanzibar West', 'invoicing' ), |
|
| 1310 | - 'TZ16' => __( 'Morogoro', 'invoicing' ), |
|
| 1311 | - 'TZ17' => __( 'Mtwara', 'invoicing' ), |
|
| 1312 | - 'TZ18' => __( 'Mwanza', 'invoicing' ), |
|
| 1313 | - 'TZ19' => __( 'Coast', 'invoicing' ), |
|
| 1314 | - 'TZ20' => __( 'Rukwa', 'invoicing' ), |
|
| 1315 | - 'TZ21' => __( 'Ruvuma', 'invoicing' ), |
|
| 1316 | - 'TZ22' => __( 'Shinyanga', 'invoicing' ), |
|
| 1317 | - 'TZ23' => __( 'Singida', 'invoicing' ), |
|
| 1318 | - 'TZ24' => __( 'Tabora', 'invoicing' ), |
|
| 1319 | - 'TZ25' => __( 'Tanga', 'invoicing' ), |
|
| 1320 | - 'TZ26' => __( 'Manyara', 'invoicing' ), |
|
| 1321 | - 'TZ27' => __( 'Geita', 'invoicing' ), |
|
| 1322 | - 'TZ28' => __( 'Katavi', 'invoicing' ), |
|
| 1323 | - 'TZ29' => __( 'Njombe', 'invoicing' ), |
|
| 1324 | - 'TZ30' => __( 'Simiyu', 'invoicing' ), |
|
| 1295 | + 'TZ01' => __('Arusha', 'invoicing'), |
|
| 1296 | + 'TZ02' => __('Dar es Salaam', 'invoicing'), |
|
| 1297 | + 'TZ03' => __('Dodoma', 'invoicing'), |
|
| 1298 | + 'TZ04' => __('Iringa', 'invoicing'), |
|
| 1299 | + 'TZ05' => __('Kagera', 'invoicing'), |
|
| 1300 | + 'TZ06' => __('Pemba North', 'invoicing'), |
|
| 1301 | + 'TZ07' => __('Zanzibar North', 'invoicing'), |
|
| 1302 | + 'TZ08' => __('Kigoma', 'invoicing'), |
|
| 1303 | + 'TZ09' => __('Kilimanjaro', 'invoicing'), |
|
| 1304 | + 'TZ10' => __('Pemba South', 'invoicing'), |
|
| 1305 | + 'TZ11' => __('Zanzibar South', 'invoicing'), |
|
| 1306 | + 'TZ12' => __('Lindi', 'invoicing'), |
|
| 1307 | + 'TZ13' => __('Mara', 'invoicing'), |
|
| 1308 | + 'TZ14' => __('Mbeya', 'invoicing'), |
|
| 1309 | + 'TZ15' => __('Zanzibar West', 'invoicing'), |
|
| 1310 | + 'TZ16' => __('Morogoro', 'invoicing'), |
|
| 1311 | + 'TZ17' => __('Mtwara', 'invoicing'), |
|
| 1312 | + 'TZ18' => __('Mwanza', 'invoicing'), |
|
| 1313 | + 'TZ19' => __('Coast', 'invoicing'), |
|
| 1314 | + 'TZ20' => __('Rukwa', 'invoicing'), |
|
| 1315 | + 'TZ21' => __('Ruvuma', 'invoicing'), |
|
| 1316 | + 'TZ22' => __('Shinyanga', 'invoicing'), |
|
| 1317 | + 'TZ23' => __('Singida', 'invoicing'), |
|
| 1318 | + 'TZ24' => __('Tabora', 'invoicing'), |
|
| 1319 | + 'TZ25' => __('Tanga', 'invoicing'), |
|
| 1320 | + 'TZ26' => __('Manyara', 'invoicing'), |
|
| 1321 | + 'TZ27' => __('Geita', 'invoicing'), |
|
| 1322 | + 'TZ28' => __('Katavi', 'invoicing'), |
|
| 1323 | + 'TZ29' => __('Njombe', 'invoicing'), |
|
| 1324 | + 'TZ30' => __('Simiyu', 'invoicing'), |
|
| 1325 | 1325 | ), |
| 1326 | 1326 | 'LK' => array(), |
| 1327 | 1327 | 'SE' => array(), |
| 1328 | 1328 | 'UG' => array( // Uganda districts. Ref: https://en.wikipedia.org/wiki/ISO_3166-2:UG. |
| 1329 | - 'UG314' => __( 'Abim', 'invoicing' ), |
|
| 1330 | - 'UG301' => __( 'Adjumani', 'invoicing' ), |
|
| 1331 | - 'UG322' => __( 'Agago', 'invoicing' ), |
|
| 1332 | - 'UG323' => __( 'Alebtong', 'invoicing' ), |
|
| 1333 | - 'UG315' => __( 'Amolatar', 'invoicing' ), |
|
| 1334 | - 'UG324' => __( 'Amudat', 'invoicing' ), |
|
| 1335 | - 'UG216' => __( 'Amuria', 'invoicing' ), |
|
| 1336 | - 'UG316' => __( 'Amuru', 'invoicing' ), |
|
| 1337 | - 'UG302' => __( 'Apac', 'invoicing' ), |
|
| 1338 | - 'UG303' => __( 'Arua', 'invoicing' ), |
|
| 1339 | - 'UG217' => __( 'Budaka', 'invoicing' ), |
|
| 1340 | - 'UG218' => __( 'Bududa', 'invoicing' ), |
|
| 1341 | - 'UG201' => __( 'Bugiri', 'invoicing' ), |
|
| 1342 | - 'UG235' => __( 'Bugweri', 'invoicing' ), |
|
| 1343 | - 'UG420' => __( 'Buhweju', 'invoicing' ), |
|
| 1344 | - 'UG117' => __( 'Buikwe', 'invoicing' ), |
|
| 1345 | - 'UG219' => __( 'Bukedea', 'invoicing' ), |
|
| 1346 | - 'UG118' => __( 'Bukomansimbi', 'invoicing' ), |
|
| 1347 | - 'UG220' => __( 'Bukwa', 'invoicing' ), |
|
| 1348 | - 'UG225' => __( 'Bulambuli', 'invoicing' ), |
|
| 1349 | - 'UG416' => __( 'Buliisa', 'invoicing' ), |
|
| 1350 | - 'UG401' => __( 'Bundibugyo', 'invoicing' ), |
|
| 1351 | - 'UG430' => __( 'Bunyangabu', 'invoicing' ), |
|
| 1352 | - 'UG402' => __( 'Bushenyi', 'invoicing' ), |
|
| 1353 | - 'UG202' => __( 'Busia', 'invoicing' ), |
|
| 1354 | - 'UG221' => __( 'Butaleja', 'invoicing' ), |
|
| 1355 | - 'UG119' => __( 'Butambala', 'invoicing' ), |
|
| 1356 | - 'UG233' => __( 'Butebo', 'invoicing' ), |
|
| 1357 | - 'UG120' => __( 'Buvuma', 'invoicing' ), |
|
| 1358 | - 'UG226' => __( 'Buyende', 'invoicing' ), |
|
| 1359 | - 'UG317' => __( 'Dokolo', 'invoicing' ), |
|
| 1360 | - 'UG121' => __( 'Gomba', 'invoicing' ), |
|
| 1361 | - 'UG304' => __( 'Gulu', 'invoicing' ), |
|
| 1362 | - 'UG403' => __( 'Hoima', 'invoicing' ), |
|
| 1363 | - 'UG417' => __( 'Ibanda', 'invoicing' ), |
|
| 1364 | - 'UG203' => __( 'Iganga', 'invoicing' ), |
|
| 1365 | - 'UG418' => __( 'Isingiro', 'invoicing' ), |
|
| 1366 | - 'UG204' => __( 'Jinja', 'invoicing' ), |
|
| 1367 | - 'UG318' => __( 'Kaabong', 'invoicing' ), |
|
| 1368 | - 'UG404' => __( 'Kabale', 'invoicing' ), |
|
| 1369 | - 'UG405' => __( 'Kabarole', 'invoicing' ), |
|
| 1370 | - 'UG213' => __( 'Kaberamaido', 'invoicing' ), |
|
| 1371 | - 'UG427' => __( 'Kagadi', 'invoicing' ), |
|
| 1372 | - 'UG428' => __( 'Kakumiro', 'invoicing' ), |
|
| 1373 | - 'UG101' => __( 'Kalangala', 'invoicing' ), |
|
| 1374 | - 'UG222' => __( 'Kaliro', 'invoicing' ), |
|
| 1375 | - 'UG122' => __( 'Kalungu', 'invoicing' ), |
|
| 1376 | - 'UG102' => __( 'Kampala', 'invoicing' ), |
|
| 1377 | - 'UG205' => __( 'Kamuli', 'invoicing' ), |
|
| 1378 | - 'UG413' => __( 'Kamwenge', 'invoicing' ), |
|
| 1379 | - 'UG414' => __( 'Kanungu', 'invoicing' ), |
|
| 1380 | - 'UG206' => __( 'Kapchorwa', 'invoicing' ), |
|
| 1381 | - 'UG236' => __( 'Kapelebyong', 'invoicing' ), |
|
| 1382 | - 'UG126' => __( 'Kasanda', 'invoicing' ), |
|
| 1383 | - 'UG406' => __( 'Kasese', 'invoicing' ), |
|
| 1384 | - 'UG207' => __( 'Katakwi', 'invoicing' ), |
|
| 1385 | - 'UG112' => __( 'Kayunga', 'invoicing' ), |
|
| 1386 | - 'UG407' => __( 'Kibaale', 'invoicing' ), |
|
| 1387 | - 'UG103' => __( 'Kiboga', 'invoicing' ), |
|
| 1388 | - 'UG227' => __( 'Kibuku', 'invoicing' ), |
|
| 1389 | - 'UG432' => __( 'Kikuube', 'invoicing' ), |
|
| 1390 | - 'UG419' => __( 'Kiruhura', 'invoicing' ), |
|
| 1391 | - 'UG421' => __( 'Kiryandongo', 'invoicing' ), |
|
| 1392 | - 'UG408' => __( 'Kisoro', 'invoicing' ), |
|
| 1393 | - 'UG305' => __( 'Kitgum', 'invoicing' ), |
|
| 1394 | - 'UG319' => __( 'Koboko', 'invoicing' ), |
|
| 1395 | - 'UG325' => __( 'Kole', 'invoicing' ), |
|
| 1396 | - 'UG306' => __( 'Kotido', 'invoicing' ), |
|
| 1397 | - 'UG208' => __( 'Kumi', 'invoicing' ), |
|
| 1398 | - 'UG333' => __( 'Kwania', 'invoicing' ), |
|
| 1399 | - 'UG228' => __( 'Kween', 'invoicing' ), |
|
| 1400 | - 'UG123' => __( 'Kyankwanzi', 'invoicing' ), |
|
| 1401 | - 'UG422' => __( 'Kyegegwa', 'invoicing' ), |
|
| 1402 | - 'UG415' => __( 'Kyenjojo', 'invoicing' ), |
|
| 1403 | - 'UG125' => __( 'Kyotera', 'invoicing' ), |
|
| 1404 | - 'UG326' => __( 'Lamwo', 'invoicing' ), |
|
| 1405 | - 'UG307' => __( 'Lira', 'invoicing' ), |
|
| 1406 | - 'UG229' => __( 'Luuka', 'invoicing' ), |
|
| 1407 | - 'UG104' => __( 'Luwero', 'invoicing' ), |
|
| 1408 | - 'UG124' => __( 'Lwengo', 'invoicing' ), |
|
| 1409 | - 'UG114' => __( 'Lyantonde', 'invoicing' ), |
|
| 1410 | - 'UG223' => __( 'Manafwa', 'invoicing' ), |
|
| 1411 | - 'UG320' => __( 'Maracha', 'invoicing' ), |
|
| 1412 | - 'UG105' => __( 'Masaka', 'invoicing' ), |
|
| 1413 | - 'UG409' => __( 'Masindi', 'invoicing' ), |
|
| 1414 | - 'UG214' => __( 'Mayuge', 'invoicing' ), |
|
| 1415 | - 'UG209' => __( 'Mbale', 'invoicing' ), |
|
| 1416 | - 'UG410' => __( 'Mbarara', 'invoicing' ), |
|
| 1417 | - 'UG423' => __( 'Mitooma', 'invoicing' ), |
|
| 1418 | - 'UG115' => __( 'Mityana', 'invoicing' ), |
|
| 1419 | - 'UG308' => __( 'Moroto', 'invoicing' ), |
|
| 1420 | - 'UG309' => __( 'Moyo', 'invoicing' ), |
|
| 1421 | - 'UG106' => __( 'Mpigi', 'invoicing' ), |
|
| 1422 | - 'UG107' => __( 'Mubende', 'invoicing' ), |
|
| 1423 | - 'UG108' => __( 'Mukono', 'invoicing' ), |
|
| 1424 | - 'UG334' => __( 'Nabilatuk', 'invoicing' ), |
|
| 1425 | - 'UG311' => __( 'Nakapiripirit', 'invoicing' ), |
|
| 1426 | - 'UG116' => __( 'Nakaseke', 'invoicing' ), |
|
| 1427 | - 'UG109' => __( 'Nakasongola', 'invoicing' ), |
|
| 1428 | - 'UG230' => __( 'Namayingo', 'invoicing' ), |
|
| 1429 | - 'UG234' => __( 'Namisindwa', 'invoicing' ), |
|
| 1430 | - 'UG224' => __( 'Namutumba', 'invoicing' ), |
|
| 1431 | - 'UG327' => __( 'Napak', 'invoicing' ), |
|
| 1432 | - 'UG310' => __( 'Nebbi', 'invoicing' ), |
|
| 1433 | - 'UG231' => __( 'Ngora', 'invoicing' ), |
|
| 1434 | - 'UG424' => __( 'Ntoroko', 'invoicing' ), |
|
| 1435 | - 'UG411' => __( 'Ntungamo', 'invoicing' ), |
|
| 1436 | - 'UG328' => __( 'Nwoya', 'invoicing' ), |
|
| 1437 | - 'UG331' => __( 'Omoro', 'invoicing' ), |
|
| 1438 | - 'UG329' => __( 'Otuke', 'invoicing' ), |
|
| 1439 | - 'UG321' => __( 'Oyam', 'invoicing' ), |
|
| 1440 | - 'UG312' => __( 'Pader', 'invoicing' ), |
|
| 1441 | - 'UG332' => __( 'Pakwach', 'invoicing' ), |
|
| 1442 | - 'UG210' => __( 'Pallisa', 'invoicing' ), |
|
| 1443 | - 'UG110' => __( 'Rakai', 'invoicing' ), |
|
| 1444 | - 'UG429' => __( 'Rubanda', 'invoicing' ), |
|
| 1445 | - 'UG425' => __( 'Rubirizi', 'invoicing' ), |
|
| 1446 | - 'UG431' => __( 'Rukiga', 'invoicing' ), |
|
| 1447 | - 'UG412' => __( 'Rukungiri', 'invoicing' ), |
|
| 1448 | - 'UG111' => __( 'Sembabule', 'invoicing' ), |
|
| 1449 | - 'UG232' => __( 'Serere', 'invoicing' ), |
|
| 1450 | - 'UG426' => __( 'Sheema', 'invoicing' ), |
|
| 1451 | - 'UG215' => __( 'Sironko', 'invoicing' ), |
|
| 1452 | - 'UG211' => __( 'Soroti', 'invoicing' ), |
|
| 1453 | - 'UG212' => __( 'Tororo', 'invoicing' ), |
|
| 1454 | - 'UG113' => __( 'Wakiso', 'invoicing' ), |
|
| 1455 | - 'UG313' => __( 'Yumbe', 'invoicing' ), |
|
| 1456 | - 'UG330' => __( 'Zombo', 'invoicing' ), |
|
| 1329 | + 'UG314' => __('Abim', 'invoicing'), |
|
| 1330 | + 'UG301' => __('Adjumani', 'invoicing'), |
|
| 1331 | + 'UG322' => __('Agago', 'invoicing'), |
|
| 1332 | + 'UG323' => __('Alebtong', 'invoicing'), |
|
| 1333 | + 'UG315' => __('Amolatar', 'invoicing'), |
|
| 1334 | + 'UG324' => __('Amudat', 'invoicing'), |
|
| 1335 | + 'UG216' => __('Amuria', 'invoicing'), |
|
| 1336 | + 'UG316' => __('Amuru', 'invoicing'), |
|
| 1337 | + 'UG302' => __('Apac', 'invoicing'), |
|
| 1338 | + 'UG303' => __('Arua', 'invoicing'), |
|
| 1339 | + 'UG217' => __('Budaka', 'invoicing'), |
|
| 1340 | + 'UG218' => __('Bududa', 'invoicing'), |
|
| 1341 | + 'UG201' => __('Bugiri', 'invoicing'), |
|
| 1342 | + 'UG235' => __('Bugweri', 'invoicing'), |
|
| 1343 | + 'UG420' => __('Buhweju', 'invoicing'), |
|
| 1344 | + 'UG117' => __('Buikwe', 'invoicing'), |
|
| 1345 | + 'UG219' => __('Bukedea', 'invoicing'), |
|
| 1346 | + 'UG118' => __('Bukomansimbi', 'invoicing'), |
|
| 1347 | + 'UG220' => __('Bukwa', 'invoicing'), |
|
| 1348 | + 'UG225' => __('Bulambuli', 'invoicing'), |
|
| 1349 | + 'UG416' => __('Buliisa', 'invoicing'), |
|
| 1350 | + 'UG401' => __('Bundibugyo', 'invoicing'), |
|
| 1351 | + 'UG430' => __('Bunyangabu', 'invoicing'), |
|
| 1352 | + 'UG402' => __('Bushenyi', 'invoicing'), |
|
| 1353 | + 'UG202' => __('Busia', 'invoicing'), |
|
| 1354 | + 'UG221' => __('Butaleja', 'invoicing'), |
|
| 1355 | + 'UG119' => __('Butambala', 'invoicing'), |
|
| 1356 | + 'UG233' => __('Butebo', 'invoicing'), |
|
| 1357 | + 'UG120' => __('Buvuma', 'invoicing'), |
|
| 1358 | + 'UG226' => __('Buyende', 'invoicing'), |
|
| 1359 | + 'UG317' => __('Dokolo', 'invoicing'), |
|
| 1360 | + 'UG121' => __('Gomba', 'invoicing'), |
|
| 1361 | + 'UG304' => __('Gulu', 'invoicing'), |
|
| 1362 | + 'UG403' => __('Hoima', 'invoicing'), |
|
| 1363 | + 'UG417' => __('Ibanda', 'invoicing'), |
|
| 1364 | + 'UG203' => __('Iganga', 'invoicing'), |
|
| 1365 | + 'UG418' => __('Isingiro', 'invoicing'), |
|
| 1366 | + 'UG204' => __('Jinja', 'invoicing'), |
|
| 1367 | + 'UG318' => __('Kaabong', 'invoicing'), |
|
| 1368 | + 'UG404' => __('Kabale', 'invoicing'), |
|
| 1369 | + 'UG405' => __('Kabarole', 'invoicing'), |
|
| 1370 | + 'UG213' => __('Kaberamaido', 'invoicing'), |
|
| 1371 | + 'UG427' => __('Kagadi', 'invoicing'), |
|
| 1372 | + 'UG428' => __('Kakumiro', 'invoicing'), |
|
| 1373 | + 'UG101' => __('Kalangala', 'invoicing'), |
|
| 1374 | + 'UG222' => __('Kaliro', 'invoicing'), |
|
| 1375 | + 'UG122' => __('Kalungu', 'invoicing'), |
|
| 1376 | + 'UG102' => __('Kampala', 'invoicing'), |
|
| 1377 | + 'UG205' => __('Kamuli', 'invoicing'), |
|
| 1378 | + 'UG413' => __('Kamwenge', 'invoicing'), |
|
| 1379 | + 'UG414' => __('Kanungu', 'invoicing'), |
|
| 1380 | + 'UG206' => __('Kapchorwa', 'invoicing'), |
|
| 1381 | + 'UG236' => __('Kapelebyong', 'invoicing'), |
|
| 1382 | + 'UG126' => __('Kasanda', 'invoicing'), |
|
| 1383 | + 'UG406' => __('Kasese', 'invoicing'), |
|
| 1384 | + 'UG207' => __('Katakwi', 'invoicing'), |
|
| 1385 | + 'UG112' => __('Kayunga', 'invoicing'), |
|
| 1386 | + 'UG407' => __('Kibaale', 'invoicing'), |
|
| 1387 | + 'UG103' => __('Kiboga', 'invoicing'), |
|
| 1388 | + 'UG227' => __('Kibuku', 'invoicing'), |
|
| 1389 | + 'UG432' => __('Kikuube', 'invoicing'), |
|
| 1390 | + 'UG419' => __('Kiruhura', 'invoicing'), |
|
| 1391 | + 'UG421' => __('Kiryandongo', 'invoicing'), |
|
| 1392 | + 'UG408' => __('Kisoro', 'invoicing'), |
|
| 1393 | + 'UG305' => __('Kitgum', 'invoicing'), |
|
| 1394 | + 'UG319' => __('Koboko', 'invoicing'), |
|
| 1395 | + 'UG325' => __('Kole', 'invoicing'), |
|
| 1396 | + 'UG306' => __('Kotido', 'invoicing'), |
|
| 1397 | + 'UG208' => __('Kumi', 'invoicing'), |
|
| 1398 | + 'UG333' => __('Kwania', 'invoicing'), |
|
| 1399 | + 'UG228' => __('Kween', 'invoicing'), |
|
| 1400 | + 'UG123' => __('Kyankwanzi', 'invoicing'), |
|
| 1401 | + 'UG422' => __('Kyegegwa', 'invoicing'), |
|
| 1402 | + 'UG415' => __('Kyenjojo', 'invoicing'), |
|
| 1403 | + 'UG125' => __('Kyotera', 'invoicing'), |
|
| 1404 | + 'UG326' => __('Lamwo', 'invoicing'), |
|
| 1405 | + 'UG307' => __('Lira', 'invoicing'), |
|
| 1406 | + 'UG229' => __('Luuka', 'invoicing'), |
|
| 1407 | + 'UG104' => __('Luwero', 'invoicing'), |
|
| 1408 | + 'UG124' => __('Lwengo', 'invoicing'), |
|
| 1409 | + 'UG114' => __('Lyantonde', 'invoicing'), |
|
| 1410 | + 'UG223' => __('Manafwa', 'invoicing'), |
|
| 1411 | + 'UG320' => __('Maracha', 'invoicing'), |
|
| 1412 | + 'UG105' => __('Masaka', 'invoicing'), |
|
| 1413 | + 'UG409' => __('Masindi', 'invoicing'), |
|
| 1414 | + 'UG214' => __('Mayuge', 'invoicing'), |
|
| 1415 | + 'UG209' => __('Mbale', 'invoicing'), |
|
| 1416 | + 'UG410' => __('Mbarara', 'invoicing'), |
|
| 1417 | + 'UG423' => __('Mitooma', 'invoicing'), |
|
| 1418 | + 'UG115' => __('Mityana', 'invoicing'), |
|
| 1419 | + 'UG308' => __('Moroto', 'invoicing'), |
|
| 1420 | + 'UG309' => __('Moyo', 'invoicing'), |
|
| 1421 | + 'UG106' => __('Mpigi', 'invoicing'), |
|
| 1422 | + 'UG107' => __('Mubende', 'invoicing'), |
|
| 1423 | + 'UG108' => __('Mukono', 'invoicing'), |
|
| 1424 | + 'UG334' => __('Nabilatuk', 'invoicing'), |
|
| 1425 | + 'UG311' => __('Nakapiripirit', 'invoicing'), |
|
| 1426 | + 'UG116' => __('Nakaseke', 'invoicing'), |
|
| 1427 | + 'UG109' => __('Nakasongola', 'invoicing'), |
|
| 1428 | + 'UG230' => __('Namayingo', 'invoicing'), |
|
| 1429 | + 'UG234' => __('Namisindwa', 'invoicing'), |
|
| 1430 | + 'UG224' => __('Namutumba', 'invoicing'), |
|
| 1431 | + 'UG327' => __('Napak', 'invoicing'), |
|
| 1432 | + 'UG310' => __('Nebbi', 'invoicing'), |
|
| 1433 | + 'UG231' => __('Ngora', 'invoicing'), |
|
| 1434 | + 'UG424' => __('Ntoroko', 'invoicing'), |
|
| 1435 | + 'UG411' => __('Ntungamo', 'invoicing'), |
|
| 1436 | + 'UG328' => __('Nwoya', 'invoicing'), |
|
| 1437 | + 'UG331' => __('Omoro', 'invoicing'), |
|
| 1438 | + 'UG329' => __('Otuke', 'invoicing'), |
|
| 1439 | + 'UG321' => __('Oyam', 'invoicing'), |
|
| 1440 | + 'UG312' => __('Pader', 'invoicing'), |
|
| 1441 | + 'UG332' => __('Pakwach', 'invoicing'), |
|
| 1442 | + 'UG210' => __('Pallisa', 'invoicing'), |
|
| 1443 | + 'UG110' => __('Rakai', 'invoicing'), |
|
| 1444 | + 'UG429' => __('Rubanda', 'invoicing'), |
|
| 1445 | + 'UG425' => __('Rubirizi', 'invoicing'), |
|
| 1446 | + 'UG431' => __('Rukiga', 'invoicing'), |
|
| 1447 | + 'UG412' => __('Rukungiri', 'invoicing'), |
|
| 1448 | + 'UG111' => __('Sembabule', 'invoicing'), |
|
| 1449 | + 'UG232' => __('Serere', 'invoicing'), |
|
| 1450 | + 'UG426' => __('Sheema', 'invoicing'), |
|
| 1451 | + 'UG215' => __('Sironko', 'invoicing'), |
|
| 1452 | + 'UG211' => __('Soroti', 'invoicing'), |
|
| 1453 | + 'UG212' => __('Tororo', 'invoicing'), |
|
| 1454 | + 'UG113' => __('Wakiso', 'invoicing'), |
|
| 1455 | + 'UG313' => __('Yumbe', 'invoicing'), |
|
| 1456 | + 'UG330' => __('Zombo', 'invoicing'), |
|
| 1457 | 1457 | ), |
| 1458 | 1458 | 'UM' => array( |
| 1459 | - '81' => __( 'Baker Island', 'invoicing' ), |
|
| 1460 | - '84' => __( 'Howland Island', 'invoicing' ), |
|
| 1461 | - '86' => __( 'Jarvis Island', 'invoicing' ), |
|
| 1462 | - '67' => __( 'Johnston Atoll', 'invoicing' ), |
|
| 1463 | - '89' => __( 'Kingman Reef', 'invoicing' ), |
|
| 1464 | - '71' => __( 'Midway Atoll', 'invoicing' ), |
|
| 1465 | - '76' => __( 'Navassa Island', 'invoicing' ), |
|
| 1466 | - '95' => __( 'Palmyra Atoll', 'invoicing' ), |
|
| 1467 | - '79' => __( 'Wake Island', 'invoicing' ), |
|
| 1459 | + '81' => __('Baker Island', 'invoicing'), |
|
| 1460 | + '84' => __('Howland Island', 'invoicing'), |
|
| 1461 | + '86' => __('Jarvis Island', 'invoicing'), |
|
| 1462 | + '67' => __('Johnston Atoll', 'invoicing'), |
|
| 1463 | + '89' => __('Kingman Reef', 'invoicing'), |
|
| 1464 | + '71' => __('Midway Atoll', 'invoicing'), |
|
| 1465 | + '76' => __('Navassa Island', 'invoicing'), |
|
| 1466 | + '95' => __('Palmyra Atoll', 'invoicing'), |
|
| 1467 | + '79' => __('Wake Island', 'invoicing'), |
|
| 1468 | 1468 | ), |
| 1469 | 1469 | 'US' => array( // United States. |
| 1470 | - 'AL' => __( 'Alabama', 'invoicing' ), |
|
| 1471 | - 'AK' => __( 'Alaska', 'invoicing' ), |
|
| 1472 | - 'AZ' => __( 'Arizona', 'invoicing' ), |
|
| 1473 | - 'AR' => __( 'Arkansas', 'invoicing' ), |
|
| 1474 | - 'CA' => __( 'California', 'invoicing' ), |
|
| 1475 | - 'CO' => __( 'Colorado', 'invoicing' ), |
|
| 1476 | - 'CT' => __( 'Connecticut', 'invoicing' ), |
|
| 1477 | - 'DE' => __( 'Delaware', 'invoicing' ), |
|
| 1478 | - 'DC' => __( 'District Of Columbia', 'invoicing' ), |
|
| 1479 | - 'FL' => __( 'Florida', 'invoicing' ), |
|
| 1480 | - 'GA' => _x( 'Georgia', 'US state of Georgia', 'invoicing' ), |
|
| 1481 | - 'HI' => __( 'Hawaii', 'invoicing' ), |
|
| 1482 | - 'ID' => __( 'Idaho', 'invoicing' ), |
|
| 1483 | - 'IL' => __( 'Illinois', 'invoicing' ), |
|
| 1484 | - 'IN' => __( 'Indiana', 'invoicing' ), |
|
| 1485 | - 'IA' => __( 'Iowa', 'invoicing' ), |
|
| 1486 | - 'KS' => __( 'Kansas', 'invoicing' ), |
|
| 1487 | - 'KY' => __( 'Kentucky', 'invoicing' ), |
|
| 1488 | - 'LA' => __( 'Louisiana', 'invoicing' ), |
|
| 1489 | - 'ME' => __( 'Maine', 'invoicing' ), |
|
| 1490 | - 'MD' => __( 'Maryland', 'invoicing' ), |
|
| 1491 | - 'MA' => __( 'Massachusetts', 'invoicing' ), |
|
| 1492 | - 'MI' => __( 'Michigan', 'invoicing' ), |
|
| 1493 | - 'MN' => __( 'Minnesota', 'invoicing' ), |
|
| 1494 | - 'MS' => __( 'Mississippi', 'invoicing' ), |
|
| 1495 | - 'MO' => __( 'Missouri', 'invoicing' ), |
|
| 1496 | - 'MT' => __( 'Montana', 'invoicing' ), |
|
| 1497 | - 'NE' => __( 'Nebraska', 'invoicing' ), |
|
| 1498 | - 'NV' => __( 'Nevada', 'invoicing' ), |
|
| 1499 | - 'NH' => __( 'New Hampshire', 'invoicing' ), |
|
| 1500 | - 'NJ' => __( 'New Jersey', 'invoicing' ), |
|
| 1501 | - 'NM' => __( 'New Mexico', 'invoicing' ), |
|
| 1502 | - 'NY' => __( 'New York', 'invoicing' ), |
|
| 1503 | - 'NC' => __( 'North Carolina', 'invoicing' ), |
|
| 1504 | - 'ND' => __( 'North Dakota', 'invoicing' ), |
|
| 1505 | - 'OH' => __( 'Ohio', 'invoicing' ), |
|
| 1506 | - 'OK' => __( 'Oklahoma', 'invoicing' ), |
|
| 1507 | - 'OR' => __( 'Oregon', 'invoicing' ), |
|
| 1508 | - 'PA' => __( 'Pennsylvania', 'invoicing' ), |
|
| 1509 | - 'RI' => __( 'Rhode Island', 'invoicing' ), |
|
| 1510 | - 'SC' => __( 'South Carolina', 'invoicing' ), |
|
| 1511 | - 'SD' => __( 'South Dakota', 'invoicing' ), |
|
| 1512 | - 'TN' => __( 'Tennessee', 'invoicing' ), |
|
| 1513 | - 'TX' => __( 'Texas', 'invoicing' ), |
|
| 1514 | - 'UT' => __( 'Utah', 'invoicing' ), |
|
| 1515 | - 'VT' => __( 'Vermont', 'invoicing' ), |
|
| 1516 | - 'VA' => __( 'Virginia', 'invoicing' ), |
|
| 1517 | - 'WA' => __( 'Washington', 'invoicing' ), |
|
| 1518 | - 'WV' => __( 'West Virginia', 'invoicing' ), |
|
| 1519 | - 'WI' => __( 'Wisconsin', 'invoicing' ), |
|
| 1520 | - 'WY' => __( 'Wyoming', 'invoicing' ), |
|
| 1521 | - 'AA' => __( 'Armed Forces (AA)', 'invoicing' ), |
|
| 1522 | - 'AE' => __( 'Armed Forces (AE)', 'invoicing' ), |
|
| 1523 | - 'AP' => __( 'Armed Forces (AP)', 'invoicing' ), |
|
| 1470 | + 'AL' => __('Alabama', 'invoicing'), |
|
| 1471 | + 'AK' => __('Alaska', 'invoicing'), |
|
| 1472 | + 'AZ' => __('Arizona', 'invoicing'), |
|
| 1473 | + 'AR' => __('Arkansas', 'invoicing'), |
|
| 1474 | + 'CA' => __('California', 'invoicing'), |
|
| 1475 | + 'CO' => __('Colorado', 'invoicing'), |
|
| 1476 | + 'CT' => __('Connecticut', 'invoicing'), |
|
| 1477 | + 'DE' => __('Delaware', 'invoicing'), |
|
| 1478 | + 'DC' => __('District Of Columbia', 'invoicing'), |
|
| 1479 | + 'FL' => __('Florida', 'invoicing'), |
|
| 1480 | + 'GA' => _x('Georgia', 'US state of Georgia', 'invoicing'), |
|
| 1481 | + 'HI' => __('Hawaii', 'invoicing'), |
|
| 1482 | + 'ID' => __('Idaho', 'invoicing'), |
|
| 1483 | + 'IL' => __('Illinois', 'invoicing'), |
|
| 1484 | + 'IN' => __('Indiana', 'invoicing'), |
|
| 1485 | + 'IA' => __('Iowa', 'invoicing'), |
|
| 1486 | + 'KS' => __('Kansas', 'invoicing'), |
|
| 1487 | + 'KY' => __('Kentucky', 'invoicing'), |
|
| 1488 | + 'LA' => __('Louisiana', 'invoicing'), |
|
| 1489 | + 'ME' => __('Maine', 'invoicing'), |
|
| 1490 | + 'MD' => __('Maryland', 'invoicing'), |
|
| 1491 | + 'MA' => __('Massachusetts', 'invoicing'), |
|
| 1492 | + 'MI' => __('Michigan', 'invoicing'), |
|
| 1493 | + 'MN' => __('Minnesota', 'invoicing'), |
|
| 1494 | + 'MS' => __('Mississippi', 'invoicing'), |
|
| 1495 | + 'MO' => __('Missouri', 'invoicing'), |
|
| 1496 | + 'MT' => __('Montana', 'invoicing'), |
|
| 1497 | + 'NE' => __('Nebraska', 'invoicing'), |
|
| 1498 | + 'NV' => __('Nevada', 'invoicing'), |
|
| 1499 | + 'NH' => __('New Hampshire', 'invoicing'), |
|
| 1500 | + 'NJ' => __('New Jersey', 'invoicing'), |
|
| 1501 | + 'NM' => __('New Mexico', 'invoicing'), |
|
| 1502 | + 'NY' => __('New York', 'invoicing'), |
|
| 1503 | + 'NC' => __('North Carolina', 'invoicing'), |
|
| 1504 | + 'ND' => __('North Dakota', 'invoicing'), |
|
| 1505 | + 'OH' => __('Ohio', 'invoicing'), |
|
| 1506 | + 'OK' => __('Oklahoma', 'invoicing'), |
|
| 1507 | + 'OR' => __('Oregon', 'invoicing'), |
|
| 1508 | + 'PA' => __('Pennsylvania', 'invoicing'), |
|
| 1509 | + 'RI' => __('Rhode Island', 'invoicing'), |
|
| 1510 | + 'SC' => __('South Carolina', 'invoicing'), |
|
| 1511 | + 'SD' => __('South Dakota', 'invoicing'), |
|
| 1512 | + 'TN' => __('Tennessee', 'invoicing'), |
|
| 1513 | + 'TX' => __('Texas', 'invoicing'), |
|
| 1514 | + 'UT' => __('Utah', 'invoicing'), |
|
| 1515 | + 'VT' => __('Vermont', 'invoicing'), |
|
| 1516 | + 'VA' => __('Virginia', 'invoicing'), |
|
| 1517 | + 'WA' => __('Washington', 'invoicing'), |
|
| 1518 | + 'WV' => __('West Virginia', 'invoicing'), |
|
| 1519 | + 'WI' => __('Wisconsin', 'invoicing'), |
|
| 1520 | + 'WY' => __('Wyoming', 'invoicing'), |
|
| 1521 | + 'AA' => __('Armed Forces (AA)', 'invoicing'), |
|
| 1522 | + 'AE' => __('Armed Forces (AE)', 'invoicing'), |
|
| 1523 | + 'AP' => __('Armed Forces (AP)', 'invoicing'), |
|
| 1524 | 1524 | ), |
| 1525 | 1525 | 'VN' => array(), |
| 1526 | 1526 | 'YT' => array(), |
| 1527 | 1527 | 'ZA' => array( // South African states. |
| 1528 | - 'EC' => __( 'Eastern Cape', 'invoicing' ), |
|
| 1529 | - 'FS' => __( 'Free State', 'invoicing' ), |
|
| 1530 | - 'GP' => __( 'Gauteng', 'invoicing' ), |
|
| 1531 | - 'KZN' => __( 'KwaZulu-Natal', 'invoicing' ), |
|
| 1532 | - 'LP' => __( 'Limpopo', 'invoicing' ), |
|
| 1533 | - 'MP' => __( 'Mpumalanga', 'invoicing' ), |
|
| 1534 | - 'NC' => __( 'Northern Cape', 'invoicing' ), |
|
| 1535 | - 'NW' => __( 'North West', 'invoicing' ), |
|
| 1536 | - 'WC' => __( 'Western Cape', 'invoicing' ), |
|
| 1528 | + 'EC' => __('Eastern Cape', 'invoicing'), |
|
| 1529 | + 'FS' => __('Free State', 'invoicing'), |
|
| 1530 | + 'GP' => __('Gauteng', 'invoicing'), |
|
| 1531 | + 'KZN' => __('KwaZulu-Natal', 'invoicing'), |
|
| 1532 | + 'LP' => __('Limpopo', 'invoicing'), |
|
| 1533 | + 'MP' => __('Mpumalanga', 'invoicing'), |
|
| 1534 | + 'NC' => __('Northern Cape', 'invoicing'), |
|
| 1535 | + 'NW' => __('North West', 'invoicing'), |
|
| 1536 | + 'WC' => __('Western Cape', 'invoicing'), |
|
| 1537 | 1537 | ), |
| 1538 | 1538 | 'ZM' => array( // Zambia's Provinces. Ref: https://en.wikipedia.org/wiki/ISO_3166-2:ZM. |
| 1539 | - 'ZM-01' => __( 'Western', 'invoicing' ), |
|
| 1540 | - 'ZM-02' => __( 'Central', 'invoicing' ), |
|
| 1541 | - 'ZM-03' => __( 'Eastern', 'invoicing' ), |
|
| 1542 | - 'ZM-04' => __( 'Luapula', 'invoicing' ), |
|
| 1543 | - 'ZM-05' => __( 'Northern', 'invoicing' ), |
|
| 1544 | - 'ZM-06' => __( 'North-Western', 'invoicing' ), |
|
| 1545 | - 'ZM-07' => __( 'Southern', 'invoicing' ), |
|
| 1546 | - 'ZM-08' => __( 'Copperbelt', 'invoicing' ), |
|
| 1547 | - 'ZM-09' => __( 'Lusaka', 'invoicing' ), |
|
| 1548 | - 'ZM-10' => __( 'Muchinga', 'invoicing' ), |
|
| 1539 | + 'ZM-01' => __('Western', 'invoicing'), |
|
| 1540 | + 'ZM-02' => __('Central', 'invoicing'), |
|
| 1541 | + 'ZM-03' => __('Eastern', 'invoicing'), |
|
| 1542 | + 'ZM-04' => __('Luapula', 'invoicing'), |
|
| 1543 | + 'ZM-05' => __('Northern', 'invoicing'), |
|
| 1544 | + 'ZM-06' => __('North-Western', 'invoicing'), |
|
| 1545 | + 'ZM-07' => __('Southern', 'invoicing'), |
|
| 1546 | + 'ZM-08' => __('Copperbelt', 'invoicing'), |
|
| 1547 | + 'ZM-09' => __('Lusaka', 'invoicing'), |
|
| 1548 | + 'ZM-10' => __('Muchinga', 'invoicing'), |
|
| 1549 | 1549 | ), |
| 1550 | 1550 | ); |
@@ -10,261 +10,261 @@ |
||
| 10 | 10 | defined( 'ABSPATH' ) || exit; |
| 11 | 11 | |
| 12 | 12 | return array( |
| 13 | - 'BD' => '+880', |
|
| 14 | - 'BE' => '+32', |
|
| 15 | - 'BF' => '+226', |
|
| 16 | - 'BG' => '+359', |
|
| 17 | - 'BA' => '+387', |
|
| 18 | - 'BB' => '+1246', |
|
| 19 | - 'WF' => '+681', |
|
| 20 | - 'BL' => '+590', |
|
| 21 | - 'BM' => '+1441', |
|
| 22 | - 'BN' => '+673', |
|
| 23 | - 'BO' => '+591', |
|
| 24 | - 'BH' => '+973', |
|
| 25 | - 'BI' => '+257', |
|
| 26 | - 'BJ' => '+229', |
|
| 27 | - 'BT' => '+975', |
|
| 28 | - 'JM' => '+1876', |
|
| 29 | - 'BV' => '', |
|
| 30 | - 'BW' => '+267', |
|
| 31 | - 'WS' => '+685', |
|
| 32 | - 'BQ' => '+599', |
|
| 33 | - 'BR' => '+55', |
|
| 34 | - 'BS' => '+1242', |
|
| 35 | - 'JE' => '+441534', |
|
| 36 | - 'BY' => '+375', |
|
| 37 | - 'BZ' => '+501', |
|
| 38 | - 'RU' => '+7', |
|
| 39 | - 'RW' => '+250', |
|
| 40 | - 'RS' => '+381', |
|
| 41 | - 'TL' => '+670', |
|
| 42 | - 'RE' => '+262', |
|
| 43 | - 'TM' => '+993', |
|
| 44 | - 'TJ' => '+992', |
|
| 45 | - 'RO' => '+40', |
|
| 46 | - 'TK' => '+690', |
|
| 47 | - 'GW' => '+245', |
|
| 48 | - 'GU' => '+1671', |
|
| 49 | - 'GT' => '+502', |
|
| 50 | - 'GS' => '', |
|
| 51 | - 'GR' => '+30', |
|
| 52 | - 'GQ' => '+240', |
|
| 53 | - 'GP' => '+590', |
|
| 54 | - 'JP' => '+81', |
|
| 55 | - 'GY' => '+592', |
|
| 56 | - 'GG' => '+441481', |
|
| 57 | - 'GF' => '+594', |
|
| 58 | - 'GE' => '+995', |
|
| 59 | - 'GD' => '+1473', |
|
| 60 | - 'GB' => '+44', |
|
| 61 | - 'GA' => '+241', |
|
| 62 | - 'SV' => '+503', |
|
| 63 | - 'GN' => '+224', |
|
| 64 | - 'GM' => '+220', |
|
| 65 | - 'GL' => '+299', |
|
| 66 | - 'GI' => '+350', |
|
| 67 | - 'GH' => '+233', |
|
| 68 | - 'OM' => '+968', |
|
| 69 | - 'TN' => '+216', |
|
| 70 | - 'JO' => '+962', |
|
| 71 | - 'HR' => '+385', |
|
| 72 | - 'HT' => '+509', |
|
| 73 | - 'HU' => '+36', |
|
| 74 | - 'HK' => '+852', |
|
| 75 | - 'HN' => '+504', |
|
| 76 | - 'HM' => '', |
|
| 77 | - 'VE' => '+58', |
|
| 78 | - 'PR' => array( |
|
| 79 | - '+1787', |
|
| 80 | - '+1939', |
|
| 81 | - ), |
|
| 82 | - 'PS' => '+970', |
|
| 83 | - 'PW' => '+680', |
|
| 84 | - 'PT' => '+351', |
|
| 85 | - 'SJ' => '+47', |
|
| 86 | - 'PY' => '+595', |
|
| 87 | - 'IQ' => '+964', |
|
| 88 | - 'PA' => '+507', |
|
| 89 | - 'PF' => '+689', |
|
| 90 | - 'PG' => '+675', |
|
| 91 | - 'PE' => '+51', |
|
| 92 | - 'PK' => '+92', |
|
| 93 | - 'PH' => '+63', |
|
| 94 | - 'PN' => '+870', |
|
| 95 | - 'PL' => '+48', |
|
| 96 | - 'PM' => '+508', |
|
| 97 | - 'ZM' => '+260', |
|
| 98 | - 'EH' => '+212', |
|
| 99 | - 'EE' => '+372', |
|
| 100 | - 'EG' => '+20', |
|
| 101 | - 'ZA' => '+27', |
|
| 102 | - 'EC' => '+593', |
|
| 103 | - 'IT' => '+39', |
|
| 104 | - 'VN' => '+84', |
|
| 105 | - 'SB' => '+677', |
|
| 106 | - 'ET' => '+251', |
|
| 107 | - 'SO' => '+252', |
|
| 108 | - 'ZW' => '+263', |
|
| 109 | - 'SA' => '+966', |
|
| 110 | - 'ES' => '+34', |
|
| 111 | - 'ER' => '+291', |
|
| 112 | - 'ME' => '+382', |
|
| 113 | - 'MD' => '+373', |
|
| 114 | - 'MG' => '+261', |
|
| 115 | - 'MF' => '+590', |
|
| 116 | - 'MA' => '+212', |
|
| 117 | - 'MC' => '+377', |
|
| 118 | - 'UZ' => '+998', |
|
| 119 | - 'MM' => '+95', |
|
| 120 | - 'ML' => '+223', |
|
| 121 | - 'MO' => '+853', |
|
| 122 | - 'MN' => '+976', |
|
| 123 | - 'MH' => '+692', |
|
| 124 | - 'MK' => '+389', |
|
| 125 | - 'MU' => '+230', |
|
| 126 | - 'MT' => '+356', |
|
| 127 | - 'MW' => '+265', |
|
| 128 | - 'MV' => '+960', |
|
| 129 | - 'MQ' => '+596', |
|
| 130 | - 'MP' => '+1670', |
|
| 131 | - 'MS' => '+1664', |
|
| 132 | - 'MR' => '+222', |
|
| 133 | - 'IM' => '+441624', |
|
| 134 | - 'UG' => '+256', |
|
| 135 | - 'TZ' => '+255', |
|
| 136 | - 'MY' => '+60', |
|
| 137 | - 'MX' => '+52', |
|
| 138 | - 'IL' => '+972', |
|
| 139 | - 'FR' => '+33', |
|
| 140 | - 'IO' => '+246', |
|
| 141 | - 'SH' => '+290', |
|
| 142 | - 'FI' => '+358', |
|
| 143 | - 'FJ' => '+679', |
|
| 144 | - 'FK' => '+500', |
|
| 145 | - 'FM' => '+691', |
|
| 146 | - 'FO' => '+298', |
|
| 147 | - 'NI' => '+505', |
|
| 148 | - 'NL' => '+31', |
|
| 149 | - 'NO' => '+47', |
|
| 150 | - 'NA' => '+264', |
|
| 151 | - 'VU' => '+678', |
|
| 152 | - 'NC' => '+687', |
|
| 153 | - 'NE' => '+227', |
|
| 154 | - 'NF' => '+672', |
|
| 155 | - 'NG' => '+234', |
|
| 156 | - 'NZ' => '+64', |
|
| 157 | - 'NP' => '+977', |
|
| 158 | - 'NR' => '+674', |
|
| 159 | - 'NU' => '+683', |
|
| 160 | - 'CK' => '+682', |
|
| 161 | - 'XK' => '', |
|
| 162 | - 'CI' => '+225', |
|
| 163 | - 'CH' => '+41', |
|
| 164 | - 'CO' => '+57', |
|
| 165 | - 'CN' => '+86', |
|
| 166 | - 'CM' => '+237', |
|
| 167 | - 'CL' => '+56', |
|
| 168 | - 'CC' => '+61', |
|
| 169 | - 'CA' => '+1', |
|
| 170 | - 'CG' => '+242', |
|
| 171 | - 'CF' => '+236', |
|
| 172 | - 'CD' => '+243', |
|
| 173 | - 'CZ' => '+420', |
|
| 174 | - 'CY' => '+357', |
|
| 175 | - 'CX' => '+61', |
|
| 176 | - 'CR' => '+506', |
|
| 177 | - 'CW' => '+599', |
|
| 178 | - 'CV' => '+238', |
|
| 179 | - 'CU' => '+53', |
|
| 180 | - 'SZ' => '+268', |
|
| 181 | - 'SY' => '+963', |
|
| 182 | - 'SX' => '+599', |
|
| 183 | - 'KG' => '+996', |
|
| 184 | - 'KE' => '+254', |
|
| 185 | - 'SS' => '+211', |
|
| 186 | - 'SR' => '+597', |
|
| 187 | - 'KI' => '+686', |
|
| 188 | - 'KH' => '+855', |
|
| 189 | - 'KN' => '+1869', |
|
| 190 | - 'KM' => '+269', |
|
| 191 | - 'ST' => '+239', |
|
| 192 | - 'SK' => '+421', |
|
| 193 | - 'KR' => '+82', |
|
| 194 | - 'SI' => '+386', |
|
| 195 | - 'KP' => '+850', |
|
| 196 | - 'KW' => '+965', |
|
| 197 | - 'SN' => '+221', |
|
| 198 | - 'SM' => '+378', |
|
| 199 | - 'SL' => '+232', |
|
| 200 | - 'SC' => '+248', |
|
| 201 | - 'KZ' => '+7', |
|
| 202 | - 'KY' => '+1345', |
|
| 203 | - 'SG' => '+65', |
|
| 204 | - 'SE' => '+46', |
|
| 205 | - 'SD' => '+249', |
|
| 206 | - 'DO' => array( |
|
| 207 | - '+1809', |
|
| 208 | - '+1829', |
|
| 209 | - '+1849', |
|
| 210 | - ), |
|
| 211 | - 'DM' => '+1767', |
|
| 212 | - 'DJ' => '+253', |
|
| 213 | - 'DK' => '+45', |
|
| 214 | - 'VG' => '+1284', |
|
| 215 | - 'DE' => '+49', |
|
| 216 | - 'YE' => '+967', |
|
| 217 | - 'DZ' => '+213', |
|
| 218 | - 'US' => '+1', |
|
| 219 | - 'UY' => '+598', |
|
| 220 | - 'YT' => '+262', |
|
| 221 | - 'UM' => '+1', |
|
| 222 | - 'LB' => '+961', |
|
| 223 | - 'LC' => '+1758', |
|
| 224 | - 'LA' => '+856', |
|
| 225 | - 'TV' => '+688', |
|
| 226 | - 'TW' => '+886', |
|
| 227 | - 'TT' => '+1868', |
|
| 228 | - 'TR' => '+90', |
|
| 229 | - 'LK' => '+94', |
|
| 230 | - 'LI' => '+423', |
|
| 231 | - 'LV' => '+371', |
|
| 232 | - 'TO' => '+676', |
|
| 233 | - 'LT' => '+370', |
|
| 234 | - 'LU' => '+352', |
|
| 235 | - 'LR' => '+231', |
|
| 236 | - 'LS' => '+266', |
|
| 237 | - 'TH' => '+66', |
|
| 238 | - 'TF' => '', |
|
| 239 | - 'TG' => '+228', |
|
| 240 | - 'TD' => '+235', |
|
| 241 | - 'TC' => '+1649', |
|
| 242 | - 'LY' => '+218', |
|
| 243 | - 'VA' => '+379', |
|
| 244 | - 'VC' => '+1784', |
|
| 245 | - 'AE' => '+971', |
|
| 246 | - 'AD' => '+376', |
|
| 247 | - 'AG' => '+1268', |
|
| 248 | - 'AF' => '+93', |
|
| 249 | - 'AI' => '+1264', |
|
| 250 | - 'VI' => '+1340', |
|
| 251 | - 'IS' => '+354', |
|
| 252 | - 'IR' => '+98', |
|
| 253 | - 'AM' => '+374', |
|
| 254 | - 'AL' => '+355', |
|
| 255 | - 'AO' => '+244', |
|
| 256 | - 'AQ' => '', |
|
| 257 | - 'AS' => '+1684', |
|
| 258 | - 'AR' => '+54', |
|
| 259 | - 'AU' => '+61', |
|
| 260 | - 'AT' => '+43', |
|
| 261 | - 'AW' => '+297', |
|
| 262 | - 'IN' => '+91', |
|
| 263 | - 'AX' => '+35818', |
|
| 264 | - 'AZ' => '+994', |
|
| 265 | - 'IE' => '+353', |
|
| 266 | - 'ID' => '+62', |
|
| 267 | - 'UA' => '+380', |
|
| 268 | - 'QA' => '+974', |
|
| 269 | - 'MZ' => '+258', |
|
| 13 | + 'BD' => '+880', |
|
| 14 | + 'BE' => '+32', |
|
| 15 | + 'BF' => '+226', |
|
| 16 | + 'BG' => '+359', |
|
| 17 | + 'BA' => '+387', |
|
| 18 | + 'BB' => '+1246', |
|
| 19 | + 'WF' => '+681', |
|
| 20 | + 'BL' => '+590', |
|
| 21 | + 'BM' => '+1441', |
|
| 22 | + 'BN' => '+673', |
|
| 23 | + 'BO' => '+591', |
|
| 24 | + 'BH' => '+973', |
|
| 25 | + 'BI' => '+257', |
|
| 26 | + 'BJ' => '+229', |
|
| 27 | + 'BT' => '+975', |
|
| 28 | + 'JM' => '+1876', |
|
| 29 | + 'BV' => '', |
|
| 30 | + 'BW' => '+267', |
|
| 31 | + 'WS' => '+685', |
|
| 32 | + 'BQ' => '+599', |
|
| 33 | + 'BR' => '+55', |
|
| 34 | + 'BS' => '+1242', |
|
| 35 | + 'JE' => '+441534', |
|
| 36 | + 'BY' => '+375', |
|
| 37 | + 'BZ' => '+501', |
|
| 38 | + 'RU' => '+7', |
|
| 39 | + 'RW' => '+250', |
|
| 40 | + 'RS' => '+381', |
|
| 41 | + 'TL' => '+670', |
|
| 42 | + 'RE' => '+262', |
|
| 43 | + 'TM' => '+993', |
|
| 44 | + 'TJ' => '+992', |
|
| 45 | + 'RO' => '+40', |
|
| 46 | + 'TK' => '+690', |
|
| 47 | + 'GW' => '+245', |
|
| 48 | + 'GU' => '+1671', |
|
| 49 | + 'GT' => '+502', |
|
| 50 | + 'GS' => '', |
|
| 51 | + 'GR' => '+30', |
|
| 52 | + 'GQ' => '+240', |
|
| 53 | + 'GP' => '+590', |
|
| 54 | + 'JP' => '+81', |
|
| 55 | + 'GY' => '+592', |
|
| 56 | + 'GG' => '+441481', |
|
| 57 | + 'GF' => '+594', |
|
| 58 | + 'GE' => '+995', |
|
| 59 | + 'GD' => '+1473', |
|
| 60 | + 'GB' => '+44', |
|
| 61 | + 'GA' => '+241', |
|
| 62 | + 'SV' => '+503', |
|
| 63 | + 'GN' => '+224', |
|
| 64 | + 'GM' => '+220', |
|
| 65 | + 'GL' => '+299', |
|
| 66 | + 'GI' => '+350', |
|
| 67 | + 'GH' => '+233', |
|
| 68 | + 'OM' => '+968', |
|
| 69 | + 'TN' => '+216', |
|
| 70 | + 'JO' => '+962', |
|
| 71 | + 'HR' => '+385', |
|
| 72 | + 'HT' => '+509', |
|
| 73 | + 'HU' => '+36', |
|
| 74 | + 'HK' => '+852', |
|
| 75 | + 'HN' => '+504', |
|
| 76 | + 'HM' => '', |
|
| 77 | + 'VE' => '+58', |
|
| 78 | + 'PR' => array( |
|
| 79 | + '+1787', |
|
| 80 | + '+1939', |
|
| 81 | + ), |
|
| 82 | + 'PS' => '+970', |
|
| 83 | + 'PW' => '+680', |
|
| 84 | + 'PT' => '+351', |
|
| 85 | + 'SJ' => '+47', |
|
| 86 | + 'PY' => '+595', |
|
| 87 | + 'IQ' => '+964', |
|
| 88 | + 'PA' => '+507', |
|
| 89 | + 'PF' => '+689', |
|
| 90 | + 'PG' => '+675', |
|
| 91 | + 'PE' => '+51', |
|
| 92 | + 'PK' => '+92', |
|
| 93 | + 'PH' => '+63', |
|
| 94 | + 'PN' => '+870', |
|
| 95 | + 'PL' => '+48', |
|
| 96 | + 'PM' => '+508', |
|
| 97 | + 'ZM' => '+260', |
|
| 98 | + 'EH' => '+212', |
|
| 99 | + 'EE' => '+372', |
|
| 100 | + 'EG' => '+20', |
|
| 101 | + 'ZA' => '+27', |
|
| 102 | + 'EC' => '+593', |
|
| 103 | + 'IT' => '+39', |
|
| 104 | + 'VN' => '+84', |
|
| 105 | + 'SB' => '+677', |
|
| 106 | + 'ET' => '+251', |
|
| 107 | + 'SO' => '+252', |
|
| 108 | + 'ZW' => '+263', |
|
| 109 | + 'SA' => '+966', |
|
| 110 | + 'ES' => '+34', |
|
| 111 | + 'ER' => '+291', |
|
| 112 | + 'ME' => '+382', |
|
| 113 | + 'MD' => '+373', |
|
| 114 | + 'MG' => '+261', |
|
| 115 | + 'MF' => '+590', |
|
| 116 | + 'MA' => '+212', |
|
| 117 | + 'MC' => '+377', |
|
| 118 | + 'UZ' => '+998', |
|
| 119 | + 'MM' => '+95', |
|
| 120 | + 'ML' => '+223', |
|
| 121 | + 'MO' => '+853', |
|
| 122 | + 'MN' => '+976', |
|
| 123 | + 'MH' => '+692', |
|
| 124 | + 'MK' => '+389', |
|
| 125 | + 'MU' => '+230', |
|
| 126 | + 'MT' => '+356', |
|
| 127 | + 'MW' => '+265', |
|
| 128 | + 'MV' => '+960', |
|
| 129 | + 'MQ' => '+596', |
|
| 130 | + 'MP' => '+1670', |
|
| 131 | + 'MS' => '+1664', |
|
| 132 | + 'MR' => '+222', |
|
| 133 | + 'IM' => '+441624', |
|
| 134 | + 'UG' => '+256', |
|
| 135 | + 'TZ' => '+255', |
|
| 136 | + 'MY' => '+60', |
|
| 137 | + 'MX' => '+52', |
|
| 138 | + 'IL' => '+972', |
|
| 139 | + 'FR' => '+33', |
|
| 140 | + 'IO' => '+246', |
|
| 141 | + 'SH' => '+290', |
|
| 142 | + 'FI' => '+358', |
|
| 143 | + 'FJ' => '+679', |
|
| 144 | + 'FK' => '+500', |
|
| 145 | + 'FM' => '+691', |
|
| 146 | + 'FO' => '+298', |
|
| 147 | + 'NI' => '+505', |
|
| 148 | + 'NL' => '+31', |
|
| 149 | + 'NO' => '+47', |
|
| 150 | + 'NA' => '+264', |
|
| 151 | + 'VU' => '+678', |
|
| 152 | + 'NC' => '+687', |
|
| 153 | + 'NE' => '+227', |
|
| 154 | + 'NF' => '+672', |
|
| 155 | + 'NG' => '+234', |
|
| 156 | + 'NZ' => '+64', |
|
| 157 | + 'NP' => '+977', |
|
| 158 | + 'NR' => '+674', |
|
| 159 | + 'NU' => '+683', |
|
| 160 | + 'CK' => '+682', |
|
| 161 | + 'XK' => '', |
|
| 162 | + 'CI' => '+225', |
|
| 163 | + 'CH' => '+41', |
|
| 164 | + 'CO' => '+57', |
|
| 165 | + 'CN' => '+86', |
|
| 166 | + 'CM' => '+237', |
|
| 167 | + 'CL' => '+56', |
|
| 168 | + 'CC' => '+61', |
|
| 169 | + 'CA' => '+1', |
|
| 170 | + 'CG' => '+242', |
|
| 171 | + 'CF' => '+236', |
|
| 172 | + 'CD' => '+243', |
|
| 173 | + 'CZ' => '+420', |
|
| 174 | + 'CY' => '+357', |
|
| 175 | + 'CX' => '+61', |
|
| 176 | + 'CR' => '+506', |
|
| 177 | + 'CW' => '+599', |
|
| 178 | + 'CV' => '+238', |
|
| 179 | + 'CU' => '+53', |
|
| 180 | + 'SZ' => '+268', |
|
| 181 | + 'SY' => '+963', |
|
| 182 | + 'SX' => '+599', |
|
| 183 | + 'KG' => '+996', |
|
| 184 | + 'KE' => '+254', |
|
| 185 | + 'SS' => '+211', |
|
| 186 | + 'SR' => '+597', |
|
| 187 | + 'KI' => '+686', |
|
| 188 | + 'KH' => '+855', |
|
| 189 | + 'KN' => '+1869', |
|
| 190 | + 'KM' => '+269', |
|
| 191 | + 'ST' => '+239', |
|
| 192 | + 'SK' => '+421', |
|
| 193 | + 'KR' => '+82', |
|
| 194 | + 'SI' => '+386', |
|
| 195 | + 'KP' => '+850', |
|
| 196 | + 'KW' => '+965', |
|
| 197 | + 'SN' => '+221', |
|
| 198 | + 'SM' => '+378', |
|
| 199 | + 'SL' => '+232', |
|
| 200 | + 'SC' => '+248', |
|
| 201 | + 'KZ' => '+7', |
|
| 202 | + 'KY' => '+1345', |
|
| 203 | + 'SG' => '+65', |
|
| 204 | + 'SE' => '+46', |
|
| 205 | + 'SD' => '+249', |
|
| 206 | + 'DO' => array( |
|
| 207 | + '+1809', |
|
| 208 | + '+1829', |
|
| 209 | + '+1849', |
|
| 210 | + ), |
|
| 211 | + 'DM' => '+1767', |
|
| 212 | + 'DJ' => '+253', |
|
| 213 | + 'DK' => '+45', |
|
| 214 | + 'VG' => '+1284', |
|
| 215 | + 'DE' => '+49', |
|
| 216 | + 'YE' => '+967', |
|
| 217 | + 'DZ' => '+213', |
|
| 218 | + 'US' => '+1', |
|
| 219 | + 'UY' => '+598', |
|
| 220 | + 'YT' => '+262', |
|
| 221 | + 'UM' => '+1', |
|
| 222 | + 'LB' => '+961', |
|
| 223 | + 'LC' => '+1758', |
|
| 224 | + 'LA' => '+856', |
|
| 225 | + 'TV' => '+688', |
|
| 226 | + 'TW' => '+886', |
|
| 227 | + 'TT' => '+1868', |
|
| 228 | + 'TR' => '+90', |
|
| 229 | + 'LK' => '+94', |
|
| 230 | + 'LI' => '+423', |
|
| 231 | + 'LV' => '+371', |
|
| 232 | + 'TO' => '+676', |
|
| 233 | + 'LT' => '+370', |
|
| 234 | + 'LU' => '+352', |
|
| 235 | + 'LR' => '+231', |
|
| 236 | + 'LS' => '+266', |
|
| 237 | + 'TH' => '+66', |
|
| 238 | + 'TF' => '', |
|
| 239 | + 'TG' => '+228', |
|
| 240 | + 'TD' => '+235', |
|
| 241 | + 'TC' => '+1649', |
|
| 242 | + 'LY' => '+218', |
|
| 243 | + 'VA' => '+379', |
|
| 244 | + 'VC' => '+1784', |
|
| 245 | + 'AE' => '+971', |
|
| 246 | + 'AD' => '+376', |
|
| 247 | + 'AG' => '+1268', |
|
| 248 | + 'AF' => '+93', |
|
| 249 | + 'AI' => '+1264', |
|
| 250 | + 'VI' => '+1340', |
|
| 251 | + 'IS' => '+354', |
|
| 252 | + 'IR' => '+98', |
|
| 253 | + 'AM' => '+374', |
|
| 254 | + 'AL' => '+355', |
|
| 255 | + 'AO' => '+244', |
|
| 256 | + 'AQ' => '', |
|
| 257 | + 'AS' => '+1684', |
|
| 258 | + 'AR' => '+54', |
|
| 259 | + 'AU' => '+61', |
|
| 260 | + 'AT' => '+43', |
|
| 261 | + 'AW' => '+297', |
|
| 262 | + 'IN' => '+91', |
|
| 263 | + 'AX' => '+35818', |
|
| 264 | + 'AZ' => '+994', |
|
| 265 | + 'IE' => '+353', |
|
| 266 | + 'ID' => '+62', |
|
| 267 | + 'UA' => '+380', |
|
| 268 | + 'QA' => '+974', |
|
| 269 | + 'MZ' => '+258', |
|
| 270 | 270 | ); |
@@ -7,7 +7,7 @@ |
||
| 7 | 7 | * @package Invoicing/data |
| 8 | 8 | */ |
| 9 | 9 | |
| 10 | -defined( 'ABSPATH' ) || exit; |
|
| 10 | +defined('ABSPATH') || exit; |
|
| 11 | 11 | |
| 12 | 12 | return array( |
| 13 | 13 | 'BD' => '+880', |
@@ -12,256 +12,256 @@ |
||
| 12 | 12 | defined( 'ABSPATH' ) || exit; |
| 13 | 13 | |
| 14 | 14 | return array( |
| 15 | - 'US' => __('United States', 'invoicing'), |
|
| 16 | - 'CA' => __('Canada', 'invoicing'), |
|
| 17 | - 'GB' => __('United Kingdom', 'invoicing'), |
|
| 18 | - 'AF' => __('Afghanistan', 'invoicing'), |
|
| 19 | - 'AX' => __('Aland Islands', 'invoicing'), |
|
| 20 | - 'AL' => __('Albania', 'invoicing'), |
|
| 21 | - 'DZ' => __('Algeria', 'invoicing'), |
|
| 22 | - 'AS' => __('American Samoa', 'invoicing'), |
|
| 23 | - 'AD' => __('Andorra', 'invoicing'), |
|
| 24 | - 'AO' => __('Angola', 'invoicing'), |
|
| 25 | - 'AI' => __('Anguilla', 'invoicing'), |
|
| 26 | - 'AQ' => __('Antarctica', 'invoicing'), |
|
| 27 | - 'AG' => __('Antigua and Barbuda', 'invoicing'), |
|
| 28 | - 'AR' => __('Argentina', 'invoicing'), |
|
| 29 | - 'AM' => __('Armenia', 'invoicing'), |
|
| 30 | - 'AW' => __('Aruba', 'invoicing'), |
|
| 31 | - 'AU' => __('Australia', 'invoicing'), |
|
| 32 | - 'AT' => __('Austria', 'invoicing'), |
|
| 33 | - 'AZ' => __('Azerbaijan', 'invoicing'), |
|
| 34 | - 'BS' => __('Bahamas', 'invoicing'), |
|
| 35 | - 'BH' => __('Bahrain', 'invoicing'), |
|
| 36 | - 'BD' => __('Bangladesh', 'invoicing'), |
|
| 37 | - 'BB' => __('Barbados', 'invoicing'), |
|
| 38 | - 'BY' => __('Belarus', 'invoicing'), |
|
| 39 | - 'BE' => __('Belgium', 'invoicing'), |
|
| 40 | - 'BZ' => __('Belize', 'invoicing'), |
|
| 41 | - 'BJ' => __('Benin', 'invoicing'), |
|
| 42 | - 'BM' => __('Bermuda', 'invoicing'), |
|
| 43 | - 'BT' => __('Bhutan', 'invoicing'), |
|
| 44 | - 'BO' => __('Bolivia', 'invoicing'), |
|
| 45 | - 'BQ' => __('Bonaire, Saint Eustatius and Saba', 'invoicing'), |
|
| 46 | - 'BA' => __('Bosnia and Herzegovina', 'invoicing'), |
|
| 47 | - 'BW' => __('Botswana', 'invoicing'), |
|
| 48 | - 'BV' => __('Bouvet Island', 'invoicing'), |
|
| 49 | - 'BR' => __('Brazil', 'invoicing'), |
|
| 50 | - 'IO' => __('British Indian Ocean Territory', 'invoicing'), |
|
| 51 | - 'BN' => __('Brunei Darrussalam', 'invoicing'), |
|
| 52 | - 'BG' => __('Bulgaria', 'invoicing'), |
|
| 53 | - 'BF' => __('Burkina Faso', 'invoicing'), |
|
| 54 | - 'BI' => __('Burundi', 'invoicing'), |
|
| 55 | - 'KH' => __('Cambodia', 'invoicing'), |
|
| 56 | - 'CM' => __('Cameroon', 'invoicing'), |
|
| 57 | - 'CV' => __('Cape Verde', 'invoicing'), |
|
| 58 | - 'KY' => __('Cayman Islands', 'invoicing'), |
|
| 59 | - 'CF' => __('Central African Republic', 'invoicing'), |
|
| 60 | - 'TD' => __('Chad', 'invoicing'), |
|
| 61 | - 'CL' => __('Chile', 'invoicing'), |
|
| 62 | - 'CN' => __('China', 'invoicing'), |
|
| 63 | - 'CX' => __('Christmas Island', 'invoicing'), |
|
| 64 | - 'CC' => __('Cocos Islands', 'invoicing'), |
|
| 65 | - 'CO' => __('Colombia', 'invoicing'), |
|
| 66 | - 'KM' => __('Comoros', 'invoicing'), |
|
| 67 | - 'CD' => __('Congo, Democratic People\'s Republic', 'invoicing'), |
|
| 68 | - 'CG' => __('Congo, Republic of', 'invoicing'), |
|
| 69 | - 'CK' => __('Cook Islands', 'invoicing'), |
|
| 70 | - 'CR' => __('Costa Rica', 'invoicing'), |
|
| 71 | - 'CI' => __('Cote d\'Ivoire', 'invoicing'), |
|
| 72 | - 'HR' => __('Croatia/Hrvatska', 'invoicing'), |
|
| 73 | - 'CU' => __('Cuba', 'invoicing'), |
|
| 74 | - 'CW' => __('CuraÇao', 'invoicing'), |
|
| 75 | - 'CY' => __('Cyprus', 'invoicing'), |
|
| 76 | - 'CZ' => __('Czech Republic', 'invoicing'), |
|
| 77 | - 'DK' => __('Denmark', 'invoicing'), |
|
| 78 | - 'DJ' => __('Djibouti', 'invoicing'), |
|
| 79 | - 'DM' => __('Dominica', 'invoicing'), |
|
| 80 | - 'DO' => __('Dominican Republic', 'invoicing'), |
|
| 81 | - 'TP' => __('East Timor', 'invoicing'), |
|
| 82 | - 'EC' => __('Ecuador', 'invoicing'), |
|
| 83 | - 'EG' => __('Egypt', 'invoicing'), |
|
| 84 | - 'GQ' => __('Equatorial Guinea', 'invoicing'), |
|
| 85 | - 'SV' => __('El Salvador', 'invoicing'), |
|
| 86 | - 'ER' => __('Eritrea', 'invoicing'), |
|
| 87 | - 'EE' => __('Estonia', 'invoicing'), |
|
| 88 | - 'ET' => __('Ethiopia', 'invoicing'), |
|
| 89 | - 'FK' => __('Falkland Islands', 'invoicing'), |
|
| 90 | - 'FO' => __('Faroe Islands', 'invoicing'), |
|
| 91 | - 'FJ' => __('Fiji', 'invoicing'), |
|
| 92 | - 'FI' => __('Finland', 'invoicing'), |
|
| 93 | - 'FR' => __('France', 'invoicing'), |
|
| 94 | - 'GF' => __('French Guiana', 'invoicing'), |
|
| 95 | - 'PF' => __('French Polynesia', 'invoicing'), |
|
| 96 | - 'TF' => __('French Southern Territories', 'invoicing'), |
|
| 97 | - 'GA' => __('Gabon', 'invoicing'), |
|
| 98 | - 'GM' => __('Gambia', 'invoicing'), |
|
| 99 | - 'GE' => __('Georgia', 'invoicing'), |
|
| 100 | - 'DE' => __('Germany', 'invoicing'), |
|
| 101 | - 'GR' => __('Greece', 'invoicing'), |
|
| 102 | - 'GH' => __('Ghana', 'invoicing'), |
|
| 103 | - 'GI' => __('Gibraltar', 'invoicing'), |
|
| 104 | - 'GL' => __('Greenland', 'invoicing'), |
|
| 105 | - 'GD' => __('Grenada', 'invoicing'), |
|
| 106 | - 'GP' => __('Guadeloupe', 'invoicing'), |
|
| 107 | - 'GU' => __('Guam', 'invoicing'), |
|
| 108 | - 'GT' => __('Guatemala', 'invoicing'), |
|
| 109 | - 'GG' => __('Guernsey', 'invoicing'), |
|
| 110 | - 'GN' => __('Guinea', 'invoicing'), |
|
| 111 | - 'GW' => __('Guinea-Bissau', 'invoicing'), |
|
| 112 | - 'GY' => __('Guyana', 'invoicing'), |
|
| 113 | - 'HT' => __('Haiti', 'invoicing'), |
|
| 114 | - 'HM' => __('Heard and McDonald Islands', 'invoicing'), |
|
| 115 | - 'VA' => __('Holy See (City Vatican State)', 'invoicing'), |
|
| 116 | - 'HN' => __('Honduras', 'invoicing'), |
|
| 117 | - 'HK' => __('Hong Kong', 'invoicing'), |
|
| 118 | - 'HU' => __('Hungary', 'invoicing'), |
|
| 119 | - 'IS' => __('Iceland', 'invoicing'), |
|
| 120 | - 'IN' => __('India', 'invoicing'), |
|
| 121 | - 'ID' => __('Indonesia', 'invoicing'), |
|
| 122 | - 'IR' => __('Iran', 'invoicing'), |
|
| 123 | - 'IQ' => __('Iraq', 'invoicing'), |
|
| 124 | - 'IE' => __('Ireland', 'invoicing'), |
|
| 125 | - 'IM' => __('Isle of Man', 'invoicing'), |
|
| 126 | - 'IL' => __('Israel', 'invoicing'), |
|
| 127 | - 'IT' => __('Italy', 'invoicing'), |
|
| 128 | - 'JM' => __('Jamaica', 'invoicing'), |
|
| 129 | - 'JP' => __('Japan', 'invoicing'), |
|
| 130 | - 'JE' => __('Jersey', 'invoicing'), |
|
| 131 | - 'JO' => __('Jordan', 'invoicing'), |
|
| 132 | - 'KZ' => __('Kazakhstan', 'invoicing'), |
|
| 133 | - 'KE' => __('Kenya', 'invoicing'), |
|
| 134 | - 'KI' => __('Kiribati', 'invoicing'), |
|
| 135 | - 'KW' => __('Kuwait', 'invoicing'), |
|
| 136 | - 'KG' => __('Kyrgyzstan', 'invoicing'), |
|
| 137 | - 'LA' => __('Lao People\'s Democratic Republic', 'invoicing'), |
|
| 138 | - 'LV' => __('Latvia', 'invoicing'), |
|
| 139 | - 'LB' => __('Lebanon', 'invoicing'), |
|
| 140 | - 'LS' => __('Lesotho', 'invoicing'), |
|
| 141 | - 'LR' => __('Liberia', 'invoicing'), |
|
| 142 | - 'LY' => __('Libyan Arab Jamahiriya', 'invoicing'), |
|
| 143 | - 'LI' => __('Liechtenstein', 'invoicing'), |
|
| 144 | - 'LT' => __('Lithuania', 'invoicing'), |
|
| 145 | - 'LU' => __('Luxembourg', 'invoicing'), |
|
| 146 | - 'MO' => __('Macau', 'invoicing'), |
|
| 147 | - 'MK' => __('Macedonia', 'invoicing'), |
|
| 148 | - 'MG' => __('Madagascar', 'invoicing'), |
|
| 149 | - 'MW' => __('Malawi', 'invoicing'), |
|
| 150 | - 'MY' => __('Malaysia', 'invoicing'), |
|
| 151 | - 'MV' => __('Maldives', 'invoicing'), |
|
| 152 | - 'ML' => __('Mali', 'invoicing'), |
|
| 153 | - 'MT' => __('Malta', 'invoicing'), |
|
| 154 | - 'MH' => __('Marshall Islands', 'invoicing'), |
|
| 155 | - 'MQ' => __('Martinique', 'invoicing'), |
|
| 156 | - 'MR' => __('Mauritania', 'invoicing'), |
|
| 157 | - 'MU' => __('Mauritius', 'invoicing'), |
|
| 158 | - 'YT' => __('Mayotte', 'invoicing'), |
|
| 159 | - 'MX' => __('Mexico', 'invoicing'), |
|
| 160 | - 'FM' => __('Micronesia', 'invoicing'), |
|
| 161 | - 'MD' => __('Moldova, Republic of', 'invoicing'), |
|
| 162 | - 'MC' => __('Monaco', 'invoicing'), |
|
| 163 | - 'MN' => __('Mongolia', 'invoicing'), |
|
| 164 | - 'ME' => __('Montenegro', 'invoicing'), |
|
| 165 | - 'MS' => __('Montserrat', 'invoicing'), |
|
| 166 | - 'MA' => __('Morocco', 'invoicing'), |
|
| 167 | - 'MZ' => __('Mozambique', 'invoicing'), |
|
| 168 | - 'MM' => __('Myanmar', 'invoicing'), |
|
| 169 | - 'NA' => __('Namibia', 'invoicing'), |
|
| 170 | - 'NR' => __('Nauru', 'invoicing'), |
|
| 171 | - 'NP' => __('Nepal', 'invoicing'), |
|
| 172 | - 'NL' => __('Netherlands', 'invoicing'), |
|
| 173 | - 'AN' => __('Netherlands Antilles', 'invoicing'), |
|
| 174 | - 'NC' => __('New Caledonia', 'invoicing'), |
|
| 175 | - 'NZ' => __('New Zealand', 'invoicing'), |
|
| 176 | - 'NI' => __('Nicaragua', 'invoicing'), |
|
| 177 | - 'NE' => __('Niger', 'invoicing'), |
|
| 178 | - 'NG' => __('Nigeria', 'invoicing'), |
|
| 179 | - 'NU' => __('Niue', 'invoicing'), |
|
| 180 | - 'NF' => __('Norfolk Island', 'invoicing'), |
|
| 181 | - 'KP' => __('North Korea', 'invoicing'), |
|
| 182 | - 'MP' => __('Northern Mariana Islands', 'invoicing'), |
|
| 183 | - 'NO' => __('Norway', 'invoicing'), |
|
| 184 | - 'OM' => __('Oman', 'invoicing'), |
|
| 185 | - 'PK' => __('Pakistan', 'invoicing'), |
|
| 186 | - 'PW' => __('Palau', 'invoicing'), |
|
| 187 | - 'PS' => __('Palestinian Territories', 'invoicing'), |
|
| 188 | - 'PA' => __('Panama', 'invoicing'), |
|
| 189 | - 'PG' => __('Papua New Guinea', 'invoicing'), |
|
| 190 | - 'PY' => __('Paraguay', 'invoicing'), |
|
| 191 | - 'PE' => __('Peru', 'invoicing'), |
|
| 192 | - 'PH' => __('Phillipines', 'invoicing'), |
|
| 193 | - 'PN' => __('Pitcairn Island', 'invoicing'), |
|
| 194 | - 'PL' => __('Poland', 'invoicing'), |
|
| 195 | - 'PT' => __('Portugal', 'invoicing'), |
|
| 196 | - 'PR' => __('Puerto Rico', 'invoicing'), |
|
| 197 | - 'QA' => __('Qatar', 'invoicing'), |
|
| 198 | - 'XK' => __('Republic of Kosovo', 'invoicing'), |
|
| 199 | - 'RE' => __('Reunion Island', 'invoicing'), |
|
| 200 | - 'RO' => __('Romania', 'invoicing'), |
|
| 201 | - 'RU' => __('Russian Federation', 'invoicing'), |
|
| 202 | - 'RW' => __('Rwanda', 'invoicing'), |
|
| 203 | - 'BL' => __('Saint Barthélemy', 'invoicing'), |
|
| 204 | - 'SH' => __('Saint Helena', 'invoicing'), |
|
| 205 | - 'KN' => __('Saint Kitts and Nevis', 'invoicing'), |
|
| 206 | - 'LC' => __('Saint Lucia', 'invoicing'), |
|
| 207 | - 'MF' => __('Saint Martin (French)', 'invoicing'), |
|
| 208 | - 'SX' => __('Saint Martin (Dutch)', 'invoicing'), |
|
| 209 | - 'PM' => __('Saint Pierre and Miquelon', 'invoicing'), |
|
| 210 | - 'VC' => __('Saint Vincent and the Grenadines', 'invoicing'), |
|
| 211 | - 'SM' => __('San Marino', 'invoicing'), |
|
| 212 | - 'ST' => __('São Tomé and Príncipe', 'invoicing'), |
|
| 213 | - 'SA' => __('Saudi Arabia', 'invoicing'), |
|
| 214 | - 'SN' => __('Senegal', 'invoicing'), |
|
| 215 | - 'RS' => __('Serbia', 'invoicing'), |
|
| 216 | - 'SC' => __('Seychelles', 'invoicing'), |
|
| 217 | - 'SL' => __('Sierra Leone', 'invoicing'), |
|
| 218 | - 'SG' => __('Singapore', 'invoicing'), |
|
| 219 | - 'SK' => __('Slovak Republic', 'invoicing'), |
|
| 220 | - 'SI' => __('Slovenia', 'invoicing'), |
|
| 221 | - 'SB' => __('Solomon Islands', 'invoicing'), |
|
| 222 | - 'SO' => __('Somalia', 'invoicing'), |
|
| 223 | - 'ZA' => __('South Africa', 'invoicing'), |
|
| 224 | - 'GS' => __('South Georgia', 'invoicing'), |
|
| 225 | - 'KR' => __('South Korea', 'invoicing'), |
|
| 226 | - 'SS' => __('South Sudan', 'invoicing'), |
|
| 227 | - 'ES' => __('Spain', 'invoicing'), |
|
| 228 | - 'LK' => __('Sri Lanka', 'invoicing'), |
|
| 229 | - 'SD' => __('Sudan', 'invoicing'), |
|
| 230 | - 'SR' => __('Suriname', 'invoicing'), |
|
| 231 | - 'SJ' => __('Svalbard and Jan Mayen Islands', 'invoicing'), |
|
| 232 | - 'SZ' => __('Swaziland', 'invoicing'), |
|
| 233 | - 'SE' => __('Sweden', 'invoicing'), |
|
| 234 | - 'CH' => __('Switzerland', 'invoicing'), |
|
| 235 | - 'SY' => __('Syrian Arab Republic', 'invoicing'), |
|
| 236 | - 'TW' => __('Taiwan', 'invoicing'), |
|
| 237 | - 'TJ' => __('Tajikistan', 'invoicing'), |
|
| 238 | - 'TZ' => __('Tanzania', 'invoicing'), |
|
| 239 | - 'TH' => __('Thailand', 'invoicing'), |
|
| 240 | - 'TL' => __('Timor-Leste', 'invoicing'), |
|
| 241 | - 'TG' => __('Togo', 'invoicing'), |
|
| 242 | - 'TK' => __('Tokelau', 'invoicing'), |
|
| 243 | - 'TO' => __('Tonga', 'invoicing'), |
|
| 244 | - 'TT' => __('Trinidad and Tobago', 'invoicing'), |
|
| 245 | - 'TN' => __('Tunisia', 'invoicing'), |
|
| 246 | - 'TR' => __('Turkey', 'invoicing'), |
|
| 247 | - 'TM' => __('Turkmenistan', 'invoicing'), |
|
| 248 | - 'TC' => __('Turks and Caicos Islands', 'invoicing'), |
|
| 249 | - 'TV' => __('Tuvalu', 'invoicing'), |
|
| 250 | - 'UG' => __('Uganda', 'invoicing'), |
|
| 251 | - 'UA' => __('Ukraine', 'invoicing'), |
|
| 252 | - 'AE' => __('United Arab Emirates', 'invoicing'), |
|
| 253 | - 'UY' => __('Uruguay', 'invoicing'), |
|
| 254 | - 'UM' => __('US Minor Outlying Islands', 'invoicing'), |
|
| 255 | - 'UZ' => __('Uzbekistan', 'invoicing'), |
|
| 256 | - 'VU' => __('Vanuatu', 'invoicing'), |
|
| 257 | - 'VE' => __('Venezuela', 'invoicing'), |
|
| 258 | - 'VN' => __('Vietnam', 'invoicing'), |
|
| 259 | - 'VG' => __('Virgin Islands (British)', 'invoicing'), |
|
| 260 | - 'VI' => __('Virgin Islands (USA)', 'invoicing'), |
|
| 261 | - 'WF' => __('Wallis and Futuna Islands', 'invoicing'), |
|
| 262 | - 'EH' => __('Western Sahara', 'invoicing'), |
|
| 263 | - 'WS' => __('Western Samoa', 'invoicing'), |
|
| 264 | - 'YE' => __('Yemen', 'invoicing'), |
|
| 265 | - 'ZM' => __('Zambia', 'invoicing'), |
|
| 266 | - 'ZW' => __('Zimbabwe', 'invoicing'), |
|
| 15 | + 'US' => __('United States', 'invoicing'), |
|
| 16 | + 'CA' => __('Canada', 'invoicing'), |
|
| 17 | + 'GB' => __('United Kingdom', 'invoicing'), |
|
| 18 | + 'AF' => __('Afghanistan', 'invoicing'), |
|
| 19 | + 'AX' => __('Aland Islands', 'invoicing'), |
|
| 20 | + 'AL' => __('Albania', 'invoicing'), |
|
| 21 | + 'DZ' => __('Algeria', 'invoicing'), |
|
| 22 | + 'AS' => __('American Samoa', 'invoicing'), |
|
| 23 | + 'AD' => __('Andorra', 'invoicing'), |
|
| 24 | + 'AO' => __('Angola', 'invoicing'), |
|
| 25 | + 'AI' => __('Anguilla', 'invoicing'), |
|
| 26 | + 'AQ' => __('Antarctica', 'invoicing'), |
|
| 27 | + 'AG' => __('Antigua and Barbuda', 'invoicing'), |
|
| 28 | + 'AR' => __('Argentina', 'invoicing'), |
|
| 29 | + 'AM' => __('Armenia', 'invoicing'), |
|
| 30 | + 'AW' => __('Aruba', 'invoicing'), |
|
| 31 | + 'AU' => __('Australia', 'invoicing'), |
|
| 32 | + 'AT' => __('Austria', 'invoicing'), |
|
| 33 | + 'AZ' => __('Azerbaijan', 'invoicing'), |
|
| 34 | + 'BS' => __('Bahamas', 'invoicing'), |
|
| 35 | + 'BH' => __('Bahrain', 'invoicing'), |
|
| 36 | + 'BD' => __('Bangladesh', 'invoicing'), |
|
| 37 | + 'BB' => __('Barbados', 'invoicing'), |
|
| 38 | + 'BY' => __('Belarus', 'invoicing'), |
|
| 39 | + 'BE' => __('Belgium', 'invoicing'), |
|
| 40 | + 'BZ' => __('Belize', 'invoicing'), |
|
| 41 | + 'BJ' => __('Benin', 'invoicing'), |
|
| 42 | + 'BM' => __('Bermuda', 'invoicing'), |
|
| 43 | + 'BT' => __('Bhutan', 'invoicing'), |
|
| 44 | + 'BO' => __('Bolivia', 'invoicing'), |
|
| 45 | + 'BQ' => __('Bonaire, Saint Eustatius and Saba', 'invoicing'), |
|
| 46 | + 'BA' => __('Bosnia and Herzegovina', 'invoicing'), |
|
| 47 | + 'BW' => __('Botswana', 'invoicing'), |
|
| 48 | + 'BV' => __('Bouvet Island', 'invoicing'), |
|
| 49 | + 'BR' => __('Brazil', 'invoicing'), |
|
| 50 | + 'IO' => __('British Indian Ocean Territory', 'invoicing'), |
|
| 51 | + 'BN' => __('Brunei Darrussalam', 'invoicing'), |
|
| 52 | + 'BG' => __('Bulgaria', 'invoicing'), |
|
| 53 | + 'BF' => __('Burkina Faso', 'invoicing'), |
|
| 54 | + 'BI' => __('Burundi', 'invoicing'), |
|
| 55 | + 'KH' => __('Cambodia', 'invoicing'), |
|
| 56 | + 'CM' => __('Cameroon', 'invoicing'), |
|
| 57 | + 'CV' => __('Cape Verde', 'invoicing'), |
|
| 58 | + 'KY' => __('Cayman Islands', 'invoicing'), |
|
| 59 | + 'CF' => __('Central African Republic', 'invoicing'), |
|
| 60 | + 'TD' => __('Chad', 'invoicing'), |
|
| 61 | + 'CL' => __('Chile', 'invoicing'), |
|
| 62 | + 'CN' => __('China', 'invoicing'), |
|
| 63 | + 'CX' => __('Christmas Island', 'invoicing'), |
|
| 64 | + 'CC' => __('Cocos Islands', 'invoicing'), |
|
| 65 | + 'CO' => __('Colombia', 'invoicing'), |
|
| 66 | + 'KM' => __('Comoros', 'invoicing'), |
|
| 67 | + 'CD' => __('Congo, Democratic People\'s Republic', 'invoicing'), |
|
| 68 | + 'CG' => __('Congo, Republic of', 'invoicing'), |
|
| 69 | + 'CK' => __('Cook Islands', 'invoicing'), |
|
| 70 | + 'CR' => __('Costa Rica', 'invoicing'), |
|
| 71 | + 'CI' => __('Cote d\'Ivoire', 'invoicing'), |
|
| 72 | + 'HR' => __('Croatia/Hrvatska', 'invoicing'), |
|
| 73 | + 'CU' => __('Cuba', 'invoicing'), |
|
| 74 | + 'CW' => __('CuraÇao', 'invoicing'), |
|
| 75 | + 'CY' => __('Cyprus', 'invoicing'), |
|
| 76 | + 'CZ' => __('Czech Republic', 'invoicing'), |
|
| 77 | + 'DK' => __('Denmark', 'invoicing'), |
|
| 78 | + 'DJ' => __('Djibouti', 'invoicing'), |
|
| 79 | + 'DM' => __('Dominica', 'invoicing'), |
|
| 80 | + 'DO' => __('Dominican Republic', 'invoicing'), |
|
| 81 | + 'TP' => __('East Timor', 'invoicing'), |
|
| 82 | + 'EC' => __('Ecuador', 'invoicing'), |
|
| 83 | + 'EG' => __('Egypt', 'invoicing'), |
|
| 84 | + 'GQ' => __('Equatorial Guinea', 'invoicing'), |
|
| 85 | + 'SV' => __('El Salvador', 'invoicing'), |
|
| 86 | + 'ER' => __('Eritrea', 'invoicing'), |
|
| 87 | + 'EE' => __('Estonia', 'invoicing'), |
|
| 88 | + 'ET' => __('Ethiopia', 'invoicing'), |
|
| 89 | + 'FK' => __('Falkland Islands', 'invoicing'), |
|
| 90 | + 'FO' => __('Faroe Islands', 'invoicing'), |
|
| 91 | + 'FJ' => __('Fiji', 'invoicing'), |
|
| 92 | + 'FI' => __('Finland', 'invoicing'), |
|
| 93 | + 'FR' => __('France', 'invoicing'), |
|
| 94 | + 'GF' => __('French Guiana', 'invoicing'), |
|
| 95 | + 'PF' => __('French Polynesia', 'invoicing'), |
|
| 96 | + 'TF' => __('French Southern Territories', 'invoicing'), |
|
| 97 | + 'GA' => __('Gabon', 'invoicing'), |
|
| 98 | + 'GM' => __('Gambia', 'invoicing'), |
|
| 99 | + 'GE' => __('Georgia', 'invoicing'), |
|
| 100 | + 'DE' => __('Germany', 'invoicing'), |
|
| 101 | + 'GR' => __('Greece', 'invoicing'), |
|
| 102 | + 'GH' => __('Ghana', 'invoicing'), |
|
| 103 | + 'GI' => __('Gibraltar', 'invoicing'), |
|
| 104 | + 'GL' => __('Greenland', 'invoicing'), |
|
| 105 | + 'GD' => __('Grenada', 'invoicing'), |
|
| 106 | + 'GP' => __('Guadeloupe', 'invoicing'), |
|
| 107 | + 'GU' => __('Guam', 'invoicing'), |
|
| 108 | + 'GT' => __('Guatemala', 'invoicing'), |
|
| 109 | + 'GG' => __('Guernsey', 'invoicing'), |
|
| 110 | + 'GN' => __('Guinea', 'invoicing'), |
|
| 111 | + 'GW' => __('Guinea-Bissau', 'invoicing'), |
|
| 112 | + 'GY' => __('Guyana', 'invoicing'), |
|
| 113 | + 'HT' => __('Haiti', 'invoicing'), |
|
| 114 | + 'HM' => __('Heard and McDonald Islands', 'invoicing'), |
|
| 115 | + 'VA' => __('Holy See (City Vatican State)', 'invoicing'), |
|
| 116 | + 'HN' => __('Honduras', 'invoicing'), |
|
| 117 | + 'HK' => __('Hong Kong', 'invoicing'), |
|
| 118 | + 'HU' => __('Hungary', 'invoicing'), |
|
| 119 | + 'IS' => __('Iceland', 'invoicing'), |
|
| 120 | + 'IN' => __('India', 'invoicing'), |
|
| 121 | + 'ID' => __('Indonesia', 'invoicing'), |
|
| 122 | + 'IR' => __('Iran', 'invoicing'), |
|
| 123 | + 'IQ' => __('Iraq', 'invoicing'), |
|
| 124 | + 'IE' => __('Ireland', 'invoicing'), |
|
| 125 | + 'IM' => __('Isle of Man', 'invoicing'), |
|
| 126 | + 'IL' => __('Israel', 'invoicing'), |
|
| 127 | + 'IT' => __('Italy', 'invoicing'), |
|
| 128 | + 'JM' => __('Jamaica', 'invoicing'), |
|
| 129 | + 'JP' => __('Japan', 'invoicing'), |
|
| 130 | + 'JE' => __('Jersey', 'invoicing'), |
|
| 131 | + 'JO' => __('Jordan', 'invoicing'), |
|
| 132 | + 'KZ' => __('Kazakhstan', 'invoicing'), |
|
| 133 | + 'KE' => __('Kenya', 'invoicing'), |
|
| 134 | + 'KI' => __('Kiribati', 'invoicing'), |
|
| 135 | + 'KW' => __('Kuwait', 'invoicing'), |
|
| 136 | + 'KG' => __('Kyrgyzstan', 'invoicing'), |
|
| 137 | + 'LA' => __('Lao People\'s Democratic Republic', 'invoicing'), |
|
| 138 | + 'LV' => __('Latvia', 'invoicing'), |
|
| 139 | + 'LB' => __('Lebanon', 'invoicing'), |
|
| 140 | + 'LS' => __('Lesotho', 'invoicing'), |
|
| 141 | + 'LR' => __('Liberia', 'invoicing'), |
|
| 142 | + 'LY' => __('Libyan Arab Jamahiriya', 'invoicing'), |
|
| 143 | + 'LI' => __('Liechtenstein', 'invoicing'), |
|
| 144 | + 'LT' => __('Lithuania', 'invoicing'), |
|
| 145 | + 'LU' => __('Luxembourg', 'invoicing'), |
|
| 146 | + 'MO' => __('Macau', 'invoicing'), |
|
| 147 | + 'MK' => __('Macedonia', 'invoicing'), |
|
| 148 | + 'MG' => __('Madagascar', 'invoicing'), |
|
| 149 | + 'MW' => __('Malawi', 'invoicing'), |
|
| 150 | + 'MY' => __('Malaysia', 'invoicing'), |
|
| 151 | + 'MV' => __('Maldives', 'invoicing'), |
|
| 152 | + 'ML' => __('Mali', 'invoicing'), |
|
| 153 | + 'MT' => __('Malta', 'invoicing'), |
|
| 154 | + 'MH' => __('Marshall Islands', 'invoicing'), |
|
| 155 | + 'MQ' => __('Martinique', 'invoicing'), |
|
| 156 | + 'MR' => __('Mauritania', 'invoicing'), |
|
| 157 | + 'MU' => __('Mauritius', 'invoicing'), |
|
| 158 | + 'YT' => __('Mayotte', 'invoicing'), |
|
| 159 | + 'MX' => __('Mexico', 'invoicing'), |
|
| 160 | + 'FM' => __('Micronesia', 'invoicing'), |
|
| 161 | + 'MD' => __('Moldova, Republic of', 'invoicing'), |
|
| 162 | + 'MC' => __('Monaco', 'invoicing'), |
|
| 163 | + 'MN' => __('Mongolia', 'invoicing'), |
|
| 164 | + 'ME' => __('Montenegro', 'invoicing'), |
|
| 165 | + 'MS' => __('Montserrat', 'invoicing'), |
|
| 166 | + 'MA' => __('Morocco', 'invoicing'), |
|
| 167 | + 'MZ' => __('Mozambique', 'invoicing'), |
|
| 168 | + 'MM' => __('Myanmar', 'invoicing'), |
|
| 169 | + 'NA' => __('Namibia', 'invoicing'), |
|
| 170 | + 'NR' => __('Nauru', 'invoicing'), |
|
| 171 | + 'NP' => __('Nepal', 'invoicing'), |
|
| 172 | + 'NL' => __('Netherlands', 'invoicing'), |
|
| 173 | + 'AN' => __('Netherlands Antilles', 'invoicing'), |
|
| 174 | + 'NC' => __('New Caledonia', 'invoicing'), |
|
| 175 | + 'NZ' => __('New Zealand', 'invoicing'), |
|
| 176 | + 'NI' => __('Nicaragua', 'invoicing'), |
|
| 177 | + 'NE' => __('Niger', 'invoicing'), |
|
| 178 | + 'NG' => __('Nigeria', 'invoicing'), |
|
| 179 | + 'NU' => __('Niue', 'invoicing'), |
|
| 180 | + 'NF' => __('Norfolk Island', 'invoicing'), |
|
| 181 | + 'KP' => __('North Korea', 'invoicing'), |
|
| 182 | + 'MP' => __('Northern Mariana Islands', 'invoicing'), |
|
| 183 | + 'NO' => __('Norway', 'invoicing'), |
|
| 184 | + 'OM' => __('Oman', 'invoicing'), |
|
| 185 | + 'PK' => __('Pakistan', 'invoicing'), |
|
| 186 | + 'PW' => __('Palau', 'invoicing'), |
|
| 187 | + 'PS' => __('Palestinian Territories', 'invoicing'), |
|
| 188 | + 'PA' => __('Panama', 'invoicing'), |
|
| 189 | + 'PG' => __('Papua New Guinea', 'invoicing'), |
|
| 190 | + 'PY' => __('Paraguay', 'invoicing'), |
|
| 191 | + 'PE' => __('Peru', 'invoicing'), |
|
| 192 | + 'PH' => __('Phillipines', 'invoicing'), |
|
| 193 | + 'PN' => __('Pitcairn Island', 'invoicing'), |
|
| 194 | + 'PL' => __('Poland', 'invoicing'), |
|
| 195 | + 'PT' => __('Portugal', 'invoicing'), |
|
| 196 | + 'PR' => __('Puerto Rico', 'invoicing'), |
|
| 197 | + 'QA' => __('Qatar', 'invoicing'), |
|
| 198 | + 'XK' => __('Republic of Kosovo', 'invoicing'), |
|
| 199 | + 'RE' => __('Reunion Island', 'invoicing'), |
|
| 200 | + 'RO' => __('Romania', 'invoicing'), |
|
| 201 | + 'RU' => __('Russian Federation', 'invoicing'), |
|
| 202 | + 'RW' => __('Rwanda', 'invoicing'), |
|
| 203 | + 'BL' => __('Saint Barthélemy', 'invoicing'), |
|
| 204 | + 'SH' => __('Saint Helena', 'invoicing'), |
|
| 205 | + 'KN' => __('Saint Kitts and Nevis', 'invoicing'), |
|
| 206 | + 'LC' => __('Saint Lucia', 'invoicing'), |
|
| 207 | + 'MF' => __('Saint Martin (French)', 'invoicing'), |
|
| 208 | + 'SX' => __('Saint Martin (Dutch)', 'invoicing'), |
|
| 209 | + 'PM' => __('Saint Pierre and Miquelon', 'invoicing'), |
|
| 210 | + 'VC' => __('Saint Vincent and the Grenadines', 'invoicing'), |
|
| 211 | + 'SM' => __('San Marino', 'invoicing'), |
|
| 212 | + 'ST' => __('São Tomé and Príncipe', 'invoicing'), |
|
| 213 | + 'SA' => __('Saudi Arabia', 'invoicing'), |
|
| 214 | + 'SN' => __('Senegal', 'invoicing'), |
|
| 215 | + 'RS' => __('Serbia', 'invoicing'), |
|
| 216 | + 'SC' => __('Seychelles', 'invoicing'), |
|
| 217 | + 'SL' => __('Sierra Leone', 'invoicing'), |
|
| 218 | + 'SG' => __('Singapore', 'invoicing'), |
|
| 219 | + 'SK' => __('Slovak Republic', 'invoicing'), |
|
| 220 | + 'SI' => __('Slovenia', 'invoicing'), |
|
| 221 | + 'SB' => __('Solomon Islands', 'invoicing'), |
|
| 222 | + 'SO' => __('Somalia', 'invoicing'), |
|
| 223 | + 'ZA' => __('South Africa', 'invoicing'), |
|
| 224 | + 'GS' => __('South Georgia', 'invoicing'), |
|
| 225 | + 'KR' => __('South Korea', 'invoicing'), |
|
| 226 | + 'SS' => __('South Sudan', 'invoicing'), |
|
| 227 | + 'ES' => __('Spain', 'invoicing'), |
|
| 228 | + 'LK' => __('Sri Lanka', 'invoicing'), |
|
| 229 | + 'SD' => __('Sudan', 'invoicing'), |
|
| 230 | + 'SR' => __('Suriname', 'invoicing'), |
|
| 231 | + 'SJ' => __('Svalbard and Jan Mayen Islands', 'invoicing'), |
|
| 232 | + 'SZ' => __('Swaziland', 'invoicing'), |
|
| 233 | + 'SE' => __('Sweden', 'invoicing'), |
|
| 234 | + 'CH' => __('Switzerland', 'invoicing'), |
|
| 235 | + 'SY' => __('Syrian Arab Republic', 'invoicing'), |
|
| 236 | + 'TW' => __('Taiwan', 'invoicing'), |
|
| 237 | + 'TJ' => __('Tajikistan', 'invoicing'), |
|
| 238 | + 'TZ' => __('Tanzania', 'invoicing'), |
|
| 239 | + 'TH' => __('Thailand', 'invoicing'), |
|
| 240 | + 'TL' => __('Timor-Leste', 'invoicing'), |
|
| 241 | + 'TG' => __('Togo', 'invoicing'), |
|
| 242 | + 'TK' => __('Tokelau', 'invoicing'), |
|
| 243 | + 'TO' => __('Tonga', 'invoicing'), |
|
| 244 | + 'TT' => __('Trinidad and Tobago', 'invoicing'), |
|
| 245 | + 'TN' => __('Tunisia', 'invoicing'), |
|
| 246 | + 'TR' => __('Turkey', 'invoicing'), |
|
| 247 | + 'TM' => __('Turkmenistan', 'invoicing'), |
|
| 248 | + 'TC' => __('Turks and Caicos Islands', 'invoicing'), |
|
| 249 | + 'TV' => __('Tuvalu', 'invoicing'), |
|
| 250 | + 'UG' => __('Uganda', 'invoicing'), |
|
| 251 | + 'UA' => __('Ukraine', 'invoicing'), |
|
| 252 | + 'AE' => __('United Arab Emirates', 'invoicing'), |
|
| 253 | + 'UY' => __('Uruguay', 'invoicing'), |
|
| 254 | + 'UM' => __('US Minor Outlying Islands', 'invoicing'), |
|
| 255 | + 'UZ' => __('Uzbekistan', 'invoicing'), |
|
| 256 | + 'VU' => __('Vanuatu', 'invoicing'), |
|
| 257 | + 'VE' => __('Venezuela', 'invoicing'), |
|
| 258 | + 'VN' => __('Vietnam', 'invoicing'), |
|
| 259 | + 'VG' => __('Virgin Islands (British)', 'invoicing'), |
|
| 260 | + 'VI' => __('Virgin Islands (USA)', 'invoicing'), |
|
| 261 | + 'WF' => __('Wallis and Futuna Islands', 'invoicing'), |
|
| 262 | + 'EH' => __('Western Sahara', 'invoicing'), |
|
| 263 | + 'WS' => __('Western Samoa', 'invoicing'), |
|
| 264 | + 'YE' => __('Yemen', 'invoicing'), |
|
| 265 | + 'ZM' => __('Zambia', 'invoicing'), |
|
| 266 | + 'ZW' => __('Zimbabwe', 'invoicing'), |
|
| 267 | 267 | ); |
@@ -9,7 +9,7 @@ |
||
| 9 | 9 | * @version 1.0.14 |
| 10 | 10 | */ |
| 11 | 11 | |
| 12 | -defined( 'ABSPATH' ) || exit; |
|
| 12 | +defined('ABSPATH') || exit; |
|
| 13 | 13 | |
| 14 | 14 | return array( |
| 15 | 15 | 'US' => __('United States', 'invoicing'), |
@@ -31,25 +31,25 @@ |
||
| 31 | 31 | public function get_privacy_message() { |
| 32 | 32 | |
| 33 | 33 | $content = '<div class="wp-suggested-text">' . |
| 34 | - '<h2>' . __( 'Invoices and checkout', 'invoicing' ) . '</h2>' . |
|
| 35 | - '<p class="privacy-policy-tutorial">' . __( 'Example privacy texts.', 'invoicing' ) . '</p>' . |
|
| 36 | - '<p>' . __( 'We collect information about you during the checkout process on our site. This information may include, but is not limited to, your name, email address, phone number, address, IP and any other details that might be requested from you for the purpose of processing your payment and retaining your invoice details for legal reasons.', 'invoicing' ) . '</p>' . |
|
| 37 | - '<p>' . __( 'Handling this data also allows us to:', 'invoicing' ) . '</p>' . |
|
| 38 | - '<ul>' . |
|
| 39 | - '<li>' . __( '- Send you important account/order/service information.', 'invoicing' ) . '</li>' . |
|
| 40 | - '<li>' . __( '- Estimate taxes based on your location.', 'invoicing' ) . '</li>' . |
|
| 41 | - '<li>' . __( '- Respond to your queries or complaints.', 'invoicing' ) . '</li>' . |
|
| 42 | - '<li>' . __( '- Process payments and to prevent fraudulent transactions. We do this on the basis of our legitimate business interests.', 'invoicing' ) . '</li>' . |
|
| 43 | - '<li>' . __( '- Retain historical payment and invoice history. We do this on the basis of legal obligations.', 'invoicing' ) . '</li>' . |
|
| 44 | - '<li>' . __( '- Set up and administer your account, provide technical and/or customer support, and to verify your identity. We do this on the basis of our legitimate business interests.', 'invoicing' ) . '</li>' . |
|
| 45 | - '</ul>' . |
|
| 46 | - '<p>' . __( 'In addition to collecting information at checkout we may also use and store your contact details when manually creating invoices for require payments relating to prior contractual agreements or agreed terms.', 'invoicing' ) . '</p>' . |
|
| 47 | - '<h2>' . __( 'What we share with others', 'invoicing' ) . '</h2>' . |
|
| 48 | - '<p>' . __( 'We share information with third parties who help us provide our payment and invoicing services to you; for example --', 'invoicing' ) . '</p>' . |
|
| 49 | - '<p class="privacy-policy-tutorial">' . __( 'In this subsection you should list which third party payment processors you’re using to take payments since these may handle customer data. We’ve included PayPal as an example, but you should remove this if you’re not using PayPal.', 'invoicing' ) . '</p>' . |
|
| 50 | - '<p>' . __( 'We accept payments through PayPal. When processing payments, some of your data will be passed to PayPal, including information required to process or support the payment, such as the purchase total and billing information.', 'invoicing' ) . '</p>' . |
|
| 51 | - '<p>' . __( 'Please see the <a href="https://www.paypal.com/us/webapps/mpp/ua/privacy-full">PayPal Privacy Policy</a> for more details.', 'invoicing' ) . '</p>' . |
|
| 52 | - '</div>'; |
|
| 34 | + '<h2>' . __( 'Invoices and checkout', 'invoicing' ) . '</h2>' . |
|
| 35 | + '<p class="privacy-policy-tutorial">' . __( 'Example privacy texts.', 'invoicing' ) . '</p>' . |
|
| 36 | + '<p>' . __( 'We collect information about you during the checkout process on our site. This information may include, but is not limited to, your name, email address, phone number, address, IP and any other details that might be requested from you for the purpose of processing your payment and retaining your invoice details for legal reasons.', 'invoicing' ) . '</p>' . |
|
| 37 | + '<p>' . __( 'Handling this data also allows us to:', 'invoicing' ) . '</p>' . |
|
| 38 | + '<ul>' . |
|
| 39 | + '<li>' . __( '- Send you important account/order/service information.', 'invoicing' ) . '</li>' . |
|
| 40 | + '<li>' . __( '- Estimate taxes based on your location.', 'invoicing' ) . '</li>' . |
|
| 41 | + '<li>' . __( '- Respond to your queries or complaints.', 'invoicing' ) . '</li>' . |
|
| 42 | + '<li>' . __( '- Process payments and to prevent fraudulent transactions. We do this on the basis of our legitimate business interests.', 'invoicing' ) . '</li>' . |
|
| 43 | + '<li>' . __( '- Retain historical payment and invoice history. We do this on the basis of legal obligations.', 'invoicing' ) . '</li>' . |
|
| 44 | + '<li>' . __( '- Set up and administer your account, provide technical and/or customer support, and to verify your identity. We do this on the basis of our legitimate business interests.', 'invoicing' ) . '</li>' . |
|
| 45 | + '</ul>' . |
|
| 46 | + '<p>' . __( 'In addition to collecting information at checkout we may also use and store your contact details when manually creating invoices for require payments relating to prior contractual agreements or agreed terms.', 'invoicing' ) . '</p>' . |
|
| 47 | + '<h2>' . __( 'What we share with others', 'invoicing' ) . '</h2>' . |
|
| 48 | + '<p>' . __( 'We share information with third parties who help us provide our payment and invoicing services to you; for example --', 'invoicing' ) . '</p>' . |
|
| 49 | + '<p class="privacy-policy-tutorial">' . __( 'In this subsection you should list which third party payment processors you’re using to take payments since these may handle customer data. We’ve included PayPal as an example, but you should remove this if you’re not using PayPal.', 'invoicing' ) . '</p>' . |
|
| 50 | + '<p>' . __( 'We accept payments through PayPal. When processing payments, some of your data will be passed to PayPal, including information required to process or support the payment, such as the purchase total and billing information.', 'invoicing' ) . '</p>' . |
|
| 51 | + '<p>' . __( 'Please see the <a href="https://www.paypal.com/us/webapps/mpp/ua/privacy-full">PayPal Privacy Policy</a> for more details.', 'invoicing' ) . '</p>' . |
|
| 52 | + '</div>'; |
|
| 53 | 53 | |
| 54 | 54 | return apply_filters( 'wpinv_privacy_policy_content', $content ); |
| 55 | 55 | } |
@@ -3,7 +3,7 @@ discard block |
||
| 3 | 3 | * Privacy/GDPR related functionality which ties into WordPress functionality. |
| 4 | 4 | */ |
| 5 | 5 | |
| 6 | -defined( 'ABSPATH' ) || exit; |
|
| 6 | +defined('ABSPATH') || exit; |
|
| 7 | 7 | |
| 8 | 8 | /** |
| 9 | 9 | * WPInv_Privacy Class. |
@@ -14,13 +14,13 @@ discard block |
||
| 14 | 14 | * Init - hook into events. |
| 15 | 15 | */ |
| 16 | 16 | public function __construct() { |
| 17 | - parent::__construct( __( 'Invoicing', 'invoicing' ) ); |
|
| 17 | + parent::__construct(__('Invoicing', 'invoicing')); |
|
| 18 | 18 | |
| 19 | 19 | // Include supporting classes. |
| 20 | 20 | include_once 'class-wpinv-privacy-exporters.php'; |
| 21 | 21 | |
| 22 | 22 | // This hook registers Invoicing data exporters. |
| 23 | - $this->add_exporter( 'wpinv-customer-invoices', __( 'Customer Invoices', 'invoicing' ), array( 'WPInv_Privacy_Exporters', 'customer_invoice_data_exporter' ) ); |
|
| 23 | + $this->add_exporter('wpinv-customer-invoices', __('Customer Invoices', 'invoicing'), array('WPInv_Privacy_Exporters', 'customer_invoice_data_exporter')); |
|
| 24 | 24 | } |
| 25 | 25 | |
| 26 | 26 | /** |
@@ -31,27 +31,27 @@ discard block |
||
| 31 | 31 | public function get_privacy_message() { |
| 32 | 32 | |
| 33 | 33 | $content = '<div class="wp-suggested-text">' . |
| 34 | - '<h2>' . __( 'Invoices and checkout', 'invoicing' ) . '</h2>' . |
|
| 35 | - '<p class="privacy-policy-tutorial">' . __( 'Example privacy texts.', 'invoicing' ) . '</p>' . |
|
| 36 | - '<p>' . __( 'We collect information about you during the checkout process on our site. This information may include, but is not limited to, your name, email address, phone number, address, IP and any other details that might be requested from you for the purpose of processing your payment and retaining your invoice details for legal reasons.', 'invoicing' ) . '</p>' . |
|
| 37 | - '<p>' . __( 'Handling this data also allows us to:', 'invoicing' ) . '</p>' . |
|
| 34 | + '<h2>' . __('Invoices and checkout', 'invoicing') . '</h2>' . |
|
| 35 | + '<p class="privacy-policy-tutorial">' . __('Example privacy texts.', 'invoicing') . '</p>' . |
|
| 36 | + '<p>' . __('We collect information about you during the checkout process on our site. This information may include, but is not limited to, your name, email address, phone number, address, IP and any other details that might be requested from you for the purpose of processing your payment and retaining your invoice details for legal reasons.', 'invoicing') . '</p>' . |
|
| 37 | + '<p>' . __('Handling this data also allows us to:', 'invoicing') . '</p>' . |
|
| 38 | 38 | '<ul>' . |
| 39 | - '<li>' . __( '- Send you important account/order/service information.', 'invoicing' ) . '</li>' . |
|
| 40 | - '<li>' . __( '- Estimate taxes based on your location.', 'invoicing' ) . '</li>' . |
|
| 41 | - '<li>' . __( '- Respond to your queries or complaints.', 'invoicing' ) . '</li>' . |
|
| 42 | - '<li>' . __( '- Process payments and to prevent fraudulent transactions. We do this on the basis of our legitimate business interests.', 'invoicing' ) . '</li>' . |
|
| 43 | - '<li>' . __( '- Retain historical payment and invoice history. We do this on the basis of legal obligations.', 'invoicing' ) . '</li>' . |
|
| 44 | - '<li>' . __( '- Set up and administer your account, provide technical and/or customer support, and to verify your identity. We do this on the basis of our legitimate business interests.', 'invoicing' ) . '</li>' . |
|
| 39 | + '<li>' . __('- Send you important account/order/service information.', 'invoicing') . '</li>' . |
|
| 40 | + '<li>' . __('- Estimate taxes based on your location.', 'invoicing') . '</li>' . |
|
| 41 | + '<li>' . __('- Respond to your queries or complaints.', 'invoicing') . '</li>' . |
|
| 42 | + '<li>' . __('- Process payments and to prevent fraudulent transactions. We do this on the basis of our legitimate business interests.', 'invoicing') . '</li>' . |
|
| 43 | + '<li>' . __('- Retain historical payment and invoice history. We do this on the basis of legal obligations.', 'invoicing') . '</li>' . |
|
| 44 | + '<li>' . __('- Set up and administer your account, provide technical and/or customer support, and to verify your identity. We do this on the basis of our legitimate business interests.', 'invoicing') . '</li>' . |
|
| 45 | 45 | '</ul>' . |
| 46 | - '<p>' . __( 'In addition to collecting information at checkout we may also use and store your contact details when manually creating invoices for require payments relating to prior contractual agreements or agreed terms.', 'invoicing' ) . '</p>' . |
|
| 47 | - '<h2>' . __( 'What we share with others', 'invoicing' ) . '</h2>' . |
|
| 48 | - '<p>' . __( 'We share information with third parties who help us provide our payment and invoicing services to you; for example --', 'invoicing' ) . '</p>' . |
|
| 49 | - '<p class="privacy-policy-tutorial">' . __( 'In this subsection you should list which third party payment processors you’re using to take payments since these may handle customer data. We’ve included PayPal as an example, but you should remove this if you’re not using PayPal.', 'invoicing' ) . '</p>' . |
|
| 50 | - '<p>' . __( 'We accept payments through PayPal. When processing payments, some of your data will be passed to PayPal, including information required to process or support the payment, such as the purchase total and billing information.', 'invoicing' ) . '</p>' . |
|
| 51 | - '<p>' . __( 'Please see the <a href="https://www.paypal.com/us/webapps/mpp/ua/privacy-full">PayPal Privacy Policy</a> for more details.', 'invoicing' ) . '</p>' . |
|
| 46 | + '<p>' . __('In addition to collecting information at checkout we may also use and store your contact details when manually creating invoices for require payments relating to prior contractual agreements or agreed terms.', 'invoicing') . '</p>' . |
|
| 47 | + '<h2>' . __('What we share with others', 'invoicing') . '</h2>' . |
|
| 48 | + '<p>' . __('We share information with third parties who help us provide our payment and invoicing services to you; for example --', 'invoicing') . '</p>' . |
|
| 49 | + '<p class="privacy-policy-tutorial">' . __('In this subsection you should list which third party payment processors you’re using to take payments since these may handle customer data. We’ve included PayPal as an example, but you should remove this if you’re not using PayPal.', 'invoicing') . '</p>' . |
|
| 50 | + '<p>' . __('We accept payments through PayPal. When processing payments, some of your data will be passed to PayPal, including information required to process or support the payment, such as the purchase total and billing information.', 'invoicing') . '</p>' . |
|
| 51 | + '<p>' . __('Please see the <a href="https://www.paypal.com/us/webapps/mpp/ua/privacy-full">PayPal Privacy Policy</a> for more details.', 'invoicing') . '</p>' . |
|
| 52 | 52 | '</div>'; |
| 53 | 53 | |
| 54 | - return apply_filters( 'wpinv_privacy_policy_content', $content ); |
|
| 54 | + return apply_filters('wpinv_privacy_policy_content', $content); |
|
| 55 | 55 | } |
| 56 | 56 | |
| 57 | 57 | } |
@@ -3,7 +3,7 @@ discard block |
||
| 3 | 3 | * Personal data exporters. |
| 4 | 4 | */ |
| 5 | 5 | |
| 6 | -defined( 'ABSPATH' ) || exit; |
|
| 6 | +defined('ABSPATH') || exit; |
|
| 7 | 7 | |
| 8 | 8 | /** |
| 9 | 9 | * WPInv_Privacy_Exporters Class. |
@@ -17,38 +17,38 @@ discard block |
||
| 17 | 17 | * @param int $page Page. |
| 18 | 18 | * @return array An array of invoice data in name value pairs |
| 19 | 19 | */ |
| 20 | - public static function customer_invoice_data_exporter( $email_address, $page ) { |
|
| 20 | + public static function customer_invoice_data_exporter($email_address, $page) { |
|
| 21 | 21 | $done = false; |
| 22 | 22 | $page = (int) $page; |
| 23 | 23 | $data_to_export = array(); |
| 24 | 24 | |
| 25 | - $user = get_user_by( 'email', $email_address ); |
|
| 26 | - if ( ! $user instanceof WP_User ) { |
|
| 25 | + $user = get_user_by('email', $email_address); |
|
| 26 | + if (!$user instanceof WP_User) { |
|
| 27 | 27 | return array( |
| 28 | 28 | 'data' => $data_to_export, |
| 29 | 29 | 'done' => true, |
| 30 | 30 | ); |
| 31 | 31 | } |
| 32 | 32 | |
| 33 | - $args = array( |
|
| 33 | + $args = array( |
|
| 34 | 34 | 'limit' => 30, |
| 35 | 35 | 'page' => $page, |
| 36 | 36 | 'user' => $user->ID, |
| 37 | 37 | ); |
| 38 | 38 | |
| 39 | - $invoices = wpinv_get_invoices( $args ); |
|
| 39 | + $invoices = wpinv_get_invoices($args); |
|
| 40 | 40 | |
| 41 | - if ( 0 < count( $invoices ) ) { |
|
| 42 | - foreach ( $invoices as $invoice ) { |
|
| 41 | + if (0 < count($invoices)) { |
|
| 42 | + foreach ($invoices as $invoice) { |
|
| 43 | 43 | $data_to_export[] = array( |
| 44 | 44 | 'group_id' => 'customer_invoices', |
| 45 | - 'group_label' => __( 'Invoicing Data', 'invoicing' ), |
|
| 46 | - 'group_description' => __( 'Customer invoicing data.', 'invoicing' ), |
|
| 45 | + 'group_label' => __('Invoicing Data', 'invoicing'), |
|
| 46 | + 'group_description' => __('Customer invoicing data.', 'invoicing'), |
|
| 47 | 47 | 'item_id' => "wpinv-{$invoice->ID}", |
| 48 | - 'data' => self::get_customer_invoice_data( $invoice ), |
|
| 48 | + 'data' => self::get_customer_invoice_data($invoice), |
|
| 49 | 49 | ); |
| 50 | 50 | } |
| 51 | - $done = 30 > count( $invoices ); |
|
| 51 | + $done = 30 > count($invoices); |
|
| 52 | 52 | } else { |
| 53 | 53 | $done = true; |
| 54 | 54 | } |
@@ -66,59 +66,59 @@ discard block |
||
| 66 | 66 | * @param WPInv_Invoice $invoice invoice object. |
| 67 | 67 | * @return array |
| 68 | 68 | */ |
| 69 | - public static function get_customer_invoice_data( $invoice ) { |
|
| 69 | + public static function get_customer_invoice_data($invoice) { |
|
| 70 | 70 | $personal_data = array(); |
| 71 | 71 | |
| 72 | 72 | $props_to_export = array( |
| 73 | - 'number' => __( 'Invoice Number', 'invoicing' ), |
|
| 74 | - 'created_date' => __( 'Invoice Date', 'invoicing' ), |
|
| 75 | - 'status' => __( 'Invoice Status', 'invoicing' ), |
|
| 76 | - 'total' => __( 'Invoice Total', 'invoicing' ), |
|
| 77 | - 'items' => __( 'Invoice Items', 'invoicing' ), |
|
| 78 | - 'first_name' => __( 'First Name', 'invoicing' ), |
|
| 79 | - 'last_name' => __( 'Last Name', 'invoicing' ), |
|
| 80 | - 'email' => __( 'Email Address', 'invoicing' ), |
|
| 81 | - '_wpinv_company' => __( 'Company', 'invoicing' ), |
|
| 82 | - 'phone' => __( 'Phone Number', 'invoicing' ), |
|
| 83 | - 'address' => __( 'Address', 'invoicing' ), |
|
| 84 | - '_wpinv_city' => __( 'City', 'invoicing' ), |
|
| 85 | - '_wpinv_country' => __( 'Country', 'invoicing' ), |
|
| 86 | - '_wpinv_state' => __( 'State', 'invoicing' ), |
|
| 87 | - '_wpinv_zip' => __( 'Zip Code', 'invoicing' ), |
|
| 73 | + 'number' => __('Invoice Number', 'invoicing'), |
|
| 74 | + 'created_date' => __('Invoice Date', 'invoicing'), |
|
| 75 | + 'status' => __('Invoice Status', 'invoicing'), |
|
| 76 | + 'total' => __('Invoice Total', 'invoicing'), |
|
| 77 | + 'items' => __('Invoice Items', 'invoicing'), |
|
| 78 | + 'first_name' => __('First Name', 'invoicing'), |
|
| 79 | + 'last_name' => __('Last Name', 'invoicing'), |
|
| 80 | + 'email' => __('Email Address', 'invoicing'), |
|
| 81 | + '_wpinv_company' => __('Company', 'invoicing'), |
|
| 82 | + 'phone' => __('Phone Number', 'invoicing'), |
|
| 83 | + 'address' => __('Address', 'invoicing'), |
|
| 84 | + '_wpinv_city' => __('City', 'invoicing'), |
|
| 85 | + '_wpinv_country' => __('Country', 'invoicing'), |
|
| 86 | + '_wpinv_state' => __('State', 'invoicing'), |
|
| 87 | + '_wpinv_zip' => __('Zip Code', 'invoicing'), |
|
| 88 | 88 | ); |
| 89 | 89 | |
| 90 | - $subscription = wpinv_get_subscription( $invoice ); |
|
| 90 | + $subscription = wpinv_get_subscription($invoice); |
|
| 91 | 91 | $period = $initial_amt = $bill_times = $billed = $renewal_date = ''; |
| 92 | 92 | |
| 93 | - if ( $invoice->is_recurring() && !empty( $subscription ) ) { |
|
| 94 | - $frequency = WPInv_Subscriptions::wpinv_get_pretty_subscription_frequency( $subscription->period,$subscription->frequency ); |
|
| 95 | - $period = wpinv_price( wpinv_format_amount( $subscription->recurring_amount ), wpinv_get_invoice_currency_code( $subscription->parent_payment_id ) ) . ' / ' . $frequency; |
|
| 96 | - $initial_amt = wpinv_price( wpinv_format_amount( $subscription->initial_amount ), wpinv_get_invoice_currency_code( $subscription->parent_payment_id ) ); |
|
| 97 | - $bill_times = $subscription->get_times_billed() . ' / ' . ( ( $subscription->bill_times == 0 ) ? 'Until Cancelled' : $subscription->bill_times ); |
|
| 98 | - $renewal_date = ! empty( $subscription->expiration ) ? date_i18n( get_option( 'date_format' ), strtotime( $subscription->expiration ) ) : __( 'N/A', 'invoicing' ); |
|
| 99 | - |
|
| 100 | - $props_to_export['period'] = __( 'Billing Cycle', 'invoicing' ); |
|
| 101 | - $props_to_export['initial_amount'] = __( 'Initial Amount', 'invoicing' ); |
|
| 102 | - $props_to_export['bill_times'] = __( 'Times Billed', 'invoicing' ); |
|
| 103 | - $props_to_export['renewal_date'] = __( 'Renewal Date', 'invoicing' ); |
|
| 93 | + if ($invoice->is_recurring() && !empty($subscription)) { |
|
| 94 | + $frequency = WPInv_Subscriptions::wpinv_get_pretty_subscription_frequency($subscription->period, $subscription->frequency); |
|
| 95 | + $period = wpinv_price(wpinv_format_amount($subscription->recurring_amount), wpinv_get_invoice_currency_code($subscription->parent_payment_id)) . ' / ' . $frequency; |
|
| 96 | + $initial_amt = wpinv_price(wpinv_format_amount($subscription->initial_amount), wpinv_get_invoice_currency_code($subscription->parent_payment_id)); |
|
| 97 | + $bill_times = $subscription->get_times_billed() . ' / ' . (($subscription->bill_times == 0) ? 'Until Cancelled' : $subscription->bill_times); |
|
| 98 | + $renewal_date = !empty($subscription->expiration) ? date_i18n(get_option('date_format'), strtotime($subscription->expiration)) : __('N/A', 'invoicing'); |
|
| 99 | + |
|
| 100 | + $props_to_export['period'] = __('Billing Cycle', 'invoicing'); |
|
| 101 | + $props_to_export['initial_amount'] = __('Initial Amount', 'invoicing'); |
|
| 102 | + $props_to_export['bill_times'] = __('Times Billed', 'invoicing'); |
|
| 103 | + $props_to_export['renewal_date'] = __('Renewal Date', 'invoicing'); |
|
| 104 | 104 | } |
| 105 | 105 | |
| 106 | - $props_to_export['ip'] = __( 'IP Address', 'invoicing' ); |
|
| 107 | - $props_to_export['view_url'] = __( 'Invoice Link', 'invoicing' ); |
|
| 106 | + $props_to_export['ip'] = __('IP Address', 'invoicing'); |
|
| 107 | + $props_to_export['view_url'] = __('Invoice Link', 'invoicing'); |
|
| 108 | 108 | |
| 109 | - $props_to_export = apply_filters( 'wpinv_privacy_export_invoice_personal_data_props', $props_to_export, $invoice, $subscription); |
|
| 109 | + $props_to_export = apply_filters('wpinv_privacy_export_invoice_personal_data_props', $props_to_export, $invoice, $subscription); |
|
| 110 | 110 | |
| 111 | - foreach ( $props_to_export as $prop => $name ) { |
|
| 111 | + foreach ($props_to_export as $prop => $name) { |
|
| 112 | 112 | $value = ''; |
| 113 | 113 | |
| 114 | - switch ( $prop ) { |
|
| 114 | + switch ($prop) { |
|
| 115 | 115 | case 'items': |
| 116 | 116 | $item_names = array(); |
| 117 | - foreach ( $invoice->get_cart_details() as $key => $cart_item ) { |
|
| 118 | - $item_quantity = $cart_item['quantity'] > 0 ? absint( $cart_item['quantity'] ) : 1; |
|
| 117 | + foreach ($invoice->get_cart_details() as $key => $cart_item) { |
|
| 118 | + $item_quantity = $cart_item['quantity'] > 0 ? absint($cart_item['quantity']) : 1; |
|
| 119 | 119 | $item_names[] = $cart_item['name'] . ' x ' . $item_quantity; |
| 120 | 120 | } |
| 121 | - $value = implode( ', ', $item_names ); |
|
| 121 | + $value = implode(', ', $item_names); |
|
| 122 | 122 | break; |
| 123 | 123 | case 'status': |
| 124 | 124 | $value = $invoice->get_status(true); |
@@ -139,7 +139,7 @@ discard block |
||
| 139 | 139 | $value = $renewal_date; |
| 140 | 140 | break; |
| 141 | 141 | default: |
| 142 | - if ( is_callable( array( $invoice, 'get_' . $prop ) ) ) { |
|
| 142 | + if (is_callable(array($invoice, 'get_' . $prop))) { |
|
| 143 | 143 | $value = $invoice->{"get_$prop"}(); |
| 144 | 144 | } else { |
| 145 | 145 | $value = $invoice->get_meta($prop); |
@@ -147,9 +147,9 @@ discard block |
||
| 147 | 147 | break; |
| 148 | 148 | } |
| 149 | 149 | |
| 150 | - $value = apply_filters( 'wpi_privacy_export_invoice_personal_data_prop', $value, $prop, $invoice ); |
|
| 150 | + $value = apply_filters('wpi_privacy_export_invoice_personal_data_prop', $value, $prop, $invoice); |
|
| 151 | 151 | |
| 152 | - if ( $value ) { |
|
| 152 | + if ($value) { |
|
| 153 | 153 | $personal_data[] = array( |
| 154 | 154 | 'name' => $name, |
| 155 | 155 | 'value' => $value, |
@@ -158,7 +158,7 @@ discard block |
||
| 158 | 158 | |
| 159 | 159 | } |
| 160 | 160 | |
| 161 | - $personal_data = apply_filters( 'wpinv_privacy_export_invoice_personal_data', $personal_data, $invoice ); |
|
| 161 | + $personal_data = apply_filters('wpinv_privacy_export_invoice_personal_data', $personal_data, $invoice); |
|
| 162 | 162 | |
| 163 | 163 | return $personal_data; |
| 164 | 164 | |