/** * AJAX callback for movie update. * * @since 2.0 */ public function update_movie_callback() { wpmoly_check_ajax_referer('update-movie'); $movie_id = isset($_POST['movie_id']) && '' != $_POST['movie_id'] ? intval($_POST['movie_id']) : null; if (is_null($movie_id)) { wp_die(0); } $response = self::update_movie($movie_id); wpmoly_ajax_response($response, array(), wpmoly_create_nonce('update-movie')); }
/** * Callback for Queued Movies Import. * * @since 1.0 */ public static function import_queued_movie_callback() { wpmoly_check_ajax_referer('import-queued-movies'); $post_id = isset($_POST['post_id']) && '' != $_POST['post_id'] ? $_POST['post_id'] : null; $response = self::import_queued_movie($post_id); wpmoly_ajax_response($response, array(), wpmoly_create_nonce('import-queued-movies')); }
/** * Callback for WPMOLY_Import movie import method. * * Checks the AJAX nonce and calls import_movies() to * create import drafts of all movies passed through the list. * * @since 1.0 */ public static function import_movies_callback() { wpmoly_check_ajax_referer('import-movies-list'); $movies = isset($_POST['movies']) && '' != $_POST['movies'] ? esc_textarea($_POST['movies']) : null; $response = self::import_movies($movies); wpmoly_ajax_response($response, array(), wpmoly_create_nonce('import-movies-list')); }
/** * Alter the Quick Edit link in Movies Lists to update the Movie Details * current values. * * @since 1.0 * * @param array $actions List of current actions * @param object $post Current Post object * * @return string Edited Post Actions */ public static function expand_quick_edit_link($actions, $post) { global $current_screen; if (isset($current_screen) && ($current_screen->id != 'edit-movie' || $current_screen->post_type != 'movie')) { return $actions; } $nonce = wpmoly_create_nonce('set-quickedit-movie-details'); $details = WPMOLY_Settings::get_supported_movie_details(); $_details = array_keys($details); foreach ($_details as $i => $detail) { $data = call_user_func_array('wpmoly_get_movie_meta', array('post_id' => $post->ID, 'meta' => $detail)); if (is_array($data) && isset($details[$detail]['multi']) && true == $details[$detail]['multi']) { $data = '[' . implode(',', array_map(create_function('$d', 'return "\'" . $d . "\'";'), $data)) . ']'; } else { $data = "'{$data}'"; } $_details[$i] = sprintf("{$detail}: %s", $data); } $_details = '{' . implode(', ', $_details) . '}'; $actions['inline hide-if-no-js'] = '<a href="#" class="editinline" title="'; $actions['inline hide-if-no-js'] .= esc_attr(__('Edit this item inline')) . '" '; $actions['inline hide-if-no-js'] .= " onclick=\"wpmoly_edit_movies.quick_edit({$_details}, '{$nonce}')\">"; $actions['inline hide-if-no-js'] .= __('Quick Edit'); $actions['inline hide-if-no-js'] .= '</a>'; return $actions; }
/** * Provide a plugin-wide, generic method for checking AJAX nonces. * * @since 1.0 * * @param string $action Action name for nonce */ function wpmoly_check_ajax_referer($action, $query_arg = false, $die = false) { if (!$query_arg) { $query_arg = 'nonce'; } $error = new WP_Error(); $check = check_ajax_referer('wpmoly-' . $action, $query_arg, $die); if ($check) { return true; } $error->add('invalid_nonce', __('Are you sure you want to do this?')); wpmoly_ajax_response($error, null, wpmoly_create_nonce($action)); }