. */ if (function_exists('logtivity_dd') == false) { /** * * Dump and Die variable or whatever * * @param $dump * */ function logtivity_dd($dump) { echo '
';
        var_export($dump);
        echo '
'; die(); } /** * Global function for easy use in themes/plugins for logging custom actions * * @param ?string $action * @param ?string $meta * @param ?string $user_id * * @return ?mixed * @deprecated v3.1.8 - use Logtivity::log() instead */ function logtivity_log(?string $action = null, ?string $meta = null, ?string $user_id = null): void { Logtivity::log($action, $meta, $user_id)->send(); } /** * Load a view and pass variables into it * * To output a view you would want to echo it * * @param string $fileName excluding file extension * @param array $vars * * @return string */ function logtivity_view(string $fileName, array $vars = []): string { extract($vars); unset($vars); ob_start(); include(__DIR__ . '/../views/' . str_replace('.', '/', $fileName) . '.php'); return ob_get_clean(); } /** * @param ?int $postId * * @return string */ function logtivity_get_the_title(?int $postId): string { $wpTexturize = remove_filter('the_title', 'wptexturize'); $title = get_the_title($postId); if ($wpTexturize) { add_filter('the_title', 'wptexturize'); } return $title; } /** * @return string */ function logtivity_get_api_url(): string { if (defined('LOGTIVITY_API_URL')) { $customUrl = rtrim(sanitize_url(LOGTIVITY_API_URL), '/'); } return $customUrl ?? logtivity_get_production_api_url(); } /** * @return string */ function logtivity_get_production_api_url(): string { return 'https://api.logtivity.io'; } /** * @return string */ function logtivity_get_app_url(): string { if (defined('LOGTIVITY_APP_URL')) { $customUrl = rtrim(sanitize_url(LOGTIVITY_APP_URL), '/'); } return $customUrl ?? logtivity_get_production_app_url(); } /** * @return string */ function logtivity_get_production_app_url(): string { return 'https://app.logtivity.io'; } /** * @return bool */ function logtivity_is_production(): bool { return logtivity_get_production_app_url() == logtivity_get_app_url() || logtivity_get_production_api_url() == logtivity_get_api_url(); } /** * @return bool */ function logtivity_has_site_url_changed(): bool { $hash = (new Logtivity_Options())->urlHash(); return $hash != md5(home_url()); } /** * @param array $array * * @return bool */ function logtivity_is_associative(array $array): bool { foreach ($array as $key => $value) { if (is_string($key)) { return true; } } return false; } /** * Get all known capabilities * * @return array */ function logtivity_get_capabilities(): array { $capabilities = []; if ($roles = wp_roles()) { foreach ($roles->roles as $role) { $capabilities = array_merge($capabilities, $role['capabilities']); } } return $capabilities; } /** * @param string $label * * @return string */ function logtivity_logger_label(string $label): string { global $wpdb; return ucwords( str_replace( ['_', '-'], ' ', str_replace($wpdb->get_blog_prefix(), '', $label) ) ); } /** * @param mixed $value * * @return string */ function logtivity_logger_value($value): string { $value = is_string($value) ? maybe_unserialize($value) : $value; switch (gettype($value)) { case 'NULL': return 'NULL'; case 'object': $value = get_object_vars($value); // fall through to array type case 'array': return print_r($value, true); case 'boolean': return $value ? 'True' : 'False'; default: return empty($value) ? '[Empty]' : $value; } } /** * @param string $time * * @return string */ function logtivity_datetime(string $time): string { $format = get_option('date_format') . ' ' . get_option('time_format'); return get_date_from_gmt($time, $format); } }