2015-08-24 11 views
5

I miei campi di fatturazione e i campi di spedizione sono emessi in html con 3 diversi allineamenti di riga. primo, ultimo e largo. Voglio solo impostarli per essere il primo e l'ultimo - in modo che ogni input sia vicino all'altro.Woocommerce: aiuto alla sostituzione dell'output HTML

originale:

<div class="woocommerce-billing-fields"> 

    <h3>Faktureringsdetaljer</h3> 




    <p class="form-row form-row form-row-first validate-required" id="billing_first_name_field"><label for="billing_first_name" class="">Fornavn <abbr class="required" title="påkrevet">*</abbr></label><input type="text" class="input-text " name="billing_first_name" id="billing_first_name" placeholder="" value=""></p> 

    <p class="form-row form-row form-row-last validate-required" id="billing_last_name_field"><label for="billing_last_name" class="">Etternavn <abbr class="required" title="påkrevet">*</abbr></label><input type="text" class="input-text " name="billing_last_name" id="billing_last_name" placeholder="" value=""></p><div class="clear"></div> 

    <p class="form-row form-row form-row-wide" id="billing_company_field"><label for="billing_company" class="">Navn på firma</label><input type="text" class="input-text " name="billing_company" id="billing_company" placeholder="" value=""></p> 

    <p class="form-row form-row form-row-wide address-field validate-required" id="billing_address_1_field"><label for="billing_address_1" class="">Adresse <abbr class="required" title="påkrevet">*</abbr></label><input type="text" class="input-text " name="billing_address_1" id="billing_address_1" placeholder="Gateadresse" value=""></p> 

    <p class="form-row form-row form-row-last address-field validate-required validate-postcode" id="billing_postcode_field"><label for="billing_postcode" class="">Postnummer <abbr class="required" title="påkrevet">*</abbr></label><input type="text" class="input-text " name="billing_postcode" id="billing_postcode" placeholder="Postnummer " value=""></p><div class="clear"></div> 

    <p class="form-row form-row form-row-wide address-field validate-required" id="billing_city_field"><label for="billing_city" class="">Sted <abbr class="required" title="påkrevet">*</abbr></label><input type="text" class="input-text " name="billing_city" id="billing_city" placeholder="Sted" value=""></p> 

    <p class="form-row form-row form-row-first address-field validate-state" id="billing_state_field" style="display: none"><label for="billing_state" class="">Delstat/Fylke</label><input type="hidden" class="hidden" name="billing_state" id="billing_state" value="" placeholder=""></p> 

    <p class="form-row form-row form-row-first validate-required validate-email" id="billing_email_field"><label for="billing_email" class="">Epostadresse <abbr class="required" title="påkrevet">*</abbr></label><input type="email" class="input-text " name="billing_email" id="billing_email" placeholder="" value="[email protected]"></p> 

    <p class="form-row form-row form-row-last validate-required validate-phone" id="billing_phone_field"><label for="billing_phone" class="">Telefon <abbr class="required" title="påkrevet">*</abbr></label><input type="tel" class="input-text " name="billing_phone" id="billing_phone" placeholder="" value=""></p><div class="clear"></div> 


</div> 

Quello che voglio:

<div class="woocommerce-billing-fields"> 

    <h3>Faktureringsdetaljer</h3> 




    <p class="form-row form-row form-row-first validate-required" id="billing_first_name_field"><label for="billing_first_name" class="">Fornavn <abbr class="required" title="påkrevet">*</abbr></label><input type="text" class="input-text " name="billing_first_name" id="billing_first_name" placeholder="" value=""></p> 

    <p class="form-row form-row form-row-last validate-required" id="billing_last_name_field"><label for="billing_last_name" class="">Etternavn <abbr class="required" title="påkrevet">*</abbr></label><input type="text" class="input-text " name="billing_last_name" id="billing_last_name" placeholder="" value=""></p> 

    <p class="form-row form-row form-row-first" id="billing_company_field"><label for="billing_company" class="">Navn på firma</label><input type="text" class="input-text " name="billing_company" id="billing_company" placeholder="" value=""></p> 

    <p class="form-row form-row form-row-last address-field validate-required" id="billing_address_1_field"><label for="billing_address_1" class="">Adresse <abbr class="required" title="påkrevet">*</abbr></label><input type="text" class="input-text " name="billing_address_1" id="billing_address_1" placeholder="Gateadresse" value=""></p> 

    <p class="form-row form-row form-row-first address-field validate-required validate-postcode" id="billing_postcode_field"><label for="billing_postcode" class="">Postnummer <abbr class="required" title="påkrevet">*</abbr></label><input type="text" class="input-text " name="billing_postcode" id="billing_postcode" placeholder="Postnummer " value=""></p> 

    <p class="form-row form-row form-row-last address-field validate-required" id="billing_city_field"><label for="billing_city" class="">Sted <abbr class="required" title="påkrevet">*</abbr></label><input type="text" class="input-text " name="billing_city" id="billing_city" placeholder="Sted" value=""></p> 

    <p class="form-row form-row form-row-first address-field validate-state" id="billing_state_field" style="display: none"><label for="billing_state" class="">Delstat/Fylke</label><input type="hidden" class="hidden" name="billing_state" id="billing_state" value="" placeholder=""></p> 

    <p class="form-row form-row form-row-first validate-required validate-email" id="billing_email_field"><label for="billing_email" class="">Epostadresse <abbr class="required" title="påkrevet">*</abbr></label><input type="email" class="input-text " name="billing_email" id="billing_email" placeholder="" value="[email protected]"></p> 

    <p class="form-row form-row form-row-last validate-required validate-phone" id="billing_phone_field"><label for="billing_phone" class="">Telefon <abbr class="required" title="påkrevet">*</abbr></label><input type="tel" class="input-text " name="billing_phone" id="billing_phone" placeholder="" value=""></p><div class="clear"></div> 


</div> 

Qualcuno sa dove posso ignorare questi? Ho cercato su e giù nella maggior parte dei/include nelle cartelle woocommerce. non ne ho idea.

risposta

4

È possibile specificare esattamente ciò che si desidera modificare? È piuttosto difficile confrontare e individuare la differenza.

Se si desidera solo il cambiamento delle classi su alcuni dei campi, il modo giusto per farlo è:

add_filter('woocommerce_checkout_fields' , 'custom_override_checkout_fields'); 

function custom_override_checkout_fields($fields) { 

    $fields['billing']['billing_company']['class'] = array('form-row', 'form-row', 'form-row-first'); 
    $fields['billing']['billing_address_1']['class'] = array('form-row', 'form-row', 'form-row-first', 'address-field', 'validate-required'); 
    $fields['billing']['billing_postcode']['class'] = array('form-row', 'form-row', 'form-row-first', 'address-field', 'validate-required'); 
    $fields['billing']['billing_city']['class'] = array('form-row', 'form-row', 'form-row-last', 'address-field', 'validate-required'); 
    $fields['billing']['billing_state']['class'] = array('form-row', 'form-row', 'form-row-first', 'address-field', 'validate-state'); 
    $fields['billing']['billing_email']['class'] = array('form-row', 'form-row', 'form-row-first', 'address-field', 'validate-email'); 
    $fields['billing']['billing_phone']['class'] = array('form-row', 'form-row', 'form-row-last', 'address-field', 'validate-phone'); 
    return $fields; 
} 

devi assolutamente non usare JavaScript per questo.

+1

Grazie @Permered - Proprio quello di cui avevo bisogno. un piccolo inconveniente è il '

' che viene emesso subito dopo '['billing_postcode']'. Come lo rimuovo? – user1769411

+1

Ah, basta aggiungere '$ campi ['fatturazione'] ['billing_postcode'] ['clear'] = ''' – Pelmered

+1

Per ulteriori modifiche basta var_dump i 'campi $ 'per avere un'idea di cosa dovresti cambiare per ottenere il cambiamenti desiderati. In realtà è piuttosto semplice quando leggi l'output. – Pelmered

1

Aggiungere questa classe sembra essere aggiunto dinamicamente dal tema o da un plugin è difficile da tracciare il file di root per la causa dell'aggiunta di queste classi.

Per modificare le classi è necessario utilizzare jQuery come ultima risorsa. Fortunatamente esistono ID per ciascun campo in modo da poter selezionare elementi specifici e modificarne le proprietà.

Ecco un codice che potrebbe essere di aiuto.

jQuery("#billing_company_field").removeClass("form-row-wide").addClass("form-row-first"); 

Il codice sopra riportato cambierà classe per un solo elemento div. Usa, Modifica e aggiungi l'altro codice necessario. Questo codice deve essere accodato nella pagina in cui è necessario modificare le modifiche.

+0

Sì, questa è davvero l'ultima risorsa. Ma in questo caso, è molto facile cambiarlo nel modo giusto. – Pelmered

Problemi correlati