/home/u336066629/websites/AmAL87tCa/public_html/wp-content/themes/ona/functions.php
<?php
/**
* Theme functions and definitions.
* @author DeoThemes
* @copyright (c) Copyright by DeoThemes
* @link https://deothemes.com
* @package Ona
* @since 1.0
*/
if ( !defined( 'ABSPATH' ) ) {
exit( 'Direct script access denied.' );
}
// Constants
define( 'ONA_VERSION', '1.23.2' );
define( 'ONA_DIR', get_template_directory() );
define( 'ONA_URI', get_template_directory_uri() );
if ( !function_exists( 'ona_fs' ) ) {
// Create a helper function for easy SDK access.
function ona_fs() {
global $ona_fs;
if ( !isset( $ona_fs ) ) {
// Include Freemius SDK.
require_once dirname( __FILE__ ) . '/freemius/start.php';
$ona_fs = fs_dynamic_init( array(
'id' => '9271',
'slug' => 'ona',
'premium_slug' => 'ona-pro',
'type' => 'theme',
'public_key' => 'pk_561bffcf4255bd719dad9701963a8',
'is_premium' => false,
'premium_suffix' => 'Pro',
'has_addons' => false,
'has_paid_plans' => true,
'has_affiliation' => 'selected',
'menu' => array(
'slug' => 'ona-theme',
'contact' => false,
'support' => false,
'parent' => array(
'slug' => 'themes.php',
),
),
'is_live' => true,
) );
}
return $ona_fs;
}
// Init Freemius.
ona_fs();
// Signal that SDK was initiated.
do_action( 'ona_fs_loaded' );
}
// Set the content width based on the theme's design and stylesheet.
if ( !isset( $content_width ) ) {
$content_width = 1170;
/* pixels */
}
// Includes
require_once ONA_DIR . '/inc/admin/theme-admin.php';
require_once ONA_DIR . '/inc/patterns/block-patterns.php';
require_once ONA_DIR . '/inc/block-styles.php';
require_once ONA_DIR . '/inc/class-ona-theme-update.php';
/**
* TGMPA plugins activation.
*/
require_once ONA_DIR . '/inc/tgmpa/tgm-plugin-activation.php';
/*--------------------------------------------------------------
# Theme Setup
--------------------------------------------------------------*/
if ( !function_exists( 'ona_setup' ) ) {
function ona_setup() {
load_theme_textdomain( 'ona', get_template_directory() . '/languages' );
add_theme_support( 'post-thumbnails' );
set_post_thumbnail_size( 1170, 0 );
add_theme_support( 'editor-styles' );
add_theme_support( 'html5', array('comment-form', 'comment-list') );
add_theme_support( 'responsive-embeds' );
// Adding support for core block visual styles.
add_theme_support( 'wp-block-styles' );
}
add_action( 'after_setup_theme', 'ona_setup' );
}
/*--------------------------------------------------------------
# Enqueue Styles
--------------------------------------------------------------*/
if ( !function_exists( 'ona_styles' ) ) {
function ona_styles() {
wp_register_style( 'ona-style', ONA_URI . '/assets/css/style.min.css' );
wp_add_inline_style( 'ona-style', ona_get_font_face_styles() );
$dependencies = apply_filters( 'ona_style_dependencies', array('ona-style') );
wp_register_style(
'ona-style-blocks',
ONA_URI . '/assets/css/blocks.min.css',
$dependencies,
ONA_VERSION
);
wp_enqueue_style( 'ona-style' );
wp_style_add_data( 'ona-style', 'rtl', 'replace' );
wp_enqueue_style( 'ona-style-blocks' );
wp_style_add_data( 'ona-style-blocks', 'rtl', 'replace' );
}
add_action( 'wp_enqueue_scripts', 'ona_styles' );
}
/*--------------------------------------------------------------
# Enqueue Editor Styles
--------------------------------------------------------------*/
if ( !function_exists( 'ona_editor_styles' ) ) {
function ona_editor_styles() {
// Add support for editor styles.
add_theme_support( 'editor-styles' );
add_editor_style( array('./assets/css/editor.min.css', './assets/css/blocks.min.css') );
if ( defined( 'SBI_PLUGIN_DIR' ) ) {
add_editor_style( array('../../plugins/instagram-feed/css/sbi-styles.min.css') );
}
wp_add_inline_style( 'wp-block-library', ona_get_font_face_styles() );
}
add_action( 'admin_init', 'ona_editor_styles' );
}
/*--------------------------------------------------------------
# Enqueue Admin Scripts and Styles
--------------------------------------------------------------*/
if ( !function_exists( 'ona_admin_scripts' ) ) {
function ona_admin_scripts() {
$screen = get_current_screen();
$user_id = get_current_user_id();
wp_enqueue_style( 'ona-admin-styles', ONA_URI . '/assets/admin/css/admin-styles.css' );
if ( $screen->id === 'appearance_page_ona-theme' ) {
wp_enqueue_script(
'ona-admin-scripts',
ONA_URI . '/assets/admin/js/admin-scripts.js',
array('jquery-core'),
false,
true
);
wp_enqueue_script(
'ona-canny-scripts',
ONA_URI . '/assets/admin/js/canny-scripts.js',
array(),
false,
true
);
wp_localize_script( 'ona-admin-scripts', 'ona_params', array(
'ajaxurl' => admin_url( 'admin-ajax.php' ),
'wpnonce' => wp_create_nonce( 'ona_ajax_nonce' ),
'wizard_url' => esc_url( admin_url( 'themes.php?page=merlin' ) ),
'processing' => esc_html__( 'Processing', 'ona' ),
'finished' => esc_html__( 'Finished', 'ona' ),
) );
wp_localize_script( 'ona-canny-scripts', 'ona_canny_params', array(
'user_email' => sanitize_email( get_option( 'admin_email' ) ),
'user_id' => absint( $user_id ),
'user_name' => esc_html( wp_get_current_user()->user_login ),
'user_avatar' => esc_url( get_avatar_url( $user_id ) ),
) );
}
}
add_action( 'admin_enqueue_scripts', 'ona_admin_scripts' );
}
/*--------------------------------------------------------------
# Get Fonts
--------------------------------------------------------------*/
if ( !function_exists( 'ona_get_font_face_styles' ) ) {
/**
* Get font face styles.
*
* @return string
*/
function ona_get_font_face_styles() {
return "\r\n\r\n\t\t@font-face{\r\n\t\t\tfont-family: 'Bestermind';\r\n\t\t\tfont-weight: 400;\r\n\t\t\tfont-style: normal;\r\n\t\t\tfont-stretch: normal;\r\n\t\t\tfont-display: swap;\r\n\t\t\tsrc: url('" . get_theme_file_uri( 'assets/fonts/bestermind/BestermindRegular.woff' ) . "') format('woff');\r\n\t\t}\r\n\r\n\t\t";
}
}
/*--------------------------------------------------------------
# Get Mailchimp Forms
--------------------------------------------------------------*/
if ( !function_exists( 'ona_get_mailchimp_forms' ) ) {
/**
* Get Mailchimp Forms.
*
* @param string $style
* @return string
*/
function ona_get_mailchimp_forms( $style = 'style-1' ) {
$form = '';
if ( function_exists( 'mc4wp' ) ) {
$forms = mc4wp_get_forms();
$form_id = ( isset( $forms[0] ) ? $forms[0]->ID : 0 );
switch ( $style ) {
case 'style-1':
$form = '<!-- wp:group {"className":"ona-newsletter"} -->
<div class="wp-block-group ona-newsletter"><!-- wp:mailchimp-for-wp/form {"id":' . absint( $form_id ) . '} /--></div>
<!-- /wp:group -->';
break;
case 'style-1-light':
$form = '<!-- wp:group {"style":{"spacing":{"blockGap":"0px"},"elements":{"link":{"color":{"text":"var:preset|color|background"}}}},"textColor":"background","className":"ona-newsletter"} -->
<div id="newsletter" class="wp-block-group ona-newsletter has-background-color has-text-color has-link-color">
<!-- wp:mailchimp-for-wp/form {"id":' . absint( $form_id ) . ',"className":"is-style-ona-newsletter"} /--></div>
<!-- /wp:group -->';
break;
case 'style-2':
$form = '<!-- wp:group {"style":{"spacing":{"blockGap":"0px"}},"className":"ona-newsletter-style-2"} -->
<div id="newsletter" class="wp-block-group ona-newsletter-style-2">
<!-- wp:mailchimp-for-wp/form {"id":' . absint( $form_id ) . ',"className":"is-style-ona-newsletter-style-2"} /-->
</div><!-- /wp:group -->';
break;
case 'style-3':
$form = '<!-- wp:group {"style":{"spacing":{"blockGap":"0px"},"elements":{"link":{"color":{"text":"var:preset|color|background"}}}},"textColor":"background","className":"ona-newsletter-style-3"} -->
<div class="wp-block-group ona-newsletter-style-3 has-background-color has-text-color has-link-color">
<!-- wp:mailchimp-for-wp/form {"id":' . absint( $form_id ) . ',"className":"is-style-ona-newsletter-style-3"} /-->
</div><!-- /wp:group -->';
break;
default:
$form = '<!-- wp:group {"className":"ona-newsletter"} -->
<div class="wp-block-group ona-newsletter"><!-- wp:mailchimp-for-wp/form {"id":' . absint( $form_id ) . '} /--></div>
<!-- /wp:group -->';
break;
}
}
return $form;
}
}
/*--------------------------------------------------------------
# Get Contact Form 7 Forms
--------------------------------------------------------------*/
if ( !function_exists( 'ona_get_contact_form_7_forms' ) ) {
/**
* Get Contact Form 7 Forms.
*
* @return string
*/
function ona_get_contact_form_7_forms() {
if ( !class_exists( '\\WPCF7' ) ) {
return;
}
$form = '';
$wpcf7_posts = get_posts( array(
'post_type' => 'wpcf7_contact_form',
'showposts' => 999,
) );
$forms = array();
if ( !empty( $wpcf7_posts ) && !is_wp_error( $wpcf7_posts ) ) {
foreach ( $wpcf7_posts as $post ) {
$forms[$post->ID] = $post->post_title;
}
}
if ( !empty( $forms ) ) {
$form_id = key( $forms ) ?? 0;
$form = '<!-- wp:contact-form-7/contact-form-selector {"id":' . absint( $form_id ) . ', "title":"' . $forms[$form_id] . '"} -->
<div class="wp-block-contact-form-7-contact-form-selector">[contact-form-7 id="' . absint( $form_id ) . '" title="' . $forms[$form_id] . '"]</div>
<!-- /wp:contact-form-7/contact-form-selector -->';
}
return $form;
}
}
/*--------------------------------------------------------------
# Get page ID by title
--------------------------------------------------------------*/
function ona_get_page_by_title( $page_title, $post_type = 'page' ) {
$posts = get_posts( array(
'post_type' => $post_type,
'title' => $page_title,
'post_status' => 'all',
'numberposts' => 1,
'update_post_term_cache' => false,
'update_post_meta_cache' => false,
'orderby' => 'post_date ID',
'order' => 'ASC',
) );
if ( !empty( $posts ) ) {
$post = $posts[0];
} else {
$post = null;
}
return $post;
}
/*--------------------------------------------------------------
# Remove wrapping paragraphs for CF7
--------------------------------------------------------------*/
if ( class_exists( '\\WPCF7' ) ) {
add_filter( 'wpcf7_autop_or_not', '__return_false' );
}
/*--------------------------------------------------------------
# Add classic menu
--------------------------------------------------------------*/
register_nav_menus( array(
'primary-menu' => esc_html__( 'Primary Menu', 'ona' ),
'footer-menu' => esc_html__( 'Footer Menu', 'ona' ),
) );