payment.php cocher dernier paiement

  • Posts: 2667
  • Thank you received: 68
10 years 6 months ago #188899

bonjour

dans checkout/payment.php je voudrais pre-cocher la derniere methode de paiement utilisee par le client

j'ai deja un champ perso dans la table user pre rempli avec la derniere methode utilisee

je fais

$hikashop_user = hikashop_loadUser(true);  

foreach($this->methods as $method){
				$checked = '';
if($method->payment_id ==  $user->user_order_payment_id){
					$checked = 'checked="checked"';
				}
				if(($this->payment_method==$method->payment_type && $this->payment_id==$method->payment_id)|| ($auto_select_default && empty($this->payment_id)&&!$done)){
					$checked = 'checked="checked"';
					$done = true;
				}

}

mais ca ne marche pas ou mal (donc pas)
j'ai essaye aussi dans le meme if de mettre cette condition

la case est bien selectionnee mais si le client veut utiliser une autre methode il doit cliquer 2 fois pour que ca marche et si il continue ses achats et retourne sur son panier la derniere methode et re selectionnee

comment faire pour que ca marche ?

merci

Last edit: 10 years 6 months ago by erickb.

Please Log in or Create an account to join the conversation.

  • Posts: 13201
  • Thank you received: 2322
10 years 6 months ago #188906

Bonjour,

Il faut donc adapter/modifier le code suivant:

				if(($this->payment_method==$method->payment_type && $this->payment_id==$method->payment_id)|| ($auto_select_default && empty($this->payment_id)&&!$done)){
					$checked = 'checked="checked"';
					$done = true;
				}
Afin de vérifier si la méthode de paiement dans le foreach est celle utilisée en dernier. Si tel est le cas, alors lui mettre l'attribut "checked".

Please Log in or Create an account to join the conversation.

  • Posts: 2667
  • Thank you received: 68
10 years 6 months ago #189014

merci mais je ne comprend pas où mettre la condition $method->payment_id == $user->user_order_payment_id

if(

($this->payment_method==$method->payment_type && $this->payment_id==$method->payment_id)
|| 
($method->payment_id == $pm)
||
($auto_select_default && empty($this->payment_id)&&!$done)

){
	$checked = 'checked="checked"';
	$done = true;
}

ne marche pas
la case est bien cochee mais si on choisit une autre methode de paiement elle n'est pas gardee en memoire

Please Log in or Create an account to join the conversation.

  • Posts: 84220
  • Thank you received: 13673
  • MODERATOR
10 years 6 months ago #189022

Plutot comme cela:

if(
($this->payment_method==$method->payment_type && $this->payment_id==$method->payment_id)
|| 

($auto_select_default && empty($this->payment_id) && !$done && ($method->payment_id == $pm))

){
	$checked = 'checked="checked"';
	$done = true;
}

Please Log in or Create an account to join the conversation.

Time to create page: 0.073 seconds
Powered by Kunena Forum