La mise à jour de WebhookUrl dans le plugin WordPress entraîne une erreur fatale : Erreur non détectée : appel à une méthode non définie Mollie\Api\Endpoints\SubscriptionEndpoint::update()
P粉993712159
2023-09-04 00:15:50
<p>J'essaie de mettre à jour le webhookUrl dans Mollie pour l'abonnement. L'ancien webhookUrl est obsolète et les programmeurs qui l'ont créé ne sont plus avec nous. </p>
<p>Voici un lien vers le mollie que j'essaie d'utiliser. Après avoir vérifié la nouvelle version sur github, j'ai trouvé que la méthode de mise à jour des abonnements est un peu différente. Malgré les différences, j'obtiens toujours l'erreur : </p>
<p>Erreur fatale : erreur non détectée : appel à une méthode non définie MollieApiEndpointsSubscriptionEndpoint::update()</p>
<p>C'est le code que j'ai utilisé pour créer le formulaire. J'essaie de modifier le webhookUrl pour me connecter à Easy digital Downloads afin que l'abonnement et la licence n'expirent pas en raison de l'impossibilité de vérifier le paiement. </p>
<p>Formulaire (admin__update_subscription.php) : </p>
<pre class="brush:php;toolbar:false;"><form id="wmcs-form" method="post">
<div class="wmcs_admin_card">
<div class="wmcs_admin_body">
<fieldset class="choose-theme-wrap radio-boxes dp-tabular">
<ul>
<li>
<étiquette>ID client</étiquette>
<type d'entrée="texte" id="id_client" nom="id_client" valeur=""obligatoire>
≪/li>
<li>
<label>ID d'abonnement</label>
<type d'entrée="texte" id="subscription_id" nom="subscription_id"
≪/li>
<li>
<label>URL du webhook</label>
<type d'entrée="texte" id="webhook_url" nom="webhook_url" valeur=""
≪/li>
<li>
<type de bouton="soumettre" class="bouton-primaire" nom="mollie_update_subscription">Modifier</bouton>
≪/li>
</ul>
</fieldset><!-- Fin du choix du thème -->
</div><!-- Fin de wmcs_admin_body -->
</div><!-- Fin de wmcs_admin_card -->
</form></pre>
<p>表单处理程序:</p>
<pre class="brush:php;toolbar:false;">public function change_subscription(){ ?>
<div class="wrap">
<?php
if(isset($_POST['mollie_update_subscription'])){
if(!empty($_POST['customer_id']) && !empty($_POST['subscription_id'])){
$customer_id = sanitize_text_field($_POST['customer_id']);
$subscription_id = sanitize_text_field($_POST['subscription_id']);
$webhook_url = sanitize_text_field($_POST['webhook_url']);
// $orderID = sanitize_text_field($_POST['order_id']);
// $orderKey = sanitize_text_field($_POST['order_key']);
echo $this->mollie_update_subscription($customer_id, $subscription_id, $webhook_url);
}
}
?>
<h2><?php _e('Modifier l'URL d'abonnement'); ?>≪/h2>
<div id="Fonctionnalités" class="wmcs-tabs">
<?php
require_once('admin__update_subscription.php');
?>
</div> <!-- Fin des paramètres --->
<?php
}</pré>
<p>莫莉更新请求:</p>
<pre class="brush:php;toolbar:false;">fonction publique mollie_update_subscription($customer_id, $subscription_id, $webhook_url){
$mollie = new MollieApiMollieApiClient();
$mollie->setApiKey(MOLLIE_KEY);(défini ailleurs)
$message = "";
essayer {
$client = $mollie->clients->get($customer_id);
$abonnement = $client->getSubscription($abonnement_id);
$abonnement->webhookUrl = $webhook_url;
$subscription->description = 'réussite de la mise à jour de l'abonnement';
$mollie->abonnements->mise à jour();
$message = "<p>Abonnement mis à jour : " . $abonnement->id . "≪/p>" ;
} catch (MollieApiExceptionsApiException $e) {
$message = "<div class='alert alert-danger' role='alert'> L'appel API a échoué : " . htmlspecialchars($e->getMessage()).'</div>';
}
renvoyer $message ;
}</pré>
<p>
J'ai trouvé la solution. Je dois changer cette pièce :
$mollie->subscriptions->update();
à
$subscription->update();