Я пытаюсь создать PDF-файл (DomPdf) с помощью массового действия Woocommerce. До появления HPOS это работало, но теперь уже нет.
Массовое действие добавляется в раскрывающийся список, и при выполнении действия отображается уведомление администратора.
$add_custom_download_action = function ( array $bulk_actions ) {
return array_merge( $bulk_actions, [ 'custom_download_action' => 'Perform custom download action' ] );
};
$custom_download_action_handler = function ( string $redirect_to, string $action, array $post_ids ) {
if ( $action !== 'custom_download_action' )
return $redirect_to; // Exit
require WPO_WCPDF()->plugin_path() . '/vendor/autoload.php';
$dompdf = new Dompdf\Dompdf();
$dompdf->set_paper( 'letter' , 'landscape' );
$dompdf->loadHtml($content); //this variable is build up as an html string
$dompdf->render();
$dompdf->stream('orders.pdf',array("Attachment"=>0));
return add_query_arg( 'bulk_action', 'custom-download-action-notice', $redirect_to );
};
$custom_download_action_notice = function () {
if ( isset( $_GET['bulk_action'] ) && 'custom-download-action-notice' === $_GET['bulk_action'] ) {
print '
PDF downloaded
';
}
};
add_filter( 'bulk_actions-woocommerce_page_wc-orders', $add_custom_download_action);
add_filter( 'handle_bulk_actions-woocommerce_page_wc-orders', $custom_download_action_handler, 10, 3 );
add_action( 'admin_notices', $custom_download_action_notice );
Подробнее здесь: https://stackoverflow.com/questions/791 ... ulk-action