Intereting Posts

Экспорт данных как CSV в конец с соответствующими HTTP-заголовками

Я написал плагин, который отображает все продукты в магазине woocommerce в настройках параметров admin, теперь я хочу добавить ссылку для загрузки продуктов в виде файла CSV.

Проблема в том, что когда я нажимаю ссылку, я получаю ошибку разрешения, говоря, что у меня нет разрешения на просмотр этой страницы.

Вот мой код:

function extra_tablenav($which) { if ($which == "top") { echo '<h3 style="display:inline">' . __('These products are currently in the database:') . '</h3>' . '&nbsp;&nbsp;&nbsp;' . '<a href="' . admin_url('admin.php?page=download_csv.php') . '">' . __('Export to CSV') . '</a>'; } } 

Как я могу исправить эти разрешения?

Solutions Collecting From Web of "Экспорт данных как CSV в конец с соответствующими HTTP-заголовками"

Не admin-post.php URL-адрес admin.php , вместо этого используйте admin-post.php :

 '<a href="' . admin_url( 'admin-post.php?action=print.csv' ) . '">' 

В вашем плагин-регистре обратный вызов для этого действия:

 add_action( 'admin_post_print.csv', 'print_csv' ); function print_csv() { if ( ! current_user_can( 'manage_options' ) ) return; header('Content-Type: application/csv'); header('Content-Disposition: attachment; filename=example.csv'); header('Pragma: no-cache'); // output the CSV data } 

Если вы хотите сделать данные доступными для анонимных пользователей (не вошли в систему), затем зарегистрируйте обратный вызов снова с помощью:

 add_action( 'admin_post_nopriv_print.csv', 'print_csv' ); 

… и удалите проверку функции из функции.