somos-infinitos-theme/functions.php

193 lines
4.6 KiB
PHP

<?php
function disable_default_patterns()
{
remove_theme_support('core-block-patterns');
}
add_action('after_setup_theme', 'disable_default_patterns');
/**
* Enqueue custom CSS file in block editor only
*/
function somos_infinitos_block_editor_styles()
{
// Only load in block editor, not in classic editor
if (!is_classic_editor_active()) {
wp_enqueue_style(
'somos-infinitos-block-editor-styles',
get_template_directory_uri() . '/assets/css/custom.css',
array(),
'1.0'
);
}
}
add_action('enqueue_block_editor_assets', 'somos_infinitos_block_editor_styles');
/**
* Check if classic editor is active
*/
function is_classic_editor_active()
{
// Check if the classic editor plugin is active
if (class_exists('Classic_Editor')) {
return true;
}
// Check if we're on the classic editor screen
if (function_exists('get_current_screen')) {
$screen = get_current_screen();
if ($screen && $screen->is_block_editor() === false && $screen->base === 'post') {
return true;
}
}
return false;
}
/**
* Enqueue custom CSS file on the frontend
*/
function somos_infinitos_frontend_styles()
{
// Don't load in admin
if (!is_admin()) {
wp_enqueue_style(
'somos-infinitos-custom-styles',
get_template_directory_uri() . '/assets/css/custom.css',
array(),
'1.0'
);
}
}
add_action('wp_enqueue_scripts', 'somos_infinitos_frontend_styles');
// enable svg uploads
add_filter('wp_check_filetype_and_ext', function ($data, $file, $filename, $mimes) {
global $wp_version;
if ($wp_version !== '4.7.1') {
return $data;
}
$filetype = wp_check_filetype($filename, $mimes);
return [
'ext' => $filetype['ext'],
'type' => $filetype['type'],
'proper_filename' => $data['proper_filename']
];
}, 10, 4);
function cc_mime_types($mimes)
{
$mimes['svg'] = 'image/svg+xml';
return $mimes;
}
add_filter('upload_mimes', 'cc_mime_types');
/* Remove default CSS variables that come with Wordpress
https://github.com/WordPress/gutenberg/issues/56180#issuecomment-1819222376
*/
function custom_wp_theme_json_default($theme_json)
{
$new_data = array(
'version' => 2,
'settings' => array(
'color' => array(
'palette' => array(),
'gradients' => array(),
),
'shadow' => array(
'presets' => array(),
),
'typography' => array(
'fontSizes' => array(),
),
// 'dimensions' => array(
// 'aspectRatios' => array(),
// ),
// 'spacing' => array(
// 'spacingScale' => array(
// 'steps' => 0,
// ),
// ),
),
);
return $theme_json->update_with($new_data);
}
add_filter('wp_theme_json_data_default', 'custom_wp_theme_json_default');
// remove default woocommerce fonts
add_filter('wp_theme_json_data_theme', 'disable_inter_font', 100);
function disable_inter_font($theme_json)
{
$theme_data = $theme_json->get_data();
$font_data = $theme_data['settings']['typography']['fontFamilies']['theme'] ?? array();
// The font name to be removed
$font_names = ['Inter', 'Cardo'];
$font_names_total = 2;
$font_names_found = 0;
// Check if 'Inter' font exists
foreach ($font_data as $font_key => $font) {
if (isset($font['name']) && in_array($font['name'], $font_names)) {
// Increment found font names
$font_names_found++;
// Remove the font
unset($font_data[$font_key]);
// Update font data
$theme_json->update_with(array(
'version' => 1,
'settings' => array(
'typography' => array(
'fontFamilies' => array(
'theme' => $font_data,
),
),
),
));
if ($font_names_found === $font_names_total) {
break;
}
}
}
return $theme_json;
}
// Shortcode checkout
delete_transient('wc_stripe_appearance');
// Block checkout
delete_transient('wc_stripe_blocks_appearance');
add_filter('wc_stripe_upe_params', function ($stripe_params) {
// Affects block checkout
$stripe_params['blocksAppearance'] = (object) ['theme' => 'night'];
// Affects shortcode checkout
$stripe_params['appearance'] = (object) ['theme' => 'flat'];
return $stripe_params;
});
add_filter('wc_stripe_upe_params', function ($stripe_params) {
$stripe_params['appearance'] = (object) [
'rules' => (object) [
'.Label' => (object) [
'color' => 'black'
]
],
];
return $stripe_params;
});
add_action('woocommerce_before_checkout_form', 'remove_checkout_coupon_form', 9);
function remove_checkout_coupon_form() {
remove_action('woocommerce_before_checkout_form', 'woocommerce_checkout_coupon_form', 10);
}