Files
roi-theme/wp-content/plugins/wp-marketing-automations/includes/class-bwfan-recipe-loader.php
root a22573bf0b Commit inicial - WordPress Análisis de Precios Unitarios
- WordPress core y plugins
- Tema Twenty Twenty-Four configurado
- Plugin allow-unfiltered-html.php simplificado
- .gitignore configurado para excluir wp-config.php y uploads

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-03 21:04:30 -06:00

111 lines
2.7 KiB
PHP
Executable File

<?php
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly
}
#[AllowDynamicProperties]
class BWFAN_Recipe_Loader {
private static $instance = null;
public static $web_url = '';
/**
* Constructor
*/
public function __construct() {
self::$web_url = 'https://app.getautonami.com/recipes';
}
/**
* Ensures only one instance of the class is loaded or can be loaded.
*
* @return BWFAN_Recipe_Loader|null
*/
public static function get_instance() {
if ( null === self::$instance ) {
self::$instance = new self();
}
return self::$instance;
}
/**
* Get recipes listing array
*
* @param bool $load_new
*
* @return array
*/
public static function get_recipes_array( $load_new = false ) {
$recipes_data['data'] = self::get_recipe_data( $load_new );
$recipes_data['total_count'] = ! empty( $recipes_data['data'] ) ? count( $recipes_data['data'] ) : 0;
$recipes_data['filters'] = self::get_recipes_filter();
return $recipes_data;
}
/**
* Get the recipes listing data from the database or server
*
* @param bool $load_new
*
* @return array|mixed
*/
public static function get_recipe_data( $load_new ) {
if ( ! $load_new && get_option( 'bwfan_get_recipes' ) ) {
$result = get_option( 'bwfan_get_recipes' );
if ( ! empty( $result ) ) {
return json_decode( $result, true );
}
}
$request = wp_remote_get( self::$web_url );
if ( is_wp_error( $request ) || wp_remote_retrieve_response_code( $request ) != 200 ) {
return [];
}
$result = wp_remote_retrieve_body( $request );
update_option( 'bwfan_get_recipes', $result, false );
return json_decode( $result, true );
}
/**
* Get recipes group or sub group filters
*
* @return array
*/
public static function get_recipes_filter() {
$data = [
'groups' => [
__( 'All', 'wp-marketing-automations' ),
__( 'WooCommerce', 'wp-marketing-automations' ),
__( 'WordPress', 'wp-marketing-automations' ),
'FunnelKit',
__( 'Learndash', 'wp-marketing-automations' ),
__( 'AffiliateWP', 'wp-marketing-automations' )
],
'subGroups' => [
'WooCommerce' => [
__( 'Cart', 'wp-marketing-automations' ),
__( 'Customer', 'wp-marketing-automations' ),
__( 'Orders', 'wp-marketing-automations' ),
__( 'Subscription', 'wp-marketing-automations' ),
__( 'Reviews', 'wp-marketing-automations' ),
],
'WordPress' => [
__( 'User', 'wp-marketing-automations' ),
],
'FunnelKit' => [
__( 'Optin Form', 'wp-marketing-automations' ),
],
]
];
return apply_filters( 'bwfan_recipe_group_filters', $data );
}
}
if ( class_exists( 'BWFAN_Core' ) ) {
BWFAN_Core::register( 'bwfan_recipe', 'BWFAN_Recipe_Loader' );
}