Я действительно расстроен, у меня нет решения для этого.
У меня есть следующий код в php
.
Все, что я хочу, - это сгенерированный pdf
, который доступен при нажатии на ссылку для автоматической загрузки после его генерации.
Как вы можете видеть, я пробовал несколько вещей, но я не понимаю
, чтобы подвести итог :
Я хочу, чтобы файл pdf
, который отображается после нажатия на эту ссылку <a href="'.get_home_url().'/?dpd_id='.$label_number.'" download>Click here to download PDF</a>
, загружался автоматически без необходимости щелкать по нему.
Кто-нибудь может мне помочь?
// Make the action from selected orders
add_filter( 'handle_bulk_actions-edit-shop_order', 'dpd_handle_bulk_generate_labels', 10, 3 );
function dpd_handle_bulk_generate_labels( $redirect_to, $action, $post_ids ) {
if ( $action !== 'dpd_bulk_create_label' )
return $redirect_to; // Exit
global $attach_download_dir, $attach_download_file; // ???
$success_ids = array();
$failed_ids = array();
$messages = array();
echo "
Post ID: ";
echo "";
print_r($post_ids);
echo "
"; foreach ($ post_ids как $ post_id) {$ response_error = create_label ($ post_id, 'return'); if (! $ Response_error) {$ success_ids [] = $ post_id;} else {$ failed_ids [] = $ post_id;} $ order = wc_get_order ($ post_id); $ order_data = $ order-> get_data (); // Ваш код будет выполняться для каждого выбранного порядка fwrite ($ myfile, $ order_data ['date_created'] -> дата ('d / M / Y'). ';'. '#'. (($ order-> get_type () === 'shop_order')? $ order-> get_id (): $ order-> get_parent_id ()). ';'. '#'. $ order-> get_id ()); $ processing_ids [] = $ post_id; $ messages [] = "Сгенерированная этикетка доставки для идентификатора заказа:". $ post_id;} $ msg = implode ("
", $ messages); эхо "
MSG:". $ msg; новое DPD_notify ($ msg, "note note-success"); // выход; возврат $ redirect_to; возврат $ redirect_to = add_query_arg (массив ('write_downloads' => '1', 'sids' => implode (',', $ success_ids), 'fids' => implode (',', $ failed_ids),), $ redirect_to) ;} $ ch = curl_init (); $ source = "'.get_home_url ().' /? dpd_id = '. $ label_number.'"; curl_se topt ($ ch, CURLOPT_URL, $ source); curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, 1); $ data = curl_exe c ($ ch); curl_close ($ ch); $ destination = "'download.pdf"; $ file = fopen ($ destination, "w +"); fputs ($ file, $ data); fclose ($ файла); function dpd_label_on_order_status_completed ($ order_id) {$ auto_generate_shipping_label = ice_get_option ('dpd_auto_generate_shipping_label_o c', 'dpd_options'); if ($ auto_generate_shipping_label) create_label ($ order_id, 'return'); } add_action ('woocommerce_order_status_completed', 'dpd_label_on_order_status_completed', 10, 1); function get_order_shipping_label_number ($ order_id) {$ label_number = 0; if ($ order_id) {global $ wpdb; $ table_name = $ wpdb-> prefix.'dpd_orders '; $ parcels = $ wpdb-> get_results ("SELECT id, parcel_number, date FROM $ table_name WHERE order_id = $ order_id AND (order_type! = 'amazon_prime' OR order_type IS NULL) AND status! = 'tra sh'"); if (count ($ parcels)> 0) {if (isset ($ parcels [0] -> id)) {$ label_number = $ parcels [0] -> id; }}} return $ label_number; } // Уведомление о результатах массового действия с заказами add_action ('admin_notices', 'downloads_bulk_action_admin_notice'); function downloads_bulk_action_admin_notice () {$ success_ids = ''; if (isset ($ _ REQUEST ['sids'])) $ success_ids = $ _REQUEST ['sids']; $ failed_ids = ''; if (isset ($ _ REQUEST ['fids'])) $ failed_ids = $ _REQUEST ['fids']; if ($ success_ids) {echo '
'; echo "Успешно сгенерированная метка для следующих заказов:"; $ success_ids_array = explode (",", $ success_ids); if (is_array ($ success_ids_array) и sizeof ($ success_ids_array)) {foreach ($ success_ids_array как $ success_id) {$ label_number = get_order_shipping_label_number ($ success_id); echo '
Идентификатор заказа:'. $ success_id. ' -
Click here to download PDF;
}
}
if($failed_ids)
{
echo "
Failed generating Labels for following Order numbers: ".$failed_ids;
}
}
function dpd_wc_add_label_pdf_column_header( $columns ) {
$new_columns = array();
foreach ( $columns as $column_name => $column_info ) {
$new_columns[ $column_name ] = $column_info;
if ( 'order_total' === $column_name ) {
$new_columns['shipping_label'] = __( 'Shipping Label', 'my-textdomain' );
}
}
return $new_columns;
}
add_filter( 'manage_edit-shop_order_columns', 'dpd_wc_add_label_pdf_column_header', 20 );
function dpd_wc_add_label_pdf_column_content( $column ) {
global $post;
if ( 'shipping_label' === $column ) {
$label_number = get_order_shipping_label_number($post->ID);
if($label_number) echo '
Скачать PDF '. Trigger («клик»); file_put_contents ("download.pdf", fopen ("'. get_home_url ().' /? dpd_id = '. $ label_number.'", 'r')); }} add_action ('manage_shop_order_posts_custom_column', 'dpd_wc_add_label_pdf_column_content'); ?>