<?php
-define('WP_ADMIN', TRUE);
+/**
+ * WordPress Generic Request (POST/GET) Handler
+ *
+ * Intended for form submission handling in themes and plugins.
+ *
+ * @package WordPress
+ * @subpackage Administration
+ */
+
+/** We are located in WordPress Administration Screens */
+define('WP_ADMIN', true);
if ( defined('ABSPATH') )
require_once(ABSPATH . 'wp-load.php');
else
- require_once('../wp-load.php');
+ require_once( dirname( dirname( __FILE__ ) ) . '/wp-load.php' );
-require_once(ABSPATH . 'wp-admin/includes/admin.php');
+/** Allow for cross-domain requests (from the frontend). */
+send_origin_headers();
-if ( !wp_validate_auth_cookie() )
- wp_die(__('Cheatin’ uh?'));
+require_once(ABSPATH . 'wp-admin/includes/admin.php');
nocache_headers();
-do_action('admin_init');
+/** This action is documented in wp-admin/admin.php */
+do_action( 'admin_init' );
$action = 'admin_post';
+
+if ( !wp_validate_auth_cookie() )
+ $action .= '_nopriv';
+
if ( !empty($_REQUEST['action']) )
$action .= '_' . $_REQUEST['action'];
-do_action($action);
-
-?>
\ No newline at end of file
+/**
+ * Fires the requested handler action.
+ *
+ * admin_post_nopriv_{$_REQUEST['action']} is called for not-logged-in users.
+ * admin_post_{$_REQUEST['action']} is called for logged-in users.
+ *
+ * @since 2.6.0
+ */
+do_action( $action );