Un utente ha chiesto informazioni su WooCommerce Bulk Discount di Wordpress

Mostra lo sconto sulla pagina del prodotto

Un utente ha chiesto 👇

Mi è piaciuto molto il plugin, quindi ho creato una funzione per mostrare lo sconto per una singola pagina di prodotto. Aggiungilo a functions.php del tuo tema

// for Bulk discounts
add_filter( 'woocommerce_variable_price_html', 'webexpert_apply_to_productpage', 10, 2 );
add_filter( 'woocommerce_get_price_html', 'webexpert_apply_to_productpage', 10, 2 );

function webexpert_apply_to_productpage( $price, $product ) {
    $original_product=$product;
	$q = array( 0.0 );
	$d = array( 0.0 );
    $quantity=1;

	$configurer = get_page_by_title( 'wc_bulk_discount_configurer', OBJECT, 'product' );
	if ( $configurer && $configurer->ID && $configurer->post_status == 'private' ) {
		$product_id = $configurer->ID;
	}
	if ($product instanceof WC_Product_Variation) {
		$product_id = $product->get_parent_id();
	}else {
	    $product->get_id();
	}

	/* Find the appropriate discount coefficient by looping through up to the five discount settings */
	for ( $i = 1; $i <= 5; $i++ ) {
		array_push( $q, get_post_meta( $product_id, "_bulkdiscount_quantity_$i", true ) );
		if ( get_option( 'woocommerce_t4m_discount_type', '' ) == 'flat' ) {
			array_push( $d, get_post_meta( $product_id, "_bulkdiscount_discount_flat_$i", true ) ? get_post_meta( $product_id, "_bulkdiscount_discount_flat_$i", true ) : 0.0 );
		} else if ( get_option( 'woocommerce_t4m_discount_type', '' ) == 'fixed' ) {
			array_push( $d, get_post_meta( $product_id, "_bulkdiscount_discount_fixed_$i", true ) ? get_post_meta( $product_id, "_bulkdiscount_discount_fixed_$i", true ) : 0.0 );
		} else {
			array_push( $d, get_post_meta( $product_id, "_bulkdiscount_discount_$i", true ) ? get_post_meta( $product_id, "_bulkdiscount_discount_$i", true ) : 0.0 );
		}
		if ( $quantity >= $q[$i] && $q[$i] > $q[0] ) {
			$q[0] = $q[$i];
			$d[0] = $d[$i];
		}
	}
	// for percentage discount convert the resulting discount from % to the multiplying coefficient
	if ( get_option( 'woocommerce_t4m_discount_type', '' ) == 'fixed' ) {
		$coeff= max( 0, $d[0] * $quantity );
	}
    $coeff=( get_option( 'woocommerce_t4m_discount_type', '' ) == 'flat' ) ? max( 0, $d[0] ) : min( 1.0, max( 0, ( 100.0 - round( $d[0], 2 ) ) / 100.0 ) );

    if ($product instanceof WC_Product_Variation) {
        $min_var_reg_price = $original_product->get_variation_sale_price( 'min', true );
    }else {
        $min_var_reg_price=$product->get_price();
    }

    $min_var_sale_price = $min_var_reg_price * $coeff ;

    if ( $min_var_sale_price!=$min_var_reg_price ) {
    $price = sprintf( __( '<del>%1$s</del><ins>%2$s</ins>', 'woocommerce' ), wc_price( $min_var_reg_price ), wc_price( $min_var_sale_price ) );
    } else {
    $price = sprintf( __( '%1$s', 'woocommerce' ), wc_price( $min_var_reg_price ) );
    }

    return $price;

(@bpweba)

3 anni, 2 mesi fa

Ciao
Sto anche cercando questa soluzione. Ho copiato il codice, ma non è cambiato nulla nella pagina del prodotto. C’è una possibilità che mi manchi qualcosa?

il migliore

(@kirstyhosking)

2 anni, 11 mesi fa

Ciao, chi dice che in questo codice mancano le parentesi ricci?

Mi è piaciuto molto poter mostrare le opzioni di sconto!

Lanciatore di thread

(@seldimi)

2 anni, 11 mesi fa

Metti un file } in fondo al codice

Lo includo di nuovo qui, poiché non posso modificare il mio post originale

<?php

// for Bulk discounts
add_filter( 'woocommerce_variable_price_html', 'webexpert_apply_to_productpage', 10, 2 );
add_filter( 'woocommerce_get_price_html', 'webexpert_apply_to_productpage', 10, 2 );

function webexpert_apply_to_productpage( $price, $product ) {
    $original_product=$product;
	$q = array( 0.0 );
	$d = array( 0.0 );
    $quantity=1;

	$configurer = get_page_by_title( 'wc_bulk_discount_configurer', OBJECT, 'product' );
	if ( $configurer && $configurer->ID && $configurer->post_status == 'private' ) {
		$product_id = $configurer->ID;
	}
	if ($product instanceof WC_Product_Variation) {
		$product_id = $product->get_parent_id();
	}else {
	    $product->get_id();
	}

	/* Find the appropriate discount coefficient by looping through up to the five discount settings */
	for ( $i = 1; $i <= 5; $i++ ) {
		array_push( $q, get_post_meta( $product_id, "_bulkdiscount_quantity_$i", true ) );
		if ( get_option( 'woocommerce_t4m_discount_type', '' ) == 'flat' ) {
			array_push( $d, get_post_meta( $product_id, "_bulkdiscount_discount_flat_$i", true ) ? get_post_meta( $product_id, "_bulkdiscount_discount_flat_$i", true ) : 0.0 );
		} else if ( get_option( 'woocommerce_t4m_discount_type', '' ) == 'fixed' ) {
			array_push( $d, get_post_meta( $product_id, "_bulkdiscount_discount_fixed_$i", true ) ? get_post_meta( $product_id, "_bulkdiscount_discount_fixed_$i", true ) : 0.0 );
		} else {
			array_push( $d, get_post_meta( $product_id, "_bulkdiscount_discount_$i", true ) ? get_post_meta( $product_id, "_bulkdiscount_discount_$i", true ) : 0.0 );
		}
		if ( $quantity >= $q[$i] && $q[$i] > $q[0] ) {
			$q[0] = $q[$i];
			$d[0] = $d[$i];
		}
	}
	// for percentage discount convert the resulting discount from % to the multiplying coefficient
	if ( get_option( 'woocommerce_t4m_discount_type', '' ) == 'fixed' ) {
		$coeff= max( 0, $d[0] * $quantity );
	}
    $coeff=( get_option( 'woocommerce_t4m_discount_type', '' ) == 'flat' ) ? max( 0, $d[0] ) : min( 1.0, max( 0, ( 100.0 - round( $d[0], 2 ) ) / 100.0 ) );

    if ($product instanceof WC_Product_Variation) {
        $min_var_reg_price = $original_product->get_variation_sale_price( 'min', true );
    }else {
        $min_var_reg_price=$product->get_price();
    }

    $min_var_sale_price = $min_var_reg_price * $coeff ;

    if ( $min_var_sale_price!=$min_var_reg_price ) {
    $price = sprintf( __( '<del>%1$s</del><ins>%2$s</ins>', 'woocommerce' ), wc_price( $min_var_reg_price ), wc_price( $min_var_sale_price ) );
    } else {
    $price = sprintf( __( '%1$s', 'woocommerce' ), wc_price( $min_var_reg_price ) );
    }

    return $price;
}

Questa risposta è stata modificata 2 anni, 11 mesi fa da.

(@triscariwebteam)

2 anni, 11 mesi fa

Non riesco a farlo funzionare abbastanza? L’ho inserito nelle mie funzioni del tema ma poi non mi permette di aggiungere al grafico o visualizzare un prezzo? Per favore aiuto ?!

(@appweb)

2 anni, 7 mesi fa

Ciao Seldimi
Se provassi ad aggiungerlo al mio functions.php del mio tema

Ma non succede niente… ..?

Ti auguro il meglio
AppWeb
Danimarca

(@gerdski)

2 anni, 6 mesi fa

Ciao,

L’ho fatto funzionare cambiando qualcosa. Nella riga 20 cambia

$ prodotto-> get_id ();
per
$ product_id = $ product-> get_id ();

In bocca al lupo!

(@appweb)

2 anni, 6 mesi fa

Ciao Gerdski
Sár …!
sai come creare un listino prezzi / tabella sconti sulla pagina di un singolo prodotto
con prezzo (dettagli) da WooCommerce Bulk Discount
Ti auguro il meglio
AppWeb
Danimarca

(@jocampo)

2 anni, 5 mesi fa

Ciao, qualcuno potrebbe far funzionare il codice? Ho provato ma non funziona sulla pagina del prodotto dopo aver modificato le quantità.

Questa risposta è stata modificata 2 anni, 5 mesi fa.

(@lepress)

2 anni, 4 mesi fa

@gerdski @seldimi
Errore irreversibile: errore non rilevato: chiamata alla modalità non definita WC_Product_Variation :: get_variation_sale_price () in

Questa risposta è stata modificata 2 anni, 4 mesi fa. Lanciatore di thread

(@seldimi)

2 anni, 4 mesi fa

Ciao.
Ho smesso di usare questo plugin e Woocommerce è regolarmente regolamentato, quindi lo snippet sopra non funziona più

Was this helpful?

0 / 0

Lascia un commento 0

Your email address will not be published. Required fields are marked *