في الفيديو ده، هنعلمك إزاي تضيف وتزيل حقول في صفحة الدفع في WooCommerce بسهولة باستخدام إضافة مجانية. كمان هنتناول إزاي تضيف حقول مخصصة على حسب المنتجات باستخدام كود مخصص. سواء كنت بتدور على تبسيط عملية الدفع لعملائك أو تحسين تجربة المستخدم، الفيديو ده هيساعدك تحقق ده بخطوات بسيطة وواضحة.
الكود المستخدم
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
/** * Adds custom fields to the checkout page for a specific product. */ function nagdy_add_custom_checkout_fields( ) { $specific_product_ids = array( 73, 456 ); $product_in_cart = false; foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) { if ( in_array($cart_item['product_id'], $specific_product_ids) ) { $product_in_cart = true; break; } } if ( $product_in_cart ) { woocommerce_form_field( 'request_info', array( 'type' => 'textarea', 'class' => array('request_info form-row-wide'), 'label' => __('More Information', 'woocommerce'), 'placeholder' => __('Please tell me more about the request', 'woocommerce'), 'required' => true, ), WC()->checkout()->get_value( 'request_info' )); } } add_action( 'woocommerce_after_checkout_billing_form', 'nagdy_add_custom_checkout_fields' ); /** * Save the custom fields data when the checkout form is submitted. */ function nagdy_save_custom_checkout_fields( $order_id ) { if ( ! empty( $_POST['request_info'] ) ) { update_post_meta( $order_id, 'Request Information', wc_sanitize_textarea( $_POST['request_info'] ) ); } } add_action( 'woocommerce_checkout_update_order_meta', 'nagdy_save_custom_checkout_fields' ); /** * Display the custom fields in the order emails. */ function nagdy_display_custom_fields_in_emails( $order, $sent_to_admin, $plain_text, $email ) { echo '<h2>' . __('Additional Information', 'woocommerce') . '</h2>'; echo '<p><strong>' . __('Request Info:', 'woocommerce') . '</strong> ' . get_post_meta( $order->get_id(), 'Request Information', true ) . '</p>'; } add_action( 'woocommerce_email_order_meta', 'nagdy_display_custom_fields_in_emails', 20, 4 ); /** * Display custom fields on the order details page. */ function nagdy_display_custom_fields_on_order_details( $order ) { echo '<h2>' . __('Additional Information', 'woocommerce') . '</h2>'; echo '<ul>'; echo '<li><strong>' . __('Request Info:', 'woocommerce') . '</strong> ' . get_post_meta( $order->get_id(), 'Request Information', true ) . '</li>'; echo '</ul>'; } add_action( 'woocommerce_order_details_after_order_table', 'nagdy_display_custom_fields_on_order_details', 10, 1 ); function nagdy_display_custom_fields_on_admin_order_details( $order ) { echo '<div class="order_data_column">'; echo '<h4>' . __('Additional Information', 'woocommerce') . '</h4>'; echo '<p><strong>' . __('Request Information:', 'woocommerce') . '</strong> ' . get_post_meta( $order->get_id(), 'Request Information', true ) . '</p>'; echo '</div>'; } add_action( 'woocommerce_admin_order_data_after_shipping_address', 'nagdy_display_custom_fields_on_admin_order_details', 10, 1 ); |