2017-10-23 6 views
1

Sagen Sie mir bitte. Wo erhält der Korb den Wert des Variationsprodukts, mit der anschließenden Multiplikation mit der Nummer und der Ausgabe der TOTAL und der SUBTOTAL? Das Problem besteht darin, dass Sie die Kosten der Produkte aus einem benutzerdefinierten Feld in den Warenkorb senden müssen.Preis der variablen Produkte (woocommerce)

Für ein einfaches Produkt hat sich alles ergeben. Die folgende Funktion wurde in die Datei hinzugefügt abstrakt-WC-product.php:

public function get_rrp_price($context = 'view') { 
    return $this->get_meta($key = 'rrp_price', $context = 'view'); 
} 

Wo rrp_price - ist der Name eines beliebigen Feld mit einem neuen Preis. Dann in der Vorlage Klasse-WC-cart.php, nämlich in den folgenden Funktionen:

public function calculate_totals(
public function get_product_subtotal(

I ersetzt bin $ produkt-> get_price() mit $ produkt-> get_rrp_price() und für ein einfaches Produkt hat alles funktioniert!

Wenn Sie jedoch ein variables Produkt hinzufügen, gibt der Warenkorb ZERO aus. Ich kann nicht verstehen, an welcher Stelle es behoben werden kann, denke ich, dass in Klasse-wc-Produkt-Variable.php, aber wenn ja, wo und wie?

Antwort

0

Ich habe dieses Problem vor, aber ich fand die Lösung bitte überprüfen Sie unten Code ich denke, dass Sie perfekte Idee bekommen können.

function opal_varient_price($price, $variation) { 

if ( $variation->product_type == 'variation' ) { 

    $user = $user ? new WP_User($user) : wp_get_current_user(); 
    $role = $user->roles[0]; 
    if($role == 'detailer'){$pricex = get_post_meta($variation->variation_id, 'dist',true);} 
    else if($role == 'reseller'){$pricex = get_post_meta($variation->variation_id, 'res',true);} 
    else{ $pricex = $price;} 
    } 
return $pricex; 
} 

add_filter('woocommerce_product_variation_get_regular_price', 'opal_varient_price' , 99, 2); 
add_filter('woocommerce_product_variation_get_sale_price', 'opal_varient_price' , 99, 2); 
add_filter('woocommerce_product_variation_get_price', 'opal_varient_price', 99, 2); 
+0

Sie müssen nur Hook in "woocommerce_product_variation_get_regular_price" hinzufügen –

+0

Vielen Dank für die Antwort! Aber wo diesen Haken platzieren? – user271244

+0

Fügen Sie es einfach in function.php Ihres Themas hinzu und stellen Sie sicher, dass Sie den Code mit Ihrem geändert haben –

0

Ich habe dazu versucht ('dist' und 'Rest' für 'rrp_price' geändert): in einem

function opal_varient_price($price, $variation) { 

if ( $variation->product_type == 'variation' ) { 

    $user = $user ? new WP_User($user) : wp_get_current_user(); 
    $role = $user->roles[0]; 
    if($role == 'detailer'){$pricex = get_post_meta($variation->variation_id, 'rrp_price',true);} 
    else if($role == 'reseller'){$pricex = get_post_meta($variation->variation_id, 'rrp_price',true);} 
    else{ $pricex = $price;} 
    } 
return $pricex; 
} 

add_filter('woocommerce_product_variation_get_regular_price', 'opal_varient_price' , 99, 2); 
add_filter('woocommerce_product_variation_get_sale_price', 'opal_varient_price' , 99, 2); 
add_filter('woocommerce_product_variation_get_price', 'opal_varient_price', 99, 2); 

Aber variable Produkte noch ZERO

Wagen.

Verwandte Themen