Bonjour,

J'ai créé un formulaire via le plugin Gravity Forms sur WordPress, et j'utilise l'extension Mollie pour Gravity Forms afin de traiter les paiements du formulaire.

Vous pouvez trouver le formulaire de test ici : https://www.ristorante-twins.be/test/

Mon problème est que la Référence de paiement n'est pas ajustable dans le backend, donc je dois créer un code personnalisé à introduire dans functions.php

Documentation : https://docs.gravityforms.com/gform_...t_description/

Vous trouverez ci-dessous la partie du code du fichier class-gf-mollie.php qui génère la référence de paiement par défaut.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
/**
* Return the description to be used with the Mollie payment.
*
* @since 1.0
*
* @param array $entry The entry object currently being processed.
* @param array $submission_data The customer and transaction data.
* @param array $feed The feed object currently being processed.
*
* @return string Payment description.
*/
public function get_payment_description( $entry, $submission_data, $feed ) {
$strings = array();
if ( $entry['id'] ) {
$strings['entry_id'] = sprintf( 'Entry ID: %d', $entry['id'] );
}
// Charge description format:
// Entry ID: 123, Products: Product A, Product B, Product C .
$strings['products'] = sprintf(
/* translators: Description of order, displayed in your Mollie dashboard and in confirmation emails. */
_n( 'Product: %s', 'Products: %s', count( $submission_data['line_items'] ), 'gravityformsmollie' ),
implode( ', ', wp_list_pluck( $submission_data['line_items'], 'name' ) )
);
$description = implode( ', ', $strings );
/**
* Allow the payment description to be overridden.
*
* @since 1.0
*
* @param string $description The payment description.
* @param array $strings Contains the Entry ID and Products. The array which was imploded to create the description.
* @param array $entry  The entry object currently being processed.
* @param array $submission_data The customer and transaction data.
* @param array $feed The feed object currently being processed.
*/
return apply_filters( 'gform_mollie_payment_description', $description, $strings, $entry, $submission_data, $feed );
}
J'ai essayé de créer le code ci-dessous (que j'ai ajouté à mon functions.php) mais il ne fonctionne apparemment pas très bien car l'Entry ID s'affiche comme 0 alors qu'il y a déjà des entrées existantes dans mon formulaire, donc forcément ça ne peut pas être 0.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
add_filter( 'gform_mollie_payment_description', 'change_mollie_payment_description', 10, 5 );
function change_mollie_payment_description( $description, $strings, $entry, $submission_data, $feed ) {
$strings['products'] = sprintf(
__( '#%d', 'gravityformsmollie' ),
$entry['id']
);
$description = implode( ', ', $strings );
return $description;
}
Est-ce que quelqu'un pourrait m'aider à corriger ce code?

Mon but est d'afficher uniquement un dièse '#' suivi de l'entrée 'entry_id'

Nom : Capture.png
Affichages : 71
Taille : 187,5 Ko