フォームについては、次の 2 つのフックを使用してみてください。
1) add_action('woocommerce_after_cart_table', 'add_file_to_upcoming_order');
2) add_action('woocommerce_checkout_after_customer_details', 'add_file_to_upcoming_order');
ファイルを受信/取得するには、次のようなフックを使用する必要があります。
add_action('woocommerce_init', 'file_during_checkout');
add_action( 'woocommerce_order_status_pending', 'wc_checkout_order_processed');
add_action( 'woocommerce_order_status_on-hold', 'wc_checkout_order_processed');
add_action( 'woocommerce_order_status_processing', 'wc_checkout_order_processed');
add_action( 'woocommerce_order_status_completed', 'wc_checkout_order_processed');
重要:
add_action( 'save_post', 'pre_wc_checkout_order_processed' );
説明:
実際、フックが注文状況に応じて変化する場合、アタッチメントを緩めることができます。とにかく注文が完了していないと仮定すると、PHP セッションも失われます。「save_post」フックで管理し、アップロードの添付ファイルにいくつかのフラグを追加する必要があります。
この関数wp_handle_uploadを使用して、アップロードされたファイルを処理できます。ファイルがアップロードされると、以前に追加された WooCommerce オブジェクト「WC_Order」と $order->get_items() から注文アイテムを簡単に取得できるようになります。私は昨年それを機能させようとしましたが、多くの人がそれを使用しました。これらのフックを使用して改善されたソリューションを開発できます。