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. 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.*******.com/gform_mollie_payment_description/
(dans l'URL ci-dessous, remplacez ******* par gravityforms)
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 : Tout sélectionner
/**
* 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 : Tout sélectionner
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'