Avatar billede Morten Professor
10. juni 2018 - 05:30 Der er 4 kommentarer og
1 løsning

Wordpress Woocommerce Varianter

Hej

Jeg vil høre om i kan hjælpe mig med, at få mit selectet variation af produkt, til at komme i kurven.
Har fået det meste til at virke, men når jeg vælger en variabel af et produkt, vælger den det sidste variabel af produkt i databasen.
Jeg ved ikke hvad der skal til, at få det til at virke.
Her er koden

<form class="variable" action="<?php echo esc_url( $product->add_to_cart_url() ); ?>" method="post" enctype='multipart/form-data'>
<?php
$available_variations = $product->get_available_variations();

if( count($available_variations) > 0 ){

$output = '<div class="product-variations-dropdown">
<select id="available-variations" class="" name="available_variations">';

$output .= '<option value="">'. __('Choose a variation') .'</option>';

foreach( $available_variations as $variation ){
$option_value = array();

foreach( $variation['attributes'] as $attribute => $term_slug ){
$taxonomy = str_replace( 'attribute_', '', $attribute );
$attribute_name = get_taxonomy( $taxonomy )->labels->singular_name; // Attribute name
$term_name = get_term_by( 'slug', $term_slug, $taxonomy )->name; // Attribute value term name

$option_value[] = $attribute_name . ': '.$term_name;
}
$option_value = implode( ' | ', $option_value );

$output .= '<option value="'.$variation['variation_id'].'">'.$option_value.'</option>';

}
$output .= '
</select>
</div>';

echo $output;
} ?>
<?php foreach( $available_variations as $variation ){ ?>
<input type="hidden" name="variation_id" value="<?php echo $variation['variation_id']?>" /><----Denne linje gør at der bliver valgt en variant
<?php } ?>
<input type="hidden" name="product_id" value="<?php echo esc_attr( $post->ID ); ?>" />
<input type="hidden" name="add-to-cart" value="<?php echo esc_attr( $post->ID ); ?>" />
<button type="submit" class="single_button_variable button alt"><?php echo apply_filters('single_add_to_cart_text', __( 'Add to cart', 'woocommerce' ), $product->product_type); ?></button>
</form>

Med venlig hilsen
Morten
Avatar billede a3-seo.dk Ekspert
10. juni 2018 - 08:54 #1
Hej Morten

Allerførst vil jeg sige, at det er en rigtig dårlig idè og "pille" i selve koden i WooCommerce, uden først at have spurgt support forummet på: https://wordpress.org/support/plugin/woocommerce

Et variabelt produkt, vil ikke "normalt" tage et (forudvalgt/sidste valgte), har du prøvet, at logge ud og logge ind igen, for at se om dette stadigt er tilfældet???
Evt. med en anden bruger konto??
Avatar billede stjans Guru
10. juni 2018 - 09:09 #2
Enig med a3-seo.dk

Variable produkter er jo allerede en integreret del af WC, så hvorfor opfinde den dybe tallerken igen ? :-)
Avatar billede Morten Professor
10. juni 2018 - 09:12 #3
Hej

Jeg fandt en løsning, eller fandt problemet "<select id="available-variations" class="" name="available_variations">';" Skulle være "<select id="available-variations" class="" name="variation_id">';"det jeg gør er i functions.php i mit child theme.
Så jeg laver ikke om på noget plugin, men kun i theme.
Avatar billede Morten Professor
10. juni 2018 - 09:14 #4
Det er ikke en sandrat løsning i WC da der bliver lavet en variabel scroll, med en sammenhængene variabel.
For eks. Længde 182 | bredde 33

I stedet for at have to forskellige select :)
Avatar billede stjans Guru
11. juni 2018 - 06:48 #5
Aaaah - ok.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester