Support » E-handel » Woocommerce ta bort fält i kassan beroende på kategori

  • Hej, finns det något kodexempel på att ta bort vissa fält från kassan baserat på katergori eller etikett?

    Tidigare användes denna kod i en anpassad form-billing.php men det fungerar inte längre och antagligen bättre att lägga det i functions.php:

    <div class="woocommerce-billing-fields">
    	<?php if ( wc_ship_to_billing_address_only() && WC()->cart->needs_shipping() ) : ?>
    		<h3><?php _e( 'Billing & Shipping', 'woocommerce' ); ?></h3>
    	<?php else : ?>
    		<h3><?php global $woocommerce; if (organisation_in_cart()==true && WC()->cart->total==0) { echo 'Din e-postadress'; } else{ _e( 'Billing Details', 'woocommerce' ); } ?></h3>
    	<?php endif; ?>
    • Detta ämne redigerades 4 månader, 1 vecka sedan av  Tor-Bjorn Fjellner. Anledning: Markerade koden som kod
Visar 1 svar - 1 till 3 (av 3 totalt)
  • Tjena Peter,

    Spana in följande kodexempel:
    https://gist.github.com/cryptexvinci/75ba823a824b29e04a08ee7893fc0ee5

    Du kan lägga den i din functions.php och det enda du behöver lägga till är den logiken du vill ha innan du tar bort fältet.

    Du måste fundera på hur du vill ha logiken i ditt exempel, vad händer tex om det ligger två varor i korgen där den ena har en kategori och en annan inte har det?

    Fick även tips om följande artikel som har ett exempel där man loopar igenom varukorgen: https://nicola.blog/2015/03/03/hide-checkout-fields-based-on-products-in-cart/

    Hej, perfekt, Nicolas blog är riktigt bra. Såg nu att functions.php redan har kollen men den fungerar inte längre efter uppdateringar av woocommerce. Ärvd site så jag har dålig koll på den tidigare kodningen 🙂

    // Remove billing-fields when order total = 0
    add_filter( 'woocommerce_checkout_fields', 'remove_checkout_fields_when_ordertotal_is_zero', 20 );
    
    function remove_checkout_fields_when_ordertotal_is_zero( $fields ) {
    	global $woocommerce;
    	// if the total is more than 0 then we still need the fields
    	if ( 0 != $woocommerce->cart->total ) {
    		return $fields;
    	}
    	// return the regular billing fields if we need shipping fields
    	if ( $woocommerce->cart->needs_shipping() ) {
    		return $fields;
    	}
      // we don't need the billing fields so empty all of them except the email
      unset($fields['billing']['billing_first_name']);
      unset($fields['billing']['billing_last_name']);
      unset($fields['billing']['billing_company']);
      unset($fields['billing']['billing_address_1']);
      unset($fields['billing']['billing_city']);
      unset($fields['billing']['billing_postcode']);
      unset($fields['billing']['billing_country']);
      unset($fields['billing']['billing_state']);
      unset($fields['billing']['billing_phone']);
    	return $fields;
    }
    • Detta svar redigerades 4 månader, 1 vecka sedan av  Tor-Bjorn Fjellner. Anledning: Markerade kod som kod
Visar 1 svar - 1 till 3 (av 3 totalt)
  • Du måste vara inloggad för att svara på detta ämne.