You are here

function commerce_stripe_requirements in Commerce Stripe 7.3

Same name and namespace in other branches
  1. 8 commerce_stripe.install \commerce_stripe_requirements()
  2. 7 commerce_stripe.install \commerce_stripe_requirements()
  3. 7.2 commerce_stripe.install \commerce_stripe_requirements()

Implements hook_requirements().

File

./commerce_stripe.install, line 10
Contains requirements function for Commerce Stripe.

Code

function commerce_stripe_requirements($phase) {
  $requirements = array();
  if ($phase == 'runtime') {
    $t = get_t();

    // Check for the Stripe PHP library.
    if (file_exists(libraries_get_path('stripe-php') . '/lib/Stripe.php')) {
      $requirements['commerce_stripe_php'] = array(
        'value' => $t('Installed'),
        'severity' => REQUIREMENT_OK,
      );
    }
    else {
      $requirements['commerce_stripe_php'] = array(
        'value' => $t('Missing!'),
        'severity' => REQUIREMENT_ERROR,
        'description' => $t('Stripe library missing. Download the Stripe library from <a href="@url">https://github.com/stripe/stripe-php</a> and place it in to sites/all/libraries/stripe-php', array(
          '@url' => 'https://github.com/stripe/stripe-php',
        )),
      );
    }
    $requirements['commerce_stripe_php']['title'] = $t('Stripe PHP library');

    // Check for supported payment currencies.
    $supported_currencies = commerce_stripe_payment_currencies();
    $currencies = commerce_currencies();
    $default = commerce_default_currency();
    if (in_array(strtolower(commerce_default_currency()), $supported_currencies)) {
      $requirements['commerce_stripe_currency'] = array(
        'value' => $t('Valid currency'),
        'severity' => REQUIREMENT_OK,
        'description' => $t('Currencies are correctly configured. Default: @default', array(
          '@default' => $currencies[$default]['name'],
        )),
      );
    }
    else {
      $requirements['commerce_stripe_currency'] = array(
        'value' => $t('Invalid default currency!'),
        'severity' => REQUIREMENT_ERROR,
        'description' => $t('Your Stripe account does not accept default currency @default. Please <a href="@config">configure your currency settings</a> and update your payment method settings accordingly.', array(
          '@default' => $currencies[$default]['name'],
          '@config' => url('admin/commerce/config/currency'),
        )),
      );
    }
    $requirements['commerce_stripe_currency']['title'] = $t('Stripe currency check');
    $message = "Commerce Stripe is currently tested with stripe-php library versions @minimum_version through @maximum_version. Your version: @installed_version.";
    $library = libraries_load('stripe-php');
    $detected = $library['version'];
    $minimum_version = '3.0.0';
    $maximum_version = '5.6.0';
    $status = REQUIREMENT_OK;
    $variables = array(
      '@minimum_version' => $minimum_version,
      '@maximum_version' => $maximum_version,
      '@installed_version' => $detected,
    );
    if (version_compare($library['version'], $maximum_version, '>')) {
      $variables['@upgrade_or_downgrade'] = 'Downgrading';
      $status = REQUIREMENT_ERROR;
      watchdog('commerce_stripe', $message, $variables, WATCHDOG_WARNING);
    }
    if (version_compare($library['version'], $minimum_version, '<')) {
      $variables['@upgrade_or_downgrade'] = 'Upgrading';
      $status = REQUIREMENT_ERROR;
      watchdog('commerce_stripe', $message, $variables, WATCHDOG_WARNING);
    }
    $requirements['commerce_stripe_php_version'] = array(
      'title' => $t('Stripe PHP Library Version'),
      'value' => $detected,
      'severity' => $status,
      'description' => $t($message, $variables),
    );
  }
  return $requirements;
}