WordPress.org

Making WordPress.org


Ignore:
Timestamp:
02/12/2018 05:39:13 PM (19 months ago)
Author:
iandunn
Message:

WordCamp Payments: Apply coding standards to sponsor-payment-stripe.php.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sites/trunk/wordcamp.org/public_html/wp-content/plugins/wordcamp-payments/includes/sponsor-payment-stripe.php

    r6067 r6601  
    55
    66namespace WordCamp\Budgets\Sponsor_Payment_Stripe;
     7use WordCamp_Budgets;
    78
    89defined( 'WPINC' ) or die();
    910
    10 const STEP_SELECT_INVOICE = 1;
     11const STEP_SELECT_INVOICE  = 1;
    1112const STEP_PAYMENT_DETAILS = 2;
    1213const STEP_PAYMENT_SUCCESS = 3;
    13 const CSS_VERSION = 1;
     14const CSS_VERSION          = 1;
    1415
    1516/**
     
    2021 */
    2122function render() {
    22 
    23     // Make sure we have Stripe keys and an HMAC.
    2423    $keys = _get_keys();
    25     if ( empty( $keys['publishable'] ) || empty( $keys['secret'] ) || empty( $keys['hmac_key'] ) )
     24
     25    if ( empty( $keys['publishable'] ) || empty( $keys['secret'] ) || empty( $keys['hmac_key'] ) ) {
    2626        return;
    27 
    28     // Make sure WordCamp_Budgets is available.
     27    }
     28
    2929    require_once( __DIR__ . '/wordcamp-budgets.php' );
    3030
    3131    $data = array(
    32         'keys' => $keys,
    33         'step' => STEP_SELECT_INVOICE,
    34         'wordcamps' => _get_wordcamps(),
    35         'currencies' => \WordCamp_Budgets::get_currencies(),
    36         'errors' => array(),
     32        'keys'       => $keys,
     33        'step'       => STEP_SELECT_INVOICE,
     34        'wordcamps'  => _get_wordcamps(),
     35        'currencies' => WordCamp_Budgets::get_currencies(),
     36        'errors'     => array(),
    3737    );
    3838
     
    5454        // Stripe API credentials.
    5555        'publishable' => '',
    56         'secret' => '',
     56        'secret'      => '',
    5757
    5858        // An HMAC key used to sign some data in between requests.
    59         'hmac_key' => '',
     59        'hmac_key'    => '',
    6060    ) );
    6161}
     
    7171    if ( ! isset( $wordcamps ) ) {
    7272        $wordcamps = get_posts( array(
    73             'post_type' => 'wordcamp',
    74             'post_status' => \WordCamp_Loader::get_public_post_statuses(),
    75             'posts_per_page' => -1,
    76             'orderby'       => 'title',
    77             'order'       => 'asc',
    78             'meta_query'     => array( array(
    79                 'key'       => 'Start Date (YYYY-mm-dd)',
    80                 'value'   => strtotime( '-3 months' ),
    81                 'compare'   => '>'
    82             ) )
     73            'post_type'      => 'wordcamp',
     74            'post_status'    => \WordCamp_Loader::get_public_post_statuses(),
     75            'posts_per_page' => - 1,
     76            'orderby'        => 'title',
     77            'order'          => 'asc',
     78
     79            'meta_query' => array(
     80                array(
     81                    'key'     => 'Start Date (YYYY-mm-dd)',
     82                    'value'   => strtotime( '-3 months' ),
     83                    'compare' => '>'
     84                )
     85            )
    8386        ) );
    8487    }
     
    100103
    101104    switch ( $_POST['step'] ) {
     105        // An invoice, event, currency and amount have been selected.
    102106        case STEP_SELECT_INVOICE:
    103             // An invoice, event, currency and amount have been selected.
    104 
    105107            if ( empty( $_POST['currency'] ) ) {
    106108                $data['errors'][] = 'Please select a currency.';
     
    132134            // Make sure the selected WordCamp is valid.
    133135            $wordcamp_id = absint( $_POST['wordcamp_id'] );
    134             $valid_ids = wp_list_pluck( _get_wordcamps(), 'ID' );
     136            $valid_ids   = wp_list_pluck( _get_wordcamps(), 'ID' );
    135137
    136138            if ( ! in_array( $wordcamp_id, $valid_ids ) ) {
     
    144146            }
    145147
    146             $invoice_id = absint( $_POST['invoice_id'] );
     148            $invoice_id       = absint( $_POST['invoice_id'] );
    147149            $wordcamp_site_id = get_wordcamp_site_id( get_post( $wordcamp_id ) );
    148150            if ( empty( $wordcamp_site_id ) ) {
     
    152154
    153155            // Next step is to collect the card details via Stripe.
    154             $data['step'] = STEP_PAYMENT_DETAILS;
     156            $data['step']    = STEP_PAYMENT_DETAILS;
    155157            $data['payment'] = array(
    156                 'currency' => $currency,
    157                 'amount' => $amount,
     158                'currency'    => $currency,
     159                'amount'      => $amount,
    158160                'wordcamp_id' => $wordcamp_id,
    159                 'invoice_id' => $invoice_id,
     161                'invoice_id'  => $invoice_id,
    160162            );
    161163
    162164            // Passed through to the charge step.
    163             $data['payment_data_json'] = json_encode( $data['payment'] );
     165            $data['payment_data_json']      = json_encode( $data['payment'] );
    164166            $data['payment_data_signature'] = hash_hmac( 'sha256', $data['payment_data_json'], $data['keys']['hmac_key'] );
    165167
     
    168170            break;
    169171
     172        // The card details have been entered and Stripe has submitted our form.
    170173        case STEP_PAYMENT_DETAILS:
    171             // The card details have been entered and Stripe has submitted our form.
    172 
    173174            if ( empty( $_POST['stripeToken'] ) ) {
    174175                $data['errors'][] = 'Stripe token not found.';
     
    178179            // Make sure our data hasn't been altered.
    179180            $payment_data_str = wp_unslash( $_POST['payment_data_json'] );
    180             $payment_data = json_decode( $payment_data_str, true );
     181            $payment_data     = json_decode( $payment_data_str, true );
    181182            if ( ! hash_equals( hash_hmac( 'sha256', $payment_data_str, $data['keys']['hmac_key'] ), $_POST['payment_data_signature'] ) ) {
    182183                $data['errors'][] = 'Could not verify payload signature.';
     
    184185            }
    185186
    186             $wordcamp_obj = get_post( $payment_data['wordcamp_id'] );
    187             $wordcamp_site_id = get_wordcamp_site_id( $wordcamp_obj );
     187            $wordcamp_obj      = get_post( $payment_data['wordcamp_id'] );
     188            $wordcamp_site_id  = get_wordcamp_site_id( $wordcamp_obj );
    188189            $wordcamp_site_url = set_url_scheme( esc_url_raw( get_blog_option( $wordcamp_site_id, 'home', '' ) ), 'https' );
    189190
     
    193194            try {
    194195                $charge = \Stripe\Charge::create( array(
    195                     'amount' => round( $payment_data['amount'], 2 ) * 100,
    196                     'currency' => $payment_data['currency'],
    197                     'source' => $_POST['stripeToken'],
     196                    'amount'      => round( $payment_data['amount'], 2 ) * 100,
     197                    'currency'    => $payment_data['currency'],
     198                    'source'      => $_POST['stripeToken'],
    198199                    'description' => 'WordCamp Sponsorship: ' . $wordcamp_obj->post_title,
    199                     'metadata' => array(
    200                         'invoice_id' => $payment_data['invoice_id'],
    201                         'wordcamp_id' => $payment_data['wordcamp_id'],
     200                    'metadata'    => array(
     201                        'invoice_id'       => $payment_data['invoice_id'],
     202                        'wordcamp_id'      => $payment_data['wordcamp_id'],
    202203                        'wordcamp_site_id' => $wordcamp_site_id,
    203                         'wordcamp_url' => $wordcamp_site_url,
     204                        'wordcamp_url'     => $wordcamp_site_url,
    204205                    ),
    205206                ) );
Note: See TracChangeset for help on using the changeset viewer.