A me è venuto così ma non è molto pulito. Qualcuno può fare un po di debug?
Prendendo un pezzetto di codice dal file */administrator/components/com_virtuemart/classes/shipping/standard_shipping.php
ho modificato il file */administrator/components/com_virtuemart/classes/ps_payment_method.php
nella sezione "list_payment_radio"
// Controlla la nazione dell’acquirente
$dbc = new ps_DB; // Carriers
$dbr = new ps_DB; // Rates
$d['ship_to_info_id'] = mosGetParam($_REQUEST, 'ship_to_info_id');
$q = "SELECT country,zip FROM #__{vm}_user_info WHERE user_info_id='".$d['ship_to_info_id']."'";
$dbc->query($q);
$dbc->next_record();
$zip = $dbc->f("zip");
$country = $dbc->f("country");
// Start radio list
while ($db->next_record()) {
if (($country != "ITA") && ($db->f("payment_method_id") == "2")) {
// non mostra niente
}
else {
echo "<input type=\"radio\" name=\"payment_method_id\" id=\"".$db->f("payment_method_name")."\" value=\"".$db->f("payment_method_id")."\" ";
if( $selector == "' OR enable_processor='Y" ) {
echo "onchange=\"javascript: changeCreditCardList();\" ";
}
if (( $db->f("payment_method_id") == $payment_method_id || empty( $payment_method_id ) ) && !@$GLOBALS['payment_selected']) {
echo "checked=\"checked\" />\n";
$GLOBALS['payment_selected'] = true;
}
else {
echo ">\n";
}
$discount = $db->f("payment_method_discount");
echo "<label for=\"".$db->f("payment_method_name")."\">".$db->f("payment_method_name");
if ($discount > 0.00) {
echo " (- ".$CURRENCY_DISPLAY->getFullValue(abs($discount)).") \n";
}
elseif ($discount < 0.00) {
echo " (+ ".$CURRENCY_DISPLAY->getFullValue(abs($discount)).") \n";
}
echo "</label>";
}
Adesso la possibilità di scegliere il contrassegno compare solo agli utenti con country code uguale a "ITA".