Comment afficher un champ dans la vue order/show

  • Posts: 24
  • Thank you received: 0
11 years 2 months ago #89868

Voilà je voudrais modifier la vue order/show pour inclure des clauses d'utilisation. j'ai créé des champs que le client remplit au moment de sa commande. Pour l'instant les champs sont visibles à la fin de la facture.
Mais je voudrais les inclure dans un texte. et non pas à la suite. Que dois-je écrire comme code pour avoir uniquement le contenu des champs qui m'intéresse.

Merci

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

  • Posts: 13201
  • Thank you received: 2322
11 years 2 months ago #89961

Bonjour,

Le code pour afficher les champs de produits est:

										if(hikashop_level(2) && !empty($this->fields['item'])){
											foreach($this->fields['item'] as $field){
												$namekey = $field->field_namekey;
												if(!empty($product->$namekey)){
													echo '<p class="hikashop_order_item_'.$namekey.'">'.$this->fieldsClass->getFieldName($field).': '.$this->fieldsClass->show($field,$product->$namekey).'</p>';
												}
											}
										}
Et les champs de commande:
						<?php foreach($this->fields['order'] as $fieldName => $oneExtraField) {
							if(!@$oneExtraField->field_frontcomp || empty($this->order->$fieldName)) continue;
						?>
							<tr class="hikashop_order_custom_field_<?php echo $fieldName;?>_line">
								<td class="key">
									<?php echo $this->fieldsClass->getFieldName($oneExtraField);?>
								</td>
								<td>
									<?php echo $this->fieldsClass->show($oneExtraField,$this->order->$fieldName); ?>
								</td>
							</tr>
						<?php }	?>

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

  • Posts: 24
  • Thank you received: 0
11 years 2 months ago #89975

merci pour votre réponse.

mais le code que vous me communiquez est une boucle pour afficher l'ensemble des champs. je voudrais afficher seulement le contenu d'un champ pour l'insérer dans un texte du style

votre projet est contenuduchampX

Uniquement le contenu d'un champ spécifique et nom pas tous les champs.

Merci

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

  • Posts: 13201
  • Thank you received: 2322
11 years 2 months ago #90014

foreach($this->fields['order'] as $fieldName => $oneExtraField) {
    if($this->fieldsClass->getFieldName($oneExtraField) == 'champX')
        echo $this->fieldsClass->show($oneExtraField,$this->order->$fieldName);
}

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

  • Posts: 24
  • Thank you received: 0
11 years 2 months ago #90080

J'ai essayé de copier ce code

foreach($this->fields['order'] as $fieldName => $oneExtraField) {
    if($this->fieldsClass->getFieldName($oneExtraField) == 'monchamp')
        echo $this->fieldsClass->show($oneExtraField,$this->order->$fieldName);
}

où monchamp est un champ créé pour le test . il est bien visible lors de la commande mais il n'apparait pas dans la facture coté partie publique avec ce code. j'ai bien copié ce code dans la partie du template concerné de la vue order/show.php

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

  • Posts: 13201
  • Thank you received: 2322
11 years 2 months ago #90136

Qu'avez vous mis comme valeur pour "monchamp", le label ou le column name ? (dans la config du champ)
Dans cet exemple il faut utiliser la valeur du label. Pour la valeur du column name essayez d'utiliser "if($fieldName = "column_name")..." à la place du if existant.

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

Time to create page: 0.079 seconds
Powered by Kunena Forum