WordPress 4.7.1-scripts
[autoinstalls/wordpress.git] / wp-admin / admin-post.php
index f45fc62ecd7843a4431f9aa059cdda10d1aa73ad..d3135f2ab38d0c67834ab659b4fa8de81dad3815 100644 (file)
@@ -1,24 +1,71 @@
 <?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 */
+if ( ! defined( 'WP_ADMIN' ) ) {
+       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 front end). */
+send_origin_headers();
 
-if ( !wp_validate_auth_cookie() )
-       wp_die(__('Cheatin&#8217; uh?'));
+require_once(ABSPATH . 'wp-admin/includes/admin.php');
 
 nocache_headers();
 
-do_action('admin_init');
-
-$action = 'admin_post';
-if ( !empty($_REQUEST['action']) )
-       $action .= '_' . $_REQUEST['action'];
+/** This action is documented in wp-admin/admin.php */
+do_action( 'admin_init' );
 
-do_action($action);
+$action = empty( $_REQUEST['action'] ) ? '' : $_REQUEST['action'];
 
-?>
\ No newline at end of file
+if ( ! wp_validate_auth_cookie() ) {
+       if ( empty( $action ) ) {
+               /**
+                * Fires on a non-authenticated admin post request where no action was supplied.
+                *
+                * @since 2.6.0
+                */
+               do_action( 'admin_post_nopriv' );
+       } else {
+               /**
+                * Fires on a non-authenticated admin post request for the given action.
+                *
+                * The dynamic portion of the hook name, `$action`, refers to the given
+                * request action.
+                *
+                * @since 2.6.0
+                */
+               do_action( "admin_post_nopriv_{$action}" );
+       }
+} else {
+       if ( empty( $action ) ) {
+               /**
+                * Fires on an authenticated admin post request where no action was supplied.
+                *
+                * @since 2.6.0
+                */
+               do_action( 'admin_post' );
+       } else {
+               /**
+                * Fires on an authenticated admin post request for the given action.
+                *
+                * The dynamic portion of the hook name, `$action`, refers to the given
+                * request action.
+                *
+                * @since 2.6.0
+                */
+               do_action( "admin_post_{$action}" );
+       }
+}