woothemes/woocommerce

View on GitHub
includes/interfaces/class-wc-payment-token-data-store-interface.php

Summary

Maintainability
A
0 mins
Test Coverage
<?php
/**
 * Payment Token Data Store Interface
 *
 * @version 3.0.0
 * @package WooCommerce\Interface
 */

if ( ! defined( 'ABSPATH' ) ) {
    exit;
}

/**
 * WC Payment Token Data Store Interface
 *
 * Functions that must be defined by payment token store classes.
 *
 * @version  3.0.0
 */
interface WC_Payment_Token_Data_Store_Interface {
    /**
     * Returns an array of objects (stdObject) matching specific token criteria.
     * Accepts token_id, user_id, gateway_id, and type.
     * Each object should contain the fields token_id, gateway_id, token, user_id, type, is_default.
     *
     * @param array $args Arguments.
     * @return array
     */
    public function get_tokens( $args );

    /**
     * Returns an stdObject of a token for a user's default token.
     * Should contain the fields token_id, gateway_id, token, user_id, type, is_default.
     *
     * @param int $user_id User ID.
     * @return object
     */
    public function get_users_default_token( $user_id );

    /**
     * Returns an stdObject of a token.
     * Should contain the fields token_id, gateway_id, token, user_id, type, is_default.
     *
     * @param int $token_id Token ID.
     * @return object
     */
    public function get_token_by_id( $token_id );

    /**
     * Returns metadata for a specific payment token.
     *
     * @param int $token_id Token ID.
     * @return array
     */
    public function get_metadata( $token_id );

    /**
     * Get a token's type by ID.
     *
     * @param int $token_id Token ID.
     * @return string
     */
    public function get_token_type_by_id( $token_id );

    /**
     * Update's a tokens default status in the database. Used for quickly
     * looping through tokens and setting their statuses instead of creating a bunch
     * of objects.
     *
     * @param int  $token_id Token ID.
     * @param bool $status If should update status.
     * @return string
     */
    public function set_default_status( $token_id, $status = true );
}