Récupérer prices[ ] dans hikashop_quantity_render

  • Posts: 263
  • Thank you received: 11
11 years 2 months ago #117063

Bonjour à tous,

Je suis en train de créer une nouvelle fonction hikashop_quantity_render($html,$i,$max_quantity,$min_quantity) dans le fichier /templates/.../html/hikashop_button.php.

Je pensais pouvoir accéder au tableau des prix de mon produit avec $this->row->prices[] mais cette variable ne semble pas fonctionner dans /templates/.../html/hikashop_button.php.

Dois-je absolument accéder au prix de mon produit en faisant une requête à la base de données? Ne pourrais-je pas utiliser simplement une variable?

Merci (encore)

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

  • Posts: 263
  • Thank you received: 11
11 years 2 months ago #117087

Voici où j'en suis maintenant pour récupérer le tableau des prix d'un produit dans /templates/.../html/hikashop_button.php.

Si je réussis à faire fonctionner jusqu'à print_r($productRows), je pourrai terminer. Mais ça ne fonctionne pas. Il y a une erreur avant le print_r, mais je ne vois pas ce qui cloche.

Pouvez-vous m'aider?

<?php

function hikashop_quantity_render($html,$i,$max_quantity,$min_quantity){
	
	
	$class = hikashop_get('class.currency');
	
	$zone = hikashop_getZone();
	echo "zone".$zone."<br />";
	$currency = hikashop_getCurrency();
	echo "currency". $currency."<br />";
	$product_id = hikashop_getCID();
	echo "id du produit". $product_id."<br />";

	$query= 'SELECT * FROM '.hikashop_table('product').' WHERE product_id='.$product_id;

	$myDatabase->setQuery($query);
	$result = $myDatabase->query();
	$productRows = $myDatabase->loadObjectList();
	

	$class->getListingPrices($productRows, $zone, $currency );
	print_r($productRows);

	/*À terminer
	return '
	<input type="radio" name="group2" value="Q1"> Quantité 1<br>
	<input type="radio" name="group2" value="Q2" checked>Quantité 2<br />'.$html;
        À terminer */
		
}

?>

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

  • Posts: 82569
  • Thank you received: 13293
  • MODERATOR
11 years 2 months ago #117108

Bonjour,

C'est la bonne méthode en effet.
Il faut que vous enleviez la ligne:
$result = $myDatabase->query();

Sinon, la ligne d'après ne renverra rien.

The following user(s) said Thank You: Flooder

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

  • Posts: 263
  • Thank you received: 11
11 years 2 months ago #117142

Et voilà! Ça fonctionne au poil.

<?php

function hikashop_quantity_render($html,$i,$max_quantity,$min_quantity){
	
	$db = JFactory::getDBO();

	$class = hikashop_get('class.currency');
	
	$zone = hikashop_getZone();
	echo "zone".$zone."<br />";
	$currency = hikashop_getCurrency();
	echo "currency". $currency."<br />";
	$product_id = hikashop_getCID();
	echo "id du produit". $product_id."<br />";

	$query= 'SELECT * FROM '.hikashop_table('product').' WHERE product_id='.$product_id;

	$db->setQuery($query);
	//$result = $myDatabase->query();
	$productRows = $db->loadObjectList();
	

	$class->getListingPrices($productRows, $zone, $currency );
	print_r($productRows);

}

Last edit: 11 years 2 months ago by Flooder.

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

  • Posts: 263
  • Thank you received: 11
11 years 2 months ago #117146

Ma liste déroulante fonctionne maintenant. Le client ne peut acheter que les quantités minimales pour chaque prix.

En voici le contenu actuel de mon fichier templates/../html/hikashop_button.php :

function hikashop_quantity_render($html,$i,$max_quantity,$min_quantity){
	
	$db = JFactory::getDBO();

	$class = hikashop_get('class.currency');
		
	$zone = hikashop_getZone();
	$currency = hikashop_getCurrency();
	$product_id = hikashop_getCID();

	$query= 'SELECT * FROM '.hikashop_table('product').' WHERE product_id='.$product_id;

	$db->setQuery($query);
	$productRows = $db->loadObjectList();
	

	$class->getListingPrices($productRows, $zone, $currency );

	$first = 0;
	$chaine = '<select id="hikashop_product_quantity_field" name="quantity">';
	
	$tableau = array();
		
		
	foreach ($productRows[0]->prices as $price) {
		$min = $price->price_min_quantity;
		if ($min == 0) $min = 1;
		$tableau[] = $min;
		
	}
	
	asort($tableau);
	
	foreach ($tableau as $num) {
	
		$chaine .= '<option value="' . $num . '">' . $num . '</option>';

		
	}
	
	$chaine .= '</select>';
	
	return $chaine . $html;
	
	
}

Last edit: 11 years 2 months ago by Flooder. Reason: J'ai trouvé une petite coquille... C'est corrigé!
The following user(s) said Thank You: nicolas

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

Time to create page: 0.048 seconds
Powered by Kunena Forum