2017-05-29 1 views
0

Quelle serait la bonne façon de se connecter au formulaire de carte de crédit WC_Gateway_PayPal_Pro pour mettre en œuvre la fonctionnalité jquery.payment sur un thème personnalisé?WooCommerce PayPal Pro jquery.payment formulaire de paiement améliorations

env est mise à jour en utilisant:

  • WooCommerce v3.0.7
  • WooCommerce PayPal Pro (Classic et PayFlow Editions) Porte v4.4.6

jquery.payment navires avec WooCommerce et selon this article (... probablement périmé) permettant de revenir à la valeur par défaut WC credit_card_form.

Maintenant, je parviens à afficher la forme avec le travail des entrées jquery.payment en utilisant ce qui suit dans « functions.php »:

function filter_woocommerce_payment_gateway_supports($var, $feature, $instance) { 

    $feature = 'default_credit_card_form'; 

    return $feature; 
} 
add_filter('woocommerce_payment_gateway_supports', 'filter_woocommerce_payment_gateway_supports', 10, 3) 

Mais cela est loin de travailler (jamais devrait être facile), ça ne va pas valider. Les erreurs vont de:

Payment error: There was a problem connecting to the payment gateway. 
Payment error: Security header is not valid 
Card expiration date is invalid 

Ce que je pense que je suis absent, selon l'article, est « Modifier votre gestionnaire de formulaire ... pour assurer la passerelle recherche les données post correct », mais comment? Vous ne trouvez pas toute la documentation pertinente sur les actions suivantes pour la recherche si des pointeurs très appréciés:

woocommerce_credit_card_form_args 
woocommerce_credit_card_form_fields 
woocommerce_credit_card_form_start 
woocommerce_credit_card_form_end 

Répondre

0

Le moyen le plus d'y arriver est de scripter enquë credit-card-form.js de WC:

/* 
* Enques credit-card-form.min.js to provide 
* better Credit Card form validation 
*/ 
function filter_woocommerce_enqueue_styles($return_false) { 
    if (function_exists('is_checkout')) { 
     if (is_checkout()) { 
      $WC_credit_card_form = plugins_url('woocommerce/assets/js/frontend/credit-card-form.min.js'); 
      wp_enqueue_script('wc-credit-card-form', $WC_credit_card_form, ['jquery', 'jquery-payment'], null, true); 
     } 
    } 
} 
add_filter('woocommerce_enqueue_styles', 'filter_woocommerce_enqueue_styles', 10, 1);