initial commit
This commit is contained in:
99
includes/gateways/class-wc-payment-gateway-cc.php
Normal file
99
includes/gateways/class-wc-payment-gateway-cc.php
Normal file
@ -0,0 +1,99 @@
|
||||
<?php
|
||||
/**
|
||||
* Class WC_Payment_Gateway_CC file.
|
||||
*
|
||||
* @package WooCommerce\Gateways
|
||||
*/
|
||||
|
||||
if ( ! defined( 'ABSPATH' ) ) {
|
||||
exit;
|
||||
}
|
||||
|
||||
/**
|
||||
* Credit Card Payment Gateway
|
||||
*
|
||||
* @since 2.6.0
|
||||
* @package WooCommerce\Classes
|
||||
*/
|
||||
class WC_Payment_Gateway_CC extends WC_Payment_Gateway {
|
||||
|
||||
/**
|
||||
* Builds our payment fields area - including tokenization fields for logged
|
||||
* in users, and the actual payment fields.
|
||||
*
|
||||
* @since 2.6.0
|
||||
*/
|
||||
public function payment_fields() {
|
||||
if ( $this->supports( 'tokenization' ) && is_checkout() ) {
|
||||
$this->tokenization_script();
|
||||
$this->saved_payment_methods();
|
||||
$this->form();
|
||||
$this->save_payment_method_checkbox();
|
||||
} else {
|
||||
$this->form();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Output field name HTML
|
||||
*
|
||||
* Gateways which support tokenization do not require names - we don't want the data to post to the server.
|
||||
*
|
||||
* @since 2.6.0
|
||||
* @param string $name Field name.
|
||||
* @return string
|
||||
*/
|
||||
public function field_name( $name ) {
|
||||
return $this->supports( 'tokenization' ) ? '' : ' name="' . esc_attr( $this->id . '-' . $name ) . '" ';
|
||||
}
|
||||
|
||||
/**
|
||||
* Outputs fields for entering credit card information.
|
||||
*
|
||||
* @since 2.6.0
|
||||
*/
|
||||
public function form() {
|
||||
wp_enqueue_script( 'wc-credit-card-form' );
|
||||
|
||||
$fields = array();
|
||||
|
||||
$cvc_field = '<p class="form-row form-row-last">
|
||||
<label for="' . esc_attr( $this->id ) . '-card-cvc">' . esc_html__( 'Card code', 'woocommerce' ) . ' <span class="required">*</span></label>
|
||||
<input id="' . esc_attr( $this->id ) . '-card-cvc" class="input-text wc-credit-card-form-card-cvc" inputmode="numeric" autocomplete="off" autocorrect="no" autocapitalize="no" spellcheck="no" type="tel" maxlength="4" placeholder="' . esc_attr__( 'CVC', 'woocommerce' ) . '" ' . $this->field_name( 'card-cvc' ) . ' style="width:100px" />
|
||||
</p>';
|
||||
|
||||
$default_fields = array(
|
||||
'card-number-field' => '<p class="form-row form-row-wide">
|
||||
<label for="' . esc_attr( $this->id ) . '-card-number">' . esc_html__( 'Card number', 'woocommerce' ) . ' <span class="required">*</span></label>
|
||||
<input id="' . esc_attr( $this->id ) . '-card-number" class="input-text wc-credit-card-form-card-number" inputmode="numeric" autocomplete="cc-number" autocorrect="no" autocapitalize="no" spellcheck="no" type="tel" placeholder="•••• •••• •••• ••••" ' . $this->field_name( 'card-number' ) . ' />
|
||||
</p>',
|
||||
'card-expiry-field' => '<p class="form-row form-row-first">
|
||||
<label for="' . esc_attr( $this->id ) . '-card-expiry">' . esc_html__( 'Expiry (MM/YY)', 'woocommerce' ) . ' <span class="required">*</span></label>
|
||||
<input id="' . esc_attr( $this->id ) . '-card-expiry" class="input-text wc-credit-card-form-card-expiry" inputmode="numeric" autocomplete="cc-exp" autocorrect="no" autocapitalize="no" spellcheck="no" type="tel" placeholder="' . esc_attr__( 'MM / YY', 'woocommerce' ) . '" ' . $this->field_name( 'card-expiry' ) . ' />
|
||||
</p>',
|
||||
);
|
||||
|
||||
if ( ! $this->supports( 'credit_card_form_cvc_on_saved_method' ) ) {
|
||||
$default_fields['card-cvc-field'] = $cvc_field;
|
||||
}
|
||||
|
||||
$fields = wp_parse_args( $fields, apply_filters( 'woocommerce_credit_card_form_fields', $default_fields, $this->id ) );
|
||||
?>
|
||||
|
||||
<fieldset id="wc-<?php echo esc_attr( $this->id ); ?>-cc-form" class='wc-credit-card-form wc-payment-form'>
|
||||
<?php do_action( 'woocommerce_credit_card_form_start', $this->id ); ?>
|
||||
<?php
|
||||
foreach ( $fields as $field ) {
|
||||
echo $field; // phpcs:ignore WordPress.XSS.EscapeOutput.OutputNotEscaped
|
||||
}
|
||||
?>
|
||||
<?php do_action( 'woocommerce_credit_card_form_end', $this->id ); ?>
|
||||
<div class="clear"></div>
|
||||
</fieldset>
|
||||
<?php
|
||||
|
||||
if ( $this->supports( 'credit_card_form_cvc_on_saved_method' ) ) {
|
||||
echo '<fieldset>' . $cvc_field . '</fieldset>'; // phpcs:ignore WordPress.XSS.EscapeOutput.OutputNotEscaped
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user