| 225 | |
| 226 | function get_http_origin() { |
| 227 | $origin = ''; |
| 228 | if ( ! empty ( $_SERVER[ 'HTTP_ORIGIN' ] ) ) |
| 229 | $origin = $_SERVER[ 'HTTP_ORIGIN' ]; |
| 230 | |
| 231 | return apply_filters( 'http_origin', $origin ); |
| 232 | } |
| 233 | |
| 234 | function get_allowed_http_origins() { |
| 235 | $admin_origin = parse_url( admin_url() ); |
| 236 | $home_origin = parse_url( home_url() ); |
| 237 | |
| 238 | // @todo preserve port? |
| 239 | $allowed_origins = array( |
| 240 | 'http://' . $admin_origin[ 'host' ], |
| 241 | 'https://' . $admin_origin[ 'host' ], |
| 242 | 'http://' . $home_origin[ 'host' ], |
| 243 | 'https://' . $home_origin[ 'host' ], |
| 244 | ); |
| 245 | |
| 246 | return apply_filters( 'allowed_http_origins' , $allowed_origins ); |
| 247 | } |
| 248 | |
| 249 | function get_allowed_http_origin() { |
| 250 | $origin = get_http_origin(); |
| 251 | |
| 252 | if ( $origin && ! in_array( $origin, get_allowed_http_origins() ) ) |
| 253 | $origin = ''; |
| 254 | |
| 255 | return apply_filters( 'allowed_http_origin', $origin ); |
| 256 | } |
| 257 | |
| 258 | function send_origin_headers() { |
| 259 | if ( ! $origin = get_allowed_http_origin() ) |
| 260 | return; |
| 261 | |
| 262 | @header( 'Access-Control-Allow-Origin: ' . $origin ); |
| 263 | @header( 'Access-Control-Allow-Credentials: true' ); |
| 264 | } |
| 265 | No newline at end of file |