Intereting Posts
Обновите и настройте панель мониторинга (update-core.php / customize.php), не загружая css Можно ли ограничивать контент в WordPress? rss работает над субдоменом, но не работает на базовом домене wordpress Отображение указанного содержимого на странице и всех ее дочерних страницах Как добавить стиль редактора style.css в wp_editor на передний план для комментариев получить количество запросов, сделанных на странице (внутри моего плагина) Обновить класс тела на основе меню изменить последние сообщения по категории Персонализированный URL-адрес для незарегистрированных в WordPress Тематическая кодировка символов Регистрировать и регистрировать условные (специфичные для браузера) файлы javascript? Как исправить старые внедренные iframes с помощью WP-CLI search-replace Получение таксономии Получить целые <li> связанные с wp_list_pages Как определить, какая зарегистрированная область боковой панели пользовательский виджет загружен в

Экспорт данных как 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' ); 

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