You are here

function commerce_purchase_order_payment_method_instances in Commerce Purchase Order 7

Returns the list of all PO payment method instances.

1 call to commerce_purchase_order_payment_method_instances()
commerce_purchase_order_rules_payment_instance_charge_options_list in ./commerce_purchase_order.rules.inc
Options list for payment method instances that provide a charge callback

File

./commerce_purchase_order.module, line 256
Provides an example payment method for Drupal Commerce for testing and development.

Code

function commerce_purchase_order_payment_method_instances() {
  $instance_ids = array();

  // load all rules.
  $rules_configs = rules_config_load_multiple(FALSE);

  // find all rules with an action to enable PO payment method.
  foreach ($rules_configs as $rule_name => $rule) {

    // Only rules and sub-types have actions.
    if (!$rule instanceof Rule) {
      continue;
    }
    foreach ($rule
      ->actions() as $action) {

      // skip any actions that are not simple rules actions, ie loops
      if (!$action instanceof RulesAction) {
        continue;
      }
      if ($action
        ->getElementName() == 'commerce_payment_enable_commerce_purchase_order') {
        $instance_ids[] = commerce_payment_method_instance_id('commerce_purchase_order', $rule);
        continue 2;

        // skip to next rule
      }
    }
  }
  return $instance_ids;
}