Files
roi-theme/wp-content/plugins/wp-marketing-automations/includes/db/class-bwfan-model-automationmeta.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

119 lines
3.7 KiB
PHP
Executable File

<?php
class BWFAN_Model_Automationmeta extends BWFAN_Model {
static $primary_key = 'ID';
public static function get_meta( $id, $key ) {
$rows = self::get_automation_meta( $id );
$value = false;
if ( count( $rows ) > 0 && isset( $rows[ $key ] ) ) {
$value = $rows[ $key ];
}
return $value;
}
public static function get_automation_meta( $automation_id, $cache = true ) {
if ( empty( $automation_id ) ) {
return [];
}
$meta = [];
$WooFunnels_Cache_obj = WooFunnels_Cache::get_instance();
if ( $cache ) {
$meta = $WooFunnels_Cache_obj->get_cache( 'bwfan_automations_meta_' . $automation_id, 'autonami' );
}
if ( empty( $meta ) ) {
global $wpdb;
$table = self::_table();
$sql_query = "SELECT bwfan_automation_id, meta_key, meta_value FROM {$table} WHERE bwfan_automation_id =%d";
$sql_query = $wpdb->prepare( $sql_query, $automation_id ); // WPCS: unprepared SQL OK
$result = $wpdb->get_results( $sql_query, ARRAY_A ); //phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching
$meta = [];
if ( is_array( $result ) && count( $result ) > 0 ) {
foreach ( $result as $meta_values ) {
$key = $meta_values['meta_key'];
$meta[ $key ] = maybe_unserialize( $meta_values['meta_value'] );
}
}
$WooFunnels_Cache_obj->set_cache( 'bwfan_automations_meta_' . $automation_id, $meta, 'autonami' );
}
return $meta;
}
public static function update_automation_meta_values( $automation_id, $data ) {
if ( empty( $automation_id ) || empty( $data ) ) {
return false;
}
global $wpdb;
$table = self::_table();
foreach ( $data as $key => $value ) {
//phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching
$wpdb->update( $table, [
'meta_value' => $value
], [
'bwfan_automation_id' => intval( $automation_id ),
'meta_key' => $key
] );
}
return true;
}
public static function insert_automation_meta_data( $automation_id, $data ) {
if ( empty( $automation_id ) || empty( $data ) ) {
return false;
}
global $wpdb;
$table = self::_table();
foreach ( $data as $key => $value ) {
//phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching
$wpdb->insert( $table, [
'bwfan_automation_id' => intval( $automation_id ),
'meta_key' => $key,
'meta_value' => $value,
] );
}
return true;
}
public static function get_automations_meta( $aids, $meta_key = '' ) {
if ( empty( $aids ) || ! is_array( $aids ) ) {
return [];
}
$aids = implode( ', ', $aids );
global $wpdb;
$table = self::_table();
$sql_query = "SELECT bwfan_automation_id, meta_key, meta_value FROM {$table} WHERE bwfan_automation_id IN ($aids)";
if ( ! empty( $meta_key ) ) {
$sql_query .= " AND meta_key= 'event_meta'";
}
$result = $wpdb->get_results( $sql_query, ARRAY_A ); //phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching
$meta = [];
if ( is_array( $result ) && count( $result ) > 0 ) {
foreach ( $result as $meta_values ) {
$key = $meta_values['meta_key'];
$meta[ $meta_values['bwfan_automation_id'] ][ $key ] = maybe_unserialize( $meta_values['meta_value'] );
}
}
return $meta;
}
public static function delete_automation_meta( $aid, $meta_key ) {
global $wpdb;
$table = self::_table();
$query = "DELETE FROM {$table} WHERE `bwfan_automation_id` = %d AND `meta_key` = %s ";
$wpdb->query( $wpdb->prepare( $query, $aid, $meta_key ) ); //phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching
}
}