# tier-pricing-table/7.1.5/src/Addons/RoleBasedPricing/RoleBasedPricingRulesRepository.php

Tiered Pricing Table for WooCommerce, version 7.1.5. 41 lines.

- Page: https://pluginprobe.com/plugins/tier-pricing-table/7.1.5/code/src/Addons/RoleBasedPricing/RoleBasedPricingRulesRepository.php
- Raw: https://pluginprobe.com/plugins/tier-pricing-table/7.1.5/raw/src/Addons/RoleBasedPricing/RoleBasedPricingRulesRepository.php
- Modified: 2024-12-09T13:32:34+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/tier-pricing-table/7.1.5/code/src/Addons/RoleBasedPricing/RoleBasedPricingRulesRepository.php#L10-L20`.

```php
<?php namespace TierPricingTable\Addons\RoleBasedPricing;

use TierPricingTable\TierPricingTablePlugin;
use WC_Product;

class RoleBasedPricingRulesRepository {
	
	protected static $instance;
	
	public static function getInstance(): self {
		if ( ! self::$instance ) {
			self::$instance = new self();
		}
		
		return self::$instance;
	}
	
	public function getCurrentUserRule( WC_Product $product ): ?RoleBasedPricingRule {
		
		$userRoles = TierPricingTablePlugin::getCurrentUserRoles();
		
		if ( ! empty( $userRoles ) ) {
			
			foreach ( $userRoles as $role ) {
				if ( RoleBasedPriceManager::roleHasRules( $role, $product->get_id() ) ) {
					return RoleBasedPricingRule::build( $product->get_id(), $role );
				}
				
				// Check also for parent level
				if ( TierPricingTablePlugin::isVariationProductSupported( $product ) ) {
					if ( RoleBasedPriceManager::roleHasRules( $role, $product->get_parent_id() ) ) {
						return RoleBasedPricingRule::build( $product->get_parent_id(), $role );
					}
				}
			}
		}
		
		return null;
	}
}

```
