Controllo configurabile bambini tipologie di prezzo del prodotto (fisso o percentuale)
-
16-10-2019 - |
Domanda
Ho creato una pagina stampabile di dettagli del prodotto e tutto sta funzionando bene. L'unica cosa che sta fallendo sta controllando se Prezzo di bambino del prodotto è fisso o percentuale;
Non ho opzioni personalizzate con successo recuperati e controllato per il tipo di prezzo come segue:
//get options
$options = $product->getOptions();
foreach ($options as $option)
{
$o = $option->getValues();
foreach ($o as $v)
{
//if price_type fixed = echo price
if ($v["price_type"] == "fixed")
{
$optPrice = $v["price"];
} //else percent = echo product price + %
else
{
$optPrice = $priceExcTax * ($v["price"]/100);
}
//number_format price
$optPrice = number_format($optPrice, 2);
//echo price and title
$output .= $v['title'] . " (+ £" . $optPrice . " + VAT)<br />";
}
}
speravo questo dovrebbe funzionare in modo simile per i prodotti per bambini, ma ho provato quanto segue senza fortuna;
$confAttributes = $product->getTypeInstance(true)->getConfigurableAttributesAsArray($product);
foreach ($confAttributes as $confAttribute)
{
echo "<em>Choose " . $confAttribute['store_label'] . "...</em><br />";
foreach ($confAttribute["values"] as $value)
{
echo $value["label"] . " (+ £";
//if price_type fixed = echo price
if ($value["price_type"] == "fixed")
{
$optPrice = $value["pricing_value"];
}
else //else percent = product price + %
{
$optPrice = $priceExcTax * ($value["pricing_value"]/100);
}
$optPrice = number_format($optPrice,2);
echo $optPrice . " + VAT)<br />";
}
}
Avendo cercato un po 'ho anche provato;
if ($value["is_percentage"])
senza fortuna sia.
Il prezzo dei prodotti bambino è sempre visto come fisso, Chiunque può aiutare?
UPDATE:
Ho anche guardato il prodotto che sto testando nel database crudo e può vedere il campo 'is_percent' in modo non sono sicuro del perché tutto ciò che cerco non funziona.
Soluzione 2
ho trovato la mia risposta, dopo un po 'di aiuto e l'ulteriore guardando il mio codice. Davvero @mageUz ha risposto alla mia domanda, ma quando l'ho provato, non ha funzionato come mi è stato completamente all'indietro in cui stavo mettendo il codice.
Per verificare il tipo di prezzo il campo $value['is_percent']
c'è e funziona.
lezione da imparare qui, assicuratevi di controllare il codice e che si sta mettendo le cose giuste nei posti giusti e in secondo luogo con echo '<pre>' . print_r(<the-var-you-want>) . '</pre>'
è un ottimo strumento.
Altri suggerimenti
Usa if ($value["is_percent"])
. Ecco campi $confAttribute["values"]
:
Array
(
[product_super_attribute_id] => 11
[value_index] => 45
[label] => 4a
[default_label] => 4a
[store_label] => 4a
[is_percent] => 1
[pricing_value] => 10.0000
[use_default_value] => 1
)
E se si utilizza prezzo in percentuale che si deve introdurre il valore Thero non valida all'ingresso prezzo.