2017-01-30 7 views
0

オーダー作成時に透明チェックアウトでユーザーから通知されたカードのBinとLast4をデータベースに保存する必要があります。オーダー作成時にBinとLast4をデータベースに保存する - WooCommerce

私は要求を保存するときに、この挿入を行うにしようとしていますが、それはのように書いているので、それは働いていません:NULL

enter image description here

Javascriptを

$('.woocommerce-checkout, #order_review').submit(function (e) { 
e.preventDefault(); 
// console.log($('input[name=pagarme_card_hash]').val()); 
var cardNumber = $('#pagarme-card-number').val(); 
var pagarmeCardNumber = cardNumber.replace(/ /g, ''); // remove spaces 
var bin = pagarmeCardNumber.slice(0, 6); 
var last4 = pagarmeCardNumber.slice(-4); 

console.log('pagarmeCardNumber: ' + pagarmeCardNumber); 
console.log('bin: ' + bin); 
console.log('last4: ' + last4); 

$.ajax({ 

    type: 'post', 
    url: ajaxurl, 
    data: { 
     bin: bin, 
     last4: last4, 
     action: 'idx_save_bin_last4' 
    }, 
    success: function (response) { 
     console.log('success'); 

    }, 
    error: function (error){ 
     console.log('error'); 
     console.log(error); 
    } 
}); 
return false; 
}); 

のfunctions.php

add_action('wp_ajax_idx_save_bin_last4', 'idx_save_bin_last4'); 
add_action('wp_ajax_nopriv_idx_save_bin_last4', 'idx_save_bin_last4'); 
add_action('save_post', 'idx_save_bin_last4', 10, 3); 
function idx_save_bin_last4($post_id) 
{ 
    $bin = $_POST['bin']; 
    $last4 = $_POST['last4']; 
    $post_type = get_post_type($post_id); 

    if ("shop_order" != $post_type) { 
    return; 
    } 
    update_post_meta($post_id, '_order_bin', $bin); 
    update_post_meta($post_id, '_order_last4', $last4); 
} 

答えて

1

嫌なことはありませんが、私は決して購入しませんそのようなコードであなたのサイトからヒンジして、そしてフィルタリングされていないPOST varsを使用します。

PANデータを処理するためにStripe APIを使用することを検討してください。トランザクション、請求書、顧客、サブスクリプションハッシュが心配です。 CCデータはあなたのサーバーには触れません。

関連する問題