Advertisement
businessdad

How to hide checkout fields based on cart contents

Mar 24th, 2018
248
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.18 KB | None | 0 0
  1. /**
  2.  * Hides checkout fields based on the products in the cart
  3.  *
  4.  * @param array $fields
  5.  * @return array
  6.  */
  7. function conditional_checkout_fields_products( $fields ) {
  8.   $cart = WC()->cart->get_cart();
  9.  
  10.   foreach ( $cart as $item_key => $values ) {
  11.     $product = $values['data'];
  12.    
  13.     if ( $product->get_id() == 3652 ) {
  14.       // Remove billing address
  15.       unset( $fields['billing']['billing_company'] );
  16.       unset( $fields['billing']['billing_address_1'] );
  17.       unset( $fields['billing']['billing_address_2'] );
  18.       unset( $fields['billing']['billing_postcode'] );
  19.       unset( $fields['billing']['billing_city'] );
  20.       unset( $fields['billing']['billing_country'] );
  21.  
  22.       // Remove shipping address
  23.       unset( $fields['shipping']['shipping_company'] );
  24.       unset( $fields['shipping']['shipping_address_1'] );
  25.       unset( $fields['shipping']['shipping_address_2'] );
  26.       unset( $fields['shipping']['shipping_postcode'] );
  27.       unset( $fields['shipping']['shipping_city'] );
  28.       unset( $fields['shipping']['shipping_country'] );
  29.     }
  30.   }
  31.  
  32.   return $fields;
  33. }
  34. add_filter( 'woocommerce_checkout_fields', 'conditional_checkout_fields_products' );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement