web-dev-qa-db-fra.com

thème des pages de paiement dans Drupal commerce

comment puis-je créer un thème pour le panier et les pages de paiement dans Drupal commerce? J'ai défini le contenu, le compte, la facturation et les parties de paiement. Y a-t-il un fichier -. tpl.php à créer?

15
Badri

Pour la page du panier thématique, ajoutez page--cart.tpl.php Dans le répertoire des modèles de votre thème.

Pour la page de paiement par thème, ajoutez page--checkout.tpl.php Dans le répertoire des modèles de votre thème. Si vous souhaitez uniquement créer un thème pour la page de vérification de la caisse, ajoutez page--checkout--review.tpl.php Dans le répertoire des modèles.

Après avoir ajouté des fichiers tpl, n'oubliez pas de vider le cache.

Si vous voulez en savoir plus sur les hooks, faites une dpm($variables) à l'intérieur de la fonction YOURTHEMENAME_preprocess_page Et regardez dans le tableau theme_hook_suggestions.

Pour plus de détails, lisez ce commentaire http://drupal.org/node/1142800#comment-5365466

13
subhojit777

Les seuls fichiers de modèle dans Commerce liés au module de paiement sont commerce-checkout-errors-message.tpl.php et commerce-checkout-help.tpl.php. Ceux-ci sont situés dans le répertoire du module Commerce sous modules/checkout/theme.

Le seul fichier de modèle lié au module Cart est commerce-cart-block.tpl.php, qui se trouve dans le répertoire du module Commerce sous modules/cart/theme.

7
sheena_d

En fait, la façon la plus simple, je pense, est d'utiliser hook_form_FORM_ID_alter () pour modifier le formulaire de paiement. Si vous n'avez besoin que de changer la partie à l'intérieur du formulaire de paiement.

Comme je le vois, la plupart du contenu de la page de vérification et de vérification de la caisse se trouve à l'intérieur du formulaire. Le premier est ' commerce_checkout_form_checkout ', et le second est ' commerce_checkout_form_review '. Si vous savez comment utiliser l'API de formulaire et comment modifier le formulaire en utilisant hook_form_FORM_ID_alter (). Il sera très facile de modifier le contenu du formulaire. Comme les réorganiser ou insérer/supprimer des éléments.

Voici un exemple simple pour ajouter un avis dans la page de paiement:

function my_module_form_commerce_checkout_form_alter(&$form, &$form_state, $form_id) {

  //If you have Devel module, uncomment to see what is the original form data
  //kpr($form);

  //uncomment to see current form_id
  //echo $form_id;

  //check form id
  if($form_id == 'commerce_checkout_form'){
    $form['my_test_notice'] = array(
      '#markup' => '<h1>Hello, this is a checkout test!</h1>',
      '#weight' => -1,
    );
  }
  elseif($form_id == 'commerce_checkout_form_review'){
    $form['my_test_notice'] = array(
      '#markup' => '<h1>Hello, this is a checkout review test!</h1>',
      '#weight' => -1,
    );
  }
  //You can add more ...

}
4
Tim Yao

Vous pouvez également utiliser les classes de corps (selon le thème de base que vous utilisez, elles sont souvent disponibles). Cela vous permet de donner des valeurs spécifiques aux éléments enfants du corps avec la classe .checkout, par exemple. Cela pourrait suffire à modifier un peu la disposition.

2
Alex C

Avez-vous essayé Theme Developer module qui vous donne des informations sur les crochets de thème à implémenter et les fichiers de modèle à adopter.

1
gilzero

Vous pouvez créer vos propres fichiers .tpl et les appeler avec une fonction hook_theme:

function yourtheme_theme(&$existing, $type, $theme, $path) {
  return array(
    'commerce_cart_add_to_cart_form'=> array(
    'render element' => 'form',
    'template' => 'path/to/template/commerce_cart_add_to_cart_form',
  ),
    'commerce_checkout_form_review'=> array(
    'render element' => 'form',
    'template' => 'path/to/template/commerce_checkout_form_review',
  ),
  ...
  ...(more templates)
}

comme ce sont des formulaires, vous pouvez ensuite masquer le formulaire, trouver ce dont vous avez besoin et utiliser votre propre balisage dans votre modèle.

<?php
  hide($form);
  dpm($form);
?>

<div>
  print render($form[...]);
</div>

Ou, vous pouvez le laisser tel quel et faire des choses autour de lui.

1
mlaroy

La page du panier est juste une vue, alors stylisez-la comme n'importe quelle autre vue:

  1. Accédez à la page lorsque vous êtes connecté en tant qu'administrateur, recherchez et cliquez sur le lien "Modifier la vue".

  2. Sur la page de modification de la vue, ouvrez les paramètres de la vue "Avancé" et cliquez sur "Informations sur le thème"

  3. Là, vous pouvez voir comment vous devez nommer vos modèles (c'est-à-dire vues-vue - commerce-cart-summary - default.tpl.php) et aussi si vous au nom du modèle au début de la ligne (c'est-à-dire d'abord "Afficher la sortie" vous pouvez voir le modèle par défaut, le copier, l'enregistrer avec un autre nom dans le répertoire du modèle de votre thème et le modifier à votre guise).

  4. Vous pouvez également créer ces pages (vues) par vous-même. http://www.drupalcommerce.org/user-guide/modifying-shopping-cart-using-views

1
user2870349