Last active
March 14, 2019 10:36
-
-
Save bryceadams/a8e01ad4e1901f849658 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
add_filter( 'woocommerce_email_attachments', 'attach_terms_conditions_pdf_to_email', 10, 3); | |
function attach_terms_conditions_pdf_to_email ( $attachments , $id, $object ) { | |
$your_pdf_path = get_template_directory() . '/terms.pdf'; | |
$attachments[] = $your_pdf_path; | |
return $attachments; | |
} |
This is my functions.php file, can you tell me which line should I paste the code?
``<?php
/**
- Theme functions and definitions.
- Sets up the theme and provides some helper functions
- When using a child theme (see http://codex.wordpress.org/Theme_Development
- and http://codex.wordpress.org/Child_Themes), you can override certain
- functions (those wrapped in a function_exists() call) by defining them first
- in your child theme's functions.php file. The child theme's functions.php
- file is included before the parent theme's file, so the child theme
- functions would be used.
- For more information on hooks, actions, and filters,
- see http://codex.wordpress.org/Plugin_API
- @Package OceanWP WordPress theme
*/
// Exit if accessed directly
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
// Core Constants
define( 'OCEANWP_THEME_DIR', get_template_directory() );
define( 'OCEANWP_THEME_URI', get_template_directory_uri() );
final class OCEANWP_Theme_Class {
/**
* Main Theme Class Constructor
*
* @since 1.0.0
*/
public function __construct() {
// Define constants
add_action( 'after_setup_theme', array( 'OCEANWP_Theme_Class', 'constants' ), 0 );
// Load all core theme function files
add_action( 'after_setup_theme', array( 'OCEANWP_Theme_Class', 'include_functions' ), 1 );
// Load configuration classes
add_action( 'after_setup_theme', array( 'OCEANWP_Theme_Class', 'configs' ), 3 );
// Load framework classes
add_action( 'after_setup_theme', array( 'OCEANWP_Theme_Class', 'classes' ), 4 );
// Setup theme => add_theme_support, register_nav_menus, load_theme_textdomain, etc
add_action( 'after_setup_theme', array( 'OCEANWP_Theme_Class', 'theme_setup' ), 10 );
// Setup theme => Generate the custom CSS file
add_action( 'admin_bar_init', array( 'OCEANWP_Theme_Class', 'save_customizer_css_in_file' ), 9999 );
// register sidebar widget areas
add_action( 'widgets_init', array( 'OCEANWP_Theme_Class', 'register_sidebars' ) );
// Registers theme_mod strings into Polylang
if ( class_exists( 'Polylang' ) ) {
add_action( 'after_setup_theme', array( 'OCEANWP_Theme_Class', 'polylang_register_string' ) );
}
/** Admin only actions **/
if ( is_admin() ) {
// Load scripts in the WP admin
add_action( 'admin_enqueue_scripts', array( 'OCEANWP_Theme_Class', 'admin_scripts' ) );
// Outputs custom CSS for the admin
add_action( 'admin_head', array( 'OCEANWP_Theme_Class', 'admin_inline_css' ) );
/** Non Admin actions **/
} else {
// Load theme CSS
add_action( 'wp_enqueue_scripts', array( 'OCEANWP_Theme_Class', 'theme_css' ) );
// Load his file in last
add_action( 'wp_enqueue_scripts', array( 'OCEANWP_Theme_Class', 'custom_style_css' ), 9999 );
// Remove Customizer CSS script from Front-end
add_action( 'init', array( 'OCEANWP_Theme_Class', 'remove_customizer_custom_css' ) );
// Load theme js
add_action( 'wp_enqueue_scripts', array( 'OCEANWP_Theme_Class', 'theme_js' ) );
// Add a pingback url auto-discovery header for singularly identifiable articles
add_action( 'wp_head', array( 'OCEANWP_Theme_Class', 'pingback_header' ), 1 );
// Add meta viewport tag to header
add_action( 'wp_head', array( 'OCEANWP_Theme_Class', 'meta_viewport' ), 1 );
// Add an X-UA-Compatible header
add_filter( 'wp_headers', array( 'OCEANWP_Theme_Class', 'x_ua_compatible_headers' ) );
// Loads html5 shiv script
add_action( 'wp_head', array( 'OCEANWP_Theme_Class', 'html5_shiv' ) );
// Outputs custom CSS to the head
add_action( 'wp_head', array( 'OCEANWP_Theme_Class', 'custom_css' ), 9999 );
// Minify the WP custom CSS because WordPress doesn't do it by default
add_filter( 'wp_get_custom_css', array( 'OCEANWP_Theme_Class', 'minify_custom_css' ) );
// Alter the search posts per page
add_action( 'pre_get_posts', array( 'OCEANWP_Theme_Class', 'search_posts_per_page' ) );
// Alter WP categories widget to display count inside a span
add_filter( 'wp_list_categories', array( 'OCEANWP_Theme_Class', 'wp_list_categories_args' ) );
// Add a responsive wrapper to the WordPress oembed output
add_filter( 'embed_oembed_html', array( 'OCEANWP_Theme_Class', 'add_responsive_wrap_to_oembeds' ), 99, 4 );
// Adds classes the post class
add_filter( 'post_class', array( 'OCEANWP_Theme_Class', 'post_class' ) );
// Add schema markup to the authors post link
add_filter( 'the_author_posts_link', array( 'OCEANWP_Theme_Class', 'the_author_posts_link' ) );
// Add support for Elementor Pro locations
add_action( 'elementor/theme/register_locations', array( 'OCEANWP_Theme_Class', 'register_elementor_locations' ) );
// Remove the default lightbox script for the beaver builder plugin
add_filter( 'fl_builder_override_lightbox', array( 'OCEANWP_Theme_Class', 'remove_bb_lightbox' ) );
}
}
/**
* Define Constants
*
* @since 1.0.0
*/
public static function constants() {
$version = self::theme_version();
// Theme version
define( 'OCEANWP_THEME_VERSION', $version );
// Javascript and CSS Paths
define( 'OCEANWP_JS_DIR_URI', OCEANWP_THEME_URI .'/assets/js/' );
define( 'OCEANWP_CSS_DIR_URI', OCEANWP_THEME_URI .'/assets/css/' );
// Include Paths
define( 'OCEANWP_INC_DIR', OCEANWP_THEME_DIR .'/inc/' );
define( 'OCEANWP_INC_DIR_URI', OCEANWP_THEME_URI .'/inc/' );
// Check if plugins are active
define( 'OCEAN_EXTRA_ACTIVE', class_exists( 'Ocean_Extra' ) );
define( 'OCEANWP_ELEMENTOR_ACTIVE', class_exists( 'Elementor\Plugin' ) );
define( 'OCEANWP_BEAVER_BUILDER_ACTIVE', class_exists( 'FLBuilder' ) );
define( 'OCEANWP_WOOCOMMERCE_ACTIVE', class_exists( 'WooCommerce' ) );
define( 'OCEANWP_EDD_ACTIVE', class_exists( 'Easy_Digital_Downloads' ) );
define( 'OCEANWP_LIFTERLMS_ACTIVE', class_exists( 'LifterLMS' ) );
define( 'OCEANWP_ALNP_ACTIVE', class_exists( 'Auto_Load_Next_Post' ) );
define( 'OCEANWP_LEARNDASH_ACTIVE', class_exists( 'SFWD_LMS' ) );
}
/**
* Load all core theme function files
*
* @since 1.0.0
*/
public static function include_functions() {
$dir = OCEANWP_INC_DIR;
require_once ( $dir .'helpers.php' );
require_once ( $dir .'header-content.php' );
require_once ( $dir .'customizer/controls/typography/webfonts.php' );
require_once ( $dir .'walker/init.php' );
require_once ( $dir .'walker/menu-walker.php' );
require_once ( $dir .'third/class-gutenberg.php' );
require_once ( $dir .'third/class-elementor.php' );
require_once ( $dir .'third/class-beaver-themer.php' );
require_once ( $dir .'third/class-bbpress.php' );
require_once ( $dir .'third/class-buddypress.php' );
require_once ( $dir .'third/class-lifterlms.php' );
require_once ( $dir .'third/class-learndash.php' );
require_once ( $dir .'third/class-sensei.php' );
require_once ( $dir .'third/class-social-login.php' );
}
/**
* Configs for 3rd party plugins.
*
* @since 1.0.0
*/
public static function configs() {
$dir = OCEANWP_INC_DIR;
// WooCommerce
if ( OCEANWP_WOOCOMMERCE_ACTIVE ) {
require_once ( $dir .'woocommerce/woocommerce-config.php' );
}
// Easy Digital Downloads
if ( OCEANWP_EDD_ACTIVE ) {
require_once ( $dir .'edd/edd-config.php' );
}
}
/**
* Returns current theme version
*
* @since 1.0.0
*/
public static function theme_version() {
// Get theme data
$theme = wp_get_theme();
// Return theme version
return $theme->get( 'Version' );
}
/**
* Load theme classes
*
* @since 1.0.0
*/
public static function classes() {
// Admin only classes
if ( is_admin() ) {
// Recommend plugins
require_once( OCEANWP_INC_DIR .'plugins/class-tgm-plugin-activation.php' );
require_once( OCEANWP_INC_DIR .'plugins/tgm-plugin-activation.php' );
}
// Front-end classes
else {
// Breadcrumbs class
require_once( OCEANWP_INC_DIR .'breadcrumbs.php' );
}
// Customizer class
require_once( OCEANWP_INC_DIR .'customizer/customizer.php' );
}
/**
* Theme Setup
*
* @since 1.0.0
*/
public static function theme_setup() {
// Load text domain
load_theme_textdomain( 'oceanwp', OCEANWP_THEME_DIR .'/languages' );
// Get globals
global $content_width;
// Set content width based on theme's default design
if ( ! isset( $content_width ) ) {
$content_width = 1200;
}
// Register navigation menus
register_nav_menus( array(
'topbar_menu' => esc_html__( 'Top Bar', 'oceanwp' ),
'main_menu' => esc_html__( 'Main', 'oceanwp' ),
'footer_menu' => esc_html__( 'Footer', 'oceanwp' ),
'mobile_menu' => esc_html__( 'Mobile (optional)', 'oceanwp' )
) );
// Enable support for Post Formats
add_theme_support( 'post-formats', array( 'video', 'gallery', 'audio', 'quote', 'link' ) );
// Enable support for <title> tag
add_theme_support( 'title-tag' );
// Add default posts and comments RSS feed links to head
add_theme_support( 'automatic-feed-links' );
// Enable support for Post Thumbnails on posts and pages
add_theme_support( 'post-thumbnails' );
/**
* Enable support for header image
*/
add_theme_support( 'custom-header', apply_filters( 'ocean_custom_header_args', array(
'width' => 2000,
'height' => 1200,
'flex-height' => true,
'video' => true,
) ) );
/**
* Enable support for site logo
*/
add_theme_support( 'custom-logo', apply_filters( 'ocean_custom_logo_args', array(
'height' => 45,
'width' => 164,
'flex-height' => true,
'flex-width' => true,
) ) );
/*
* Switch default core markup for search form, comment form, comments, galleries, captions and widgets
* to output valid HTML5.
*/
add_theme_support( 'html5', array(
'comment-form',
'comment-list',
'gallery',
'caption',
'widgets',
) );
// Declare WooCommerce support.
add_theme_support( 'woocommerce' );
add_theme_support( 'wc-product-gallery-zoom' );
add_theme_support( 'wc-product-gallery-lightbox' );
add_theme_support( 'wc-product-gallery-slider' );
// Add editor style
add_editor_style( 'assets/css/editor-style.min.css' );
// Declare support for selective refreshing of widgets.
add_theme_support( 'customize-selective-refresh-widgets' );
}
/**
* Adds the meta tag to the site header
*
* @since 1.1.0
*/
public static function pingback_header() {
if ( is_singular() && pings_open() ) {
printf( '<link rel="pingback" href="%s">' . "\n", esc_url( get_bloginfo( 'pingback_url' ) ) );
}
}
/**
* Adds the meta tag to the site header
*
* @since 1.0.0
*/
public static function meta_viewport() {
// Meta viewport
$viewport = '<meta name="viewport" content="width=device-width, initial-scale=1">';
// Apply filters for child theme tweaking
echo apply_filters( 'ocean_meta_viewport', $viewport );
}
/**
* Load scripts in the WP admin
*
* @since 1.0.0
*/
public static function admin_scripts() {
global $pagenow;
if ( 'nav-menus.php' == $pagenow ) {
wp_enqueue_style( 'oceanwp-menus', OCEANWP_INC_DIR_URI .'walker/assets/menus.css' );
}
}
/**
* Load front-end scripts
*
* @since 1.0.0
*/
public static function theme_css() {
// Define dir
$dir = OCEANWP_CSS_DIR_URI;
$theme_version = OCEANWP_THEME_VERSION;
// Remove font awesome style from plugins
wp_deregister_style( 'font-awesome' );
wp_deregister_style( 'fontawesome' );
// Load font awesome style
wp_enqueue_style( 'font-awesome', $dir .'third/font-awesome.min.css', false, '4.7.0' );
// Register simple line icons style
wp_enqueue_style( 'simple-line-icons', $dir .'third/simple-line-icons.min.css', false, '2.4.0' );
// Register the lightbox style
wp_enqueue_style( 'magnific-popup', $dir .'third/magnific-popup.min.css', false, '1.0.0' );
// Register the slick style
wp_enqueue_style( 'slick', $dir .'third/slick.min.css', false, '1.6.0' );
// Main Style.css File
wp_enqueue_style( 'oceanwp-style', $dir .'style.min.css', false, $theme_version );
// Register hamburgers buttons to easily use them
wp_register_style( 'oceanwp-hamburgers', $dir .'third/hamburgers/hamburgers.min.css', false, $theme_version );
// Register hamburgers buttons styles
$hamburgers = oceanwp_hamburgers_styles();
foreach ( $hamburgers as $class => $name ) {
wp_register_style( 'oceanwp-'. $class .'', $dir .'third/hamburgers/types/'. $class .'.css', false, $theme_version );
}
// Get mobile menu icon style
$mobileMenu = get_theme_mod( 'ocean_mobile_menu_open_hamburger', 'default' );
// Enqueue mobile menu icon style
if ( ! empty( $mobileMenu ) && 'default' != $mobileMenu ) {
wp_enqueue_style( 'oceanwp-hamburgers' );
wp_enqueue_style( 'oceanwp-'. $mobileMenu .'' );
}
// If Vertical header style
if ( 'vertical' == oceanwp_header_style() ) {
wp_enqueue_style( 'oceanwp-hamburgers' );
wp_enqueue_style( 'oceanwp-spin' );
}
}
/**
* Returns all js needed for the front-end
*
* @since 1.0.0
*/
public static function theme_js() {
// Get js directory uri
$dir = OCEANWP_JS_DIR_URI;
// Get current theme version
$theme_version = OCEANWP_THEME_VERSION;
// Get localized array
$localize_array = self::localize_array();
// Comment reply
if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) {
wp_enqueue_script( 'comment-reply' );
}
// Add images loaded
wp_enqueue_script( 'imagesloaded' );
// Register nicescroll script to use it in some extensions
wp_register_script( 'nicescroll', $dir .'third/nicescroll.min.js', array( 'jquery' ), $theme_version, true );
// Enqueue nicescroll script if vertical header style
if ( 'vertical' == oceanwp_header_style() ) {
wp_enqueue_script( 'nicescroll' );
}
// Register Infinite Scroll script
wp_register_script( 'infinitescroll', $dir .'third/infinitescroll.min.js', array( 'jquery' ), $theme_version, true );
// WooCommerce scripts
if ( OCEANWP_WOOCOMMERCE_ACTIVE
&& 'yes' != get_theme_mod( 'ocean_woo_remove_custom_features', 'no' ) ) {
wp_enqueue_script( 'oceanwp-woocommerce', $dir .'third/woo/woo-scripts.min.js', array( 'jquery' ), $theme_version, true );
}
// Load the lightbox scripts
wp_enqueue_script( 'magnific-popup', $dir .'third/magnific-popup.min.js', array( 'jquery' ), $theme_version, true );
wp_enqueue_script( 'oceanwp-lightbox', $dir .'third/lightbox.min.js', array( 'jquery' ), $theme_version, true );
// Load minified js
wp_enqueue_script( 'oceanwp-main', $dir .'main.min.js', array( 'jquery' ), $theme_version, true );
// Localize array
wp_localize_script( 'oceanwp-main', 'oceanwpLocalize', $localize_array );
}
/**
* Functions.js localize array
*
* @since 1.0.0
*/
public static function localize_array() {
// Create array
$sidr_side = get_theme_mod( 'ocean_mobile_menu_sidr_direction', 'left' );
$sidr_side = $sidr_side ? $sidr_side : 'left';
$sidr_target = get_theme_mod( 'ocean_mobile_menu_sidr_dropdown_target', 'icon' );
$sidr_target = $sidr_target ? $sidr_target : 'icon';
$vh_target = get_theme_mod( 'ocean_vertical_header_dropdown_target', 'icon' );
$vh_target = $vh_target ? $vh_target : 'icon';
$array = array(
'isRTL' => is_rtl(),
'menuSearchStyle' => oceanwp_menu_search_style(),
'sidrSource' => oceanwp_sidr_menu_source(),
'sidrDisplace' => get_theme_mod( 'ocean_mobile_menu_sidr_displace', true ) ? true : false,
'sidrSide' => $sidr_side,
'sidrDropdownTarget' => $sidr_target,
'verticalHeaderTarget' => $vh_target,
'customSelects' => '.woocommerce-ordering .orderby, #dropdown_product_cat, .widget_categories select, .widget_archive select, .single-product .variations_form .variations select',
);
// WooCart
if ( OCEANWP_WOOCOMMERCE_ACTIVE ) {
$array['wooCartStyle'] = oceanwp_menu_cart_style();
}
// Apply filters and return array
return apply_filters( 'ocean_localize_array', $array );
}
/**
* Add headers for IE to override IE's Compatibility View Settings
*
* @since 1.0.0
*/
public static function x_ua_compatible_headers( $headers ) {
$headers['X-UA-Compatible'] = 'IE=edge';
return $headers;
}
/**
* Load HTML5 dependencies for IE8
*
* @since 1.0.0
*/
public static function html5_shiv() {
wp_register_script( 'html5shiv', OCEANWP_JS_DIR_URI . '/third/html5.min.js', array(), OCEANWP_THEME_VERSION, false );
wp_enqueue_script( 'html5shiv' );
wp_script_add_data( 'html5shiv', 'conditional', 'lt IE 9' );
}
/**
* Registers sidebars
*
* @since 1.0.0
*/
public static function register_sidebars() {
$heading = 'h4';
$heading = apply_filters( 'ocean_sidebar_heading', $heading );
// Default Sidebar
register_sidebar( array(
'name' => esc_html__( 'Default Sidebar', 'oceanwp' ),
'id' => 'sidebar',
'description' => esc_html__( 'Widgets in this area will be displayed in the left or right sidebar area if you choose the Left or Right Sidebar layout.', 'oceanwp' ),
'before_widget' => '<div id="%1$s" class="sidebar-box %2$s clr">',
'after_widget' => '</div>',
'before_title' => '<'. $heading .' class="widget-title">',
'after_title' => '</'. $heading .'>',
) );
// Left Sidebar
register_sidebar( array(
'name' => esc_html__( 'Left Sidebar', 'oceanwp' ),
'id' => 'sidebar-2',
'description' => esc_html__( 'Widgets in this area are used in the left sidebar region if you use the Both Sidebars layout.', 'oceanwp' ),
'before_widget' => '<div id="%1$s" class="sidebar-box %2$s clr">',
'after_widget' => '</div>',
'before_title' => '<'. $heading .' class="widget-title">',
'after_title' => '</'. $heading .'>',
) );
// Search Results Sidebar
if ( get_theme_mod( 'ocean_search_custom_sidebar', true ) ) {
register_sidebar( array(
'name' => esc_html__( 'Search Results Sidebar', 'oceanwp' ),
'id' => 'search_sidebar',
'description' => esc_html__( 'Widgets in this area are used in the search result page.', 'oceanwp' ),
'before_widget' => '<div id="%1$s" class="sidebar-box %2$s clr">',
'after_widget' => '</div>',
'before_title' => '<'. $heading .' class="widget-title">',
'after_title' => '</'. $heading .'>',
) );
}
// Footer 1
register_sidebar( array(
'name' => esc_html__( 'Footer 1', 'oceanwp' ),
'id' => 'footer-one',
'description' => esc_html__( 'Widgets in this area are used in the first footer region.', 'oceanwp' ),
'before_widget' => '<div id="%1$s" class="footer-widget %2$s clr">',
'after_widget' => '</div>',
'before_title' => '<'. $heading .' class="widget-title">',
'after_title' => '</'. $heading .'>',
) );
// Footer 2
register_sidebar( array(
'name' => esc_html__( 'Footer 2', 'oceanwp' ),
'id' => 'footer-two',
'description' => esc_html__( 'Widgets in this area are used in the second footer region.', 'oceanwp' ),
'before_widget' => '<div id="%1$s" class="footer-widget %2$s clr">',
'after_widget' => '</div>',
'before_title' => '<'. $heading .' class="widget-title">',
'after_title' => '</'. $heading .'>',
) );
// Footer 3
register_sidebar( array(
'name' => esc_html__( 'Footer 3', 'oceanwp' ),
'id' => 'footer-three',
'description' => esc_html__( 'Widgets in this area are used in the third footer region.', 'oceanwp' ),
'before_widget' => '<div id="%1$s" class="footer-widget %2$s clr">',
'after_widget' => '</div>',
'before_title' => '<'. $heading .' class="widget-title">',
'after_title' => '</'. $heading .'>',
) );
// Footer 4
register_sidebar( array(
'name' => esc_html__( 'Footer 4', 'oceanwp' ),
'id' => 'footer-four',
'description' => esc_html__( 'Widgets in this area are used in the fourth footer region.', 'oceanwp' ),
'before_widget' => '<div id="%1$s" class="footer-widget %2$s clr">',
'after_widget' => '</div>',
'before_title' => '<'. $heading .' class="widget-title">',
'after_title' => '</'. $heading .'>',
) );
}
/**
* Registers theme_mod strings into Polylang.
*
* @since 1.1.4
*/
public static function polylang_register_string() {
if ( function_exists( 'pll_register_string' ) && $strings = oceanwp_register_tm_strings() ) {
foreach( $strings as $string => $default ) {
pll_register_string( $string, get_theme_mod( $string, $default ), 'Theme Mod', true );
}
}
}
/**
* All theme functions hook into the oceanwp_head_css filter for this function.
*
* @since 1.0.0
*/
public static function custom_css( $output = NULL ) {
// Add filter for adding custom css via other functions
$output = apply_filters( 'ocean_head_css', $output );
// If Custom File is selected
if ( 'file' == get_theme_mod( 'ocean_customzer_styling', 'head' ) ) {
global $wp_customize;
$upload_dir = wp_upload_dir();
// Render CSS in the head
if ( isset( $wp_customize ) || ! file_exists( $upload_dir['basedir'] .'/oceanwp/custom-style.css' ) ) {
// Minify and output CSS in the wp_head
if ( ! empty( $output ) ) {
echo "<!-- OceanWP CSS -->\n<style type=\"text/css\">\n" . wp_strip_all_tags( oceanwp_minify_css( $output ) ) . "\n</style>";
}
}
} else {
// Minify and output CSS in the wp_head
if ( ! empty( $output ) ) {
echo "<!-- OceanWP CSS -->\n<style type=\"text/css\">\n" . wp_strip_all_tags( oceanwp_minify_css( $output ) ) . "\n</style>";
}
}
}
/**
* Minify the WP custom CSS because WordPress doesn't do it by default.
*
* @since 1.1.9
*/
public static function minify_custom_css( $css ) {
return oceanwp_minify_css( $css );
}
/**
* Save Customizer CSS in a file
*
* @since 1.4.12
*/
public static function save_customizer_css_in_file( $output = NULL ) {
// If Custom File is not selected
if ( 'file' != get_theme_mod( 'ocean_customzer_styling', 'head' ) ) {
return;
}
// Get all the customier css
$output = apply_filters( 'ocean_head_css', $output );
// Get Custom Panel CSS
$output_custom_css = wp_get_custom_css();
// Minified the Custom CSS
$output .= oceanwp_minify_css( $output_custom_css );
// We will probably need to load this file
require_once( ABSPATH . 'wp-admin' . DIRECTORY_SEPARATOR . 'includes' . DIRECTORY_SEPARATOR . 'file.php' );
global $wp_filesystem;
$upload_dir = wp_upload_dir(); // Grab uploads folder array
$dir = trailingslashit( $upload_dir['basedir'] ) . 'oceanwp'. DIRECTORY_SEPARATOR; // Set storage directory path
WP_Filesystem(); // Initial WP file system
$wp_filesystem->mkdir( $dir ); // Make a new folder 'oceanwp' for storing our file if not created already.
$wp_filesystem->put_contents( $dir . 'custom-style.css', $output, 0644 ); // Store in the file.
}
/**
* Include Custom CSS file if present.
*
* @since 1.4.12
*/
public static function custom_style_css( $output = NULL ) {
// If Custom File is not selected
if ( 'file' != get_theme_mod( 'ocean_customzer_styling', 'head' ) ) {
return;
}
global $wp_customize;
$upload_dir = wp_upload_dir();
// Get all the customier css
$output = apply_filters( 'ocean_head_css', $output );
// Get Custom Panel CSS
$output_custom_css = wp_get_custom_css();
// Minified the Custom CSS
$output .= oceanwp_minify_css( $output_custom_css );
// Render CSS from the custom file
if ( ! isset( $wp_customize ) && file_exists( $upload_dir['basedir'] .'/oceanwp/custom-style.css' ) && ! empty( $output ) ) {
wp_enqueue_style( 'oceanwp-custom', trailingslashit( $upload_dir['baseurl'] ) . 'oceanwp/custom-style.css', false, null );
}
}
/**
* Remove Customizer style script from front-end
*
* @since 1.4.12
*/
public static function remove_customizer_custom_css() {
// If Custom File is not selected
if ( 'file' != get_theme_mod( 'ocean_customzer_styling', 'head' ) ) {
return;
}
global $wp_customize;
// Disable Custom CSS in the frontend head
remove_action( 'wp_head', 'wp_custom_css_cb', 11 );
remove_action( 'wp_head', 'wp_custom_css_cb', 101 );
// If custom CSS file exists and NOT in customizer screen
if ( isset( $wp_customize ) ) {
add_action( 'wp_footer', 'wp_custom_css_cb', 9999 );
}
}
/**
* Adds inline CSS for the admin
*
* @since 1.0.0
*/
public static function admin_inline_css() {
echo '<style>div#setting-error-tgmpa{display:block;}</style>';
}
/**
* Alter the search posts per page
*
* @since 1.3.7
*/
public static function search_posts_per_page( $query ) {
$posts_per_page = get_theme_mod( 'ocean_search_post_per_page', '8' );
$posts_per_page = $posts_per_page ? $posts_per_page : '8';
if ( $query->is_main_query() && is_search() ) {
$query->set( 'posts_per_page', $posts_per_page );
}
}
/**
* Alter wp list categories arguments.
* Adds a span around the counter for easier styling.
*
* @since 1.0.0
*/
public static function wp_list_categories_args( $links ) {
$links = str_replace( '</a> (', '</a> <span class="cat-count-span">(', $links );
$links = str_replace( ' )', ' )</span>', $links );
return $links;
}
/**
* Alters the default oembed output.
* Adds special classes for responsive oembeds via CSS.
*
* @since 1.0.0
*/
public static function add_responsive_wrap_to_oembeds( $cache, $url, $attr, $post_ID ) {
// Supported video embeds
$hosts = apply_filters( 'ocean_oembed_responsive_hosts', array(
'vimeo.com',
'youtube.com',
'blip.tv',
'money.cnn.com',
'dailymotion.com',
'flickr.com',
'hulu.com',
'kickstarter.com',
'vine.co',
'soundcloud.com',
'#http://((m|www)\.)?youtube\.com/watch.*#i',
'#https://((m|www)\.)?youtube\.com/watch.*#i',
'#http://((m|www)\.)?youtube\.com/playlist.*#i',
'#https://((m|www)\.)?youtube\.com/playlist.*#i',
'#http://youtu\.be/.*#i',
'#https://youtu\.be/.*#i',
'#https?://(.+\.)?vimeo\.com/.*#i',
'#https?://(www\.)?dailymotion\.com/.*#i',
'#https?://dai\.ly/*#i',
'#https?://(www\.)?hulu\.com/watch/.*#i',
'#https?://wordpress\.tv/.*#i',
'#https?://(www\.)?funnyordie\.com/videos/.*#i',
'#https?://vine\.co/v/.*#i',
'#https?://(www\.)?collegehumor\.com/video/.*#i',
'#https?://(www\.|embed\.)?ted\.com/talks/.*#i'
) );
// Supports responsive
$supports_responsive = false;
// Check if responsive wrap should be added
foreach( $hosts as $host ) {
if ( strpos( $url, $host ) !== false ) {
$supports_responsive = true;
break; // no need to loop further
}
}
// Output code
if ( $supports_responsive ) {
return '<p class="responsive-video-wrap clr">' . $cache . '</p>';
} else {
return '<div class="oceanwp-oembed-wrap clr">' . $cache . '</div>';
}
}
/**
* Adds extra classes to the post_class() output
*
* @since 1.0.0
*/
public static function post_class( $classes ) {
// Get post
global $post;
// Add entry class
$classes[] = 'entry';
// Add has media class
if ( has_post_thumbnail()
|| get_post_meta( $post->ID, 'ocean_post_oembed', true )
|| get_post_meta( $post->ID, 'ocean_post_self_hosted_media', true )
|| get_post_meta( $post->ID, 'ocean_post_video_embed', true )
) {
$classes[] = 'has-media';
}
// Return classes
return $classes;
}
/**
* Add schema markup to the authors post link
*
* @since 1.0.0
*/
public static function the_author_posts_link( $link ) {
// Add schema markup
$schema = oceanwp_get_schema_markup( 'author_link' );
if ( $schema ) {
$link = str_replace( 'rel="author"', 'rel="author" '. $schema, $link );
}
// Return link
return $link;
}
/**
* Add support for Elementor Pro locations
*
* @since 1.5.6
*/
public static function register_elementor_locations( $elementor_theme_manager ) {
$elementor_theme_manager->register_all_core_location();
}
/**
* Add schema markup to the authors post link
*
* @since 1.1.5
*/
public static function remove_bb_lightbox() {
return true;
}
}
new OCEANWP_Theme_Class;
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Hey, I have a problem with the pasting. I don't know where is the custom functions code in function.php...
This is my code:
add_filter( 'woocommerce_email_attachments', 'attach_terms_conditions_pdf_to_email', 10, 3);
function attach_terms_conditions_pdf_to_email ( $attachments , $id, $object ) {
$your_pdf_path = get_template_directory() . '/terms.pdf';
$attachments[] = public_html/adisport.hu/wp-content/uploads/2019/03/ÁSZF.pdf; /public_html/adisport.hu/wp-content/uploads/2019/03/Adatkezelési-tájákoztató.pdf; /public_html/adisport.hu/wp-content/uploads/2019/03/20180925153424_elallasi-1.pdf
return $attachments;
If I paste it in the begining or at the end then it breaks my WordPress..