Create New Item
×
Item Type
File
Folder
Item Name
×
Search file in folder and subfolders...
File Manager
/
wp-content
/
plugins
/
woocommerce
/
includes
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php defined('ABSPATH') || exit; class WC_Payment_Tokens { public static function get_tokens($args) { $args = wp_parse_args($args, array('token_id' => '', 'user_id' => '', 'gateway_id' => '', 'type' => '')); $data_store = WC_Data_Store::load('payment-token'); $token_results = $data_store->get_tokens($args); $tokens = array(); if (!empty($token_results)) { foreach ($token_results as $token_result) { $_token = self::get($token_result->token_id, $token_result); if (!empty($_token)) { $tokens[$token_result->token_id] = $_token; } } } return $tokens; } public static function get_customer_tokens($customer_id, $gateway_id = '') { if ($customer_id < 1) { return array(); } $tokens = self::get_tokens(array('user_id' => $customer_id, 'gateway_id' => $gateway_id)); return apply_filters('woocommerce_get_customer_payment_tokens', $tokens, $customer_id, $gateway_id); } public static function get_customer_default_token($customer_id) { if ($customer_id < 1) { return null; } $data_store = WC_Data_Store::load('payment-token'); $token = $data_store->get_users_default_token($customer_id); if ($token) { return self::get($token->token_id, $token); } else { return null; } } public static function get_order_tokens($order_id) { $order = wc_get_order($order_id); if (!$order) { return array(); } $token_ids = $order->get_payment_tokens(); if (empty($token_ids)) { return array(); } $tokens = self::get_tokens(array('token_id' => $token_ids)); return apply_filters('woocommerce_get_order_payment_tokens', $tokens, $order_id); } public static function get($token_id, $token_result = null) { $data_store = WC_Data_Store::load('payment-token'); if (is_null($token_result)) { $token_result = $data_store->get_token_by_id($token_id); if (empty($token_result)) { return null; } } $token_class = self::get_token_classname($token_result->type); if (class_exists($token_class)) { $meta = $data_store->get_metadata($token_id); $passed_meta = array(); if (!empty($meta)) { foreach ($meta as $meta_key => $meta_value) { $passed_meta[$meta_key] = $meta_value[0]; } } return new $token_class($token_id, (array) $token_result, $passed_meta); } return null; } public static function delete($token_id) { $type = self::get_token_type_by_id($token_id); if (!empty($type)) { $class = self::get_token_classname($type); $token = new $class($token_id); $token->delete(); } } public static function set_users_default($user_id, $token_id) { $data_store = WC_Data_Store::load('payment-token'); $users_tokens = self::get_customer_tokens($user_id); foreach ($users_tokens as $token) { if ($token_id === $token->get_id()) { $data_store->set_default_status($token->get_id(), true); do_action('woocommerce_payment_token_set_default', $token_id, $token); } else { $data_store->set_default_status($token->get_id(), false); } } } public static function get_token_type_by_id($token_id) { $data_store = WC_Data_Store::load('payment-token'); return $data_store->get_token_type_by_id($token_id); } protected static function get_token_classname($type) { return apply_filters('woocommerce_payment_token_class', 'WC_Payment_Token_' . $type, $type); } }