J'essaie de mettre à jour une ligne dans une table de base de données personnalisée avec $wpdb->update();
. À mon avis, mon code est correct mais, pour une raison quelconque, la ligne de base de données ne se met pas à jour.
Est-ce que quelqu'un peut m'aider avec ça?
Je souhaite mettre à jour le statut d'une transaction dans la table wp_mollie_transactions où le transaction_id
est égal au $order_id
, que j'ai reçu de mon fournisseur de paiement.
(Bien sûr, j'ai fait $wpdb
global dans ce fichier)
// Update database
$wpdb->update( $wpdb->prefix . 'mollie_transactions',
array(
'status' => $payment->status
),
array(
'transaction_id' => $order_id
)
);
Avant d’essayer d’écrire dans la base de données, toujours validez les valeurs que vous mettez:
$fValid = true;
if ( !isset( $payment->status ) ) {
echo 'Error: Payment status is not set';
$fValid = false;
}
if ( !isset( $order_id ) ) {
echo 'Error: Order ID is not set';
$fValid = false;
}
if ( $fValid ) {
// Update database
$fSuccess = $wpdb->update( $wpdb->prefix . 'mollie_transactions',
array(
'status' => $payment->status
),
array(
'transaction_id' => $order_id
)
);
echo sprintf( 'Update %s where Payment Status was %s and Transaction ID was %s', $fSuccess? 'Succeeded':'Failed', $payment->status, $order_id );
}
À votre santé.