Browse Source

La vérification des options obligatoires ne fonctionnait pas vraiment, et bloquait l'ajout au panier d'un produit sans options

Cherry pick 5dd3948
v1 v1.4.0
nicod_ 2 months ago
parent
commit
f994e3dd11
  1. 22
      formulaires/panier_produit_options.php

22
formulaires/panier_produit_options.php

@ -25,10 +25,21 @@ function formulaires_panier_produit_options_charger_dist($id_produit) {
function formulaires_panier_produit_options_verifier_dist($id_produit) {
$erreurs = array();
$groupes = sql_allfetsel('id_optionsgroupe, obligatoire', 'spip_optionsgroupes');
if ($id_objet = intval(_request('id_produit'))) {
$objet = 'produit';
} else {
$id_objet = intval(_request('id_objet'));
$objet = _request('objet');
}
$groupes = sql_allfetsel('id_optionsgroupe, obligatoire', 'spip_optionsgroupes', 'obligatoire = 1');
foreach ($groupes as $groupe) {
if ($groupe['obligatoire'] && !_request('id_option' . $groupe['id_optionsgroupe'])) {
$erreurs['id_groupe'.$groupe['id_optionsgroupe']] = _T('optionsgroupe:erreur_groupe_obligatoire');
$options_groupes = sql_allfetsel(
'o.id_option',
'spip_options o join spip_options_liens ol using(id_option)',
'o.id_optionsgroupe = '.$groupe['id_optionsgroupe'].' and ol.objet = '.sql_quote($objet).' and ol.id_objet = '.$id_objet
);
if ($options_groupes && !_request('id_option' . $groupe['id_optionsgroupe'])) {
$erreurs['id_groupe' . $groupe['id_optionsgroupe']] = _T('optionsgroupe:erreur_groupe_obligatoire');
}
}
@ -52,12 +63,11 @@ function formulaires_panier_produit_options_traiter_dist($id_produit) {
// On concatène pour passer les options à l'action remplir_panier.
$options = join('|', array_filter($options));
if($id_objet = _request('id_produit')) {
$id_objet= intval(_request('id_produit'));
if ($id_objet = intval(_request('id_produit'))) {
$objet = 'produit';
} else {
$id_objet = intval(_request('id_objet'));
$objet = _request('objet');
$id_objet= intval(_request('id_objet'));
}
// On appelle l'action remplir_panier

Loading…
Cancel
Save