Automattic\WooCommerce\Internal\StockNotifications
Config{} │ WC 1.0
Configuration class for stock notifications.
Usage
$Config = new Config();
// use class methods
Methods
- public static allows_signups()
- public static creates_account_on_signup()
- public static get_eligible_stock_statuses()
- public static get_product_signups_meta_key()
- public static get_supported_product_statuses()
- public static get_supported_product_types()
- public static get_unverified_deletion_days_threshold()
- public static get_verification_expiration_time_threshold()
- public static requires_account()
- public static requires_double_opt_in()
- public if ( ! is_null( self::$verification_expiration_time_threshold ) )
- ERROR: no method name found on line `ProductType::VARIABLE,`
- ERROR: no method name found on line `}`
- ERROR: no method name found on line `ProductStockStatus::ON_BACKORDER,`
- ERROR: no method name found on line `*`
- ERROR: no method name found on line `);`
- ERROR: no method name found on line `}`
- ERROR: no method name found on line `*`
- ERROR: no method name found on line `*`
- ERROR: no method name found on line `return 'customer_stock_notifications_enable_signups';`
- ERROR: no method name found on line `*`
- ERROR: no method name found on line `* Filter: woocommerce_customer_stock_notifications_supported_stock_statuses`
- ERROR: no method name found on line `* @param array $product_stock_statuses Product stock statuses.`
Config{} Config{} code
WC 10.4.3
class Config {
/**
* Runtime cache for supported product types.
*
* @var array<string>
*/
private static $supported_product_types;
/**
* Runtime cache for supported product statuses.
*
* @var array<string>
*/
private static $supported_product_statuses;
/**
* Runtime cache for eligible stock statuses.
*
* @var array<string>
*/
private static $eligible_stock_statuses;
/**
* Runtime cache for verification expiration time threshold.
*
* @var int
*/
private static $verification_expiration_time_threshold;
/**
* Get the supported product types.
*
* @return array<string>
*/
public static function get_supported_product_types(): array {
if ( is_array( self::$supported_product_types ) ) {
return self::$supported_product_types;
}
/**
* Filter: woocommerce_customer_stock_notifications_supported_product_types
*
* @since 10.2.0
*
* @param array $product_types Product types.
*/
self::$supported_product_types = (array) apply_filters(
'woocommerce_customer_stock_notifications_supported_product_types',
array(
ProductType::SIMPLE,
ProductType::VARIABLE,
ProductType::VARIATION,
)
);
return self::$supported_product_types;
}
/**
* Get the supported product stock statuses.
*
* @return array<string>
*/
public static function get_supported_product_statuses(): array {
if ( is_array( self::$supported_product_statuses ) ) {
return self::$supported_product_statuses;
}
/**
* Filter: woocommerce_customer_stock_notifications_supported_product_stock_statuses
*
* @since 10.2.0
*
* @param array $product_stock_statuses Product stock statuses.
*/
self::$supported_product_statuses = (array) apply_filters(
'woocommerce_customer_stock_notifications_supported_product_stock_statuses',
array(
ProductStatus::PUBLISH,
)
);
return self::$supported_product_statuses;
}
/**
* Get the eligible stock statuses that trigger sending notifications.
*
* @return array<string>
*/
public static function get_eligible_stock_statuses(): array {
if ( is_array( self::$eligible_stock_statuses ) ) {
return self::$eligible_stock_statuses;
}
/**
* Filter: woocommerce_customer_stock_notifications_supported_stock_statuses
*
* @since 10.2.0
*
* @param array $stock_statuses Stock statuses.
*/
self::$eligible_stock_statuses = (array) apply_filters(
'woocommerce_customer_stock_notifications_supported_stock_statuses',
array(
ProductStockStatus::IN_STOCK,
ProductStockStatus::ON_BACKORDER,
)
);
return self::$eligible_stock_statuses;
}
/**
* Get the metadata name for product-level signups.
*
* @return string
*/
public static function get_product_signups_meta_key(): string {
return 'customer_stock_notifications_enable_signups';
}
/**
* Check if signups are allowed.
*
* @return bool
*/
public static function allows_signups(): bool {
return 'yes' === get_option( 'woocommerce_customer_stock_notifications_allow_signups', 'no' );
}
/**
* Check if double opt-in is required.
*
* @return bool
*/
public static function requires_double_opt_in(): bool {
return 'yes' === get_option( 'woocommerce_customer_stock_notifications_require_double_opt_in', 'no' );
}
/**
* Check if an account is required.
*
* @return bool
*/
public static function requires_account(): bool {
return 'yes' === get_option( 'woocommerce_customer_stock_notifications_require_account', 'no' );
}
/**
* Check if an account is created on signup.
*
* @return bool
*/
public static function creates_account_on_signup(): bool {
return 'yes' === get_option( 'woocommerce_customer_stock_notifications_create_account_on_signup', 'no' );
}
/**
* How long to keep pending notifications before deleting them (in days).
*
* @return int
*/
public static function get_unverified_deletion_days_threshold(): int {
return absint(
get_option(
'woocommerce_customer_stock_notifications_unverified_deletions_days_threshold',
0
)
);
}
/**
* Returns verification codes expiration time threshold (in seconds).
*
* @return int
*/
public static function get_verification_expiration_time_threshold(): int {
if ( ! is_null( self::$verification_expiration_time_threshold ) ) {
return self::$verification_expiration_time_threshold;
}
/**
* Filter the verification codes expiration time (in seconds).
*
* @param int $threshold
* @since 10.2.0
*/
self::$verification_expiration_time_threshold = (int) apply_filters(
'woocommerce_customer_stock_notifications_verification_expiration_time_threshold',
HOUR_IN_SECONDS
);
return self::$verification_expiration_time_threshold;
}
}