Back to top

Autore Topic: Contrassegno solo per Italia  (Letto 2523 volte)

Offline TheAnt

  • Esploratore
  • **
  • Post: 172
    • Mostra profilo
Contrassegno solo per Italia
« il: 14 Mar 2007, 11:58:17 »
Ciao a tutti.
Una domanda sola: si può limitare un tipo di pagamento (Contrassegno) solo ad uno stato (Italia) impedendo di selezionarlo a chi ordina per l'estero?

Grazie per l'attenzione

Offline TheAnt

  • Esploratore
  • **
  • Post: 172
    • Mostra profilo
Re: Contrassegno solo per Italia
« Risposta #1 il: 16 Mar 2007, 09:48:13 »
Davvero non si può in nessun modo? a nessuno di voi è capitato?

Offline Matteo_

  • Nuovo arrivato
  • *
  • Post: 43
    • Mostra profilo
Re: Contrassegno solo per Italia
« Risposta #2 il: 09 Mag 2007, 10:26:58 »
Davvero non si può in nessun modo? a nessuno di voi è capitato?
Sto provandoci anche io adesso. Hai per caso già risolto?

Offline Matteo_

  • Nuovo arrivato
  • *
  • Post: 43
    • Mostra profilo
Re: Contrassegno solo per Italia
« Risposta #3 il: 24 Mag 2007, 12:44:25 »
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"

Codice: [Seleziona]
// 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".

 



Web Design Bolzano Kreatif