Importera produkter i WooCommerce Installera WooCommerce Konfigurera WooCommerce Webbutik Webbshop E-handel Anpassat fält i WooCommerce kassa

Anpassat fält i WooCommerce kassa

5 maj, 2020
Chrille Hedberg
Anpassat fält | Hook | WooCommerce

Lägg till ett anpassat fält i WooCommerce kassa

Ibland kan man ju, av någon anledning, vilja ha ett extra fält i kassan som kunden måste fylla i för att kunna komma vidare. Dessutom vill man ju gärna ha det kopplat till den ordern som kunden lägger. Vad är liksom vitsen med att ha fältet där annars? Jag hjälpte en bekant som jobbar med försäljning via Instagram att lägga in detta fält i kassan. Kunderna måste ange sitt namn på Instagram för att kunna komma vidare.

Det går att lösa, men det kräver att du har ett barntema installerat och aktiverat.

/**
 * ITprojekt med Team Lenom
 * Chrille Hedberg
 * chrille.hedberg@teamlenom.se
 */

// Lägger till fältet i checkout

add_action( 'woocommerce_after_order_notes', 'itprojekt_eget_falt_i_kassan' );

function itprojekt_eget_falt_i_kassan( $checkout ) {

    woocommerce_form_field( '_anpassat_falt_i_kassa', array(
        'type'          => 'text',
        'class'         => array('my-field-class form-row-wide'),
        'label'         => __('Etikett för fält'), //Byt etikett på fältet här
        'placeholder'   => __(''),
        'required'		=> 'true',
        ), $checkout->get_value( '_anpassat_falt_i_kassa' ));

    echo '</div>';

}

// Kollar att något verkligen finns ifyllt i fältet

add_action('woocommerce_checkout_process', 'itprojekt_anpassat_falt_checkup');

function itprojekt_anpassat_falt_checkup() {

    if ( ! $_POST['_anpassat_falt_i_kassa'] )
        wc_add_notice( __( 'Felmeddelande anges här.' ), 'error' ); //Ange felmeddelande här
}

// Skriver till meta

add_action( 'woocommerce_checkout_update_order_meta', 'itprojekt_skriv_anpassat_falt_till_meta' );

function itprojekt_skriv_anpassat_falt_till_meta( $order_id ) {

    if ( ! empty( $_POST['_anpassat_falt_i_kassa'] ) ) {
        update_post_meta( $order_id, '_anpassat_falt_i_kassa', sanitize_text_field( $_POST['_anpassat_falt_i_kassa'] ) );
        
    }
}

// Lägger till funktion i backend, visar i orderhuvud

add_action( 'woocommerce_admin_order_data_after_billing_address', 'visa_anpassat_falt_i_admin', 10, 1 );

function visa_anpassat_falt_i_admin($order){
    echo '<p><strong>'.__('Rubrik före fält').':</strong><br> ' . get_post_meta( $order->id, '_anpassat_falt_i_kassa', true ) . '</p>';
}

Då kommer du få detta fält i botten på kassan:

Anpassat fält i WooCommerce Kassa

Naturligtvis kan du justera rubriken till att vara vad som helst än ”etikett för fält”. Ändrar du ’required’ => ’true’ till ’false’ så är fältet inte obligatoriskt.

Vill du läsa mer om hookar till WooCommerce finns det en hel del i dokumentationen.

Ett annat anpassat fält i WooCommerce kan ju läggas till i administrationen av produkter. Vill du veta hur du lägger till extra fält på produkter kan du läsa denna artikel.

Så enkelt lägger man till ett anpassat fält i WooCommerce. 🙂

Chrille Hedberg

Chrille Hedberg

Jag har jobbat med WordPress i dryga 10 års tid, främst på hobbynivå. Jag har blivit lite av en mästare på att knyta ihop olika tillägg för att få funktioner att lira ihop som de ska. Jag har också blivit rätt bra på det! Har nu startat ITprojekt.se främst för att hjälpa småföretagare som sitter illa till på grund av coronasituationen. Tillsammans med kollegan Martin tar vi olika uppdrag inom just området ITprojekt, men vi taggas lite extra av att kombinera teknik med försäljning. Har bakgrund från vården innan jag skolade om mig till ingenjör och sedan trillade in på bana som säljare. Jobbar nu med teknisk försäljning och är regionansvarig för motsvarande halva Sveriges yta.

0 kommentarer

Trackbacks/Pingbacks

  1. Skapa eget fält för produktdata • ITprojekt med Team Lenom - […] eller lägga till lite egen information vid beställningar, och skrev därför hur man lägger till anpassade fält i WooCommerce…

Skicka en kommentar

E-postadressen publiceras inte. Obligatoriska fält är märkta *

Dela detta