-
-
Save gabros20/58751c53bf0b51639e474ae9d1f81f81 to your computer and use it in GitHub Desktop.
WP Functions
This file contains 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 | |
// ----------------------------- // | |
// CHILD THEME SETUP FUNCTIONS // | |
// ----------------------------- // | |
function wpbf_child_theme_setup() { | |
// Child Theme Textdomain | |
load_child_theme_textdomain( 'page-builder-framework-child', WPBF_CHILD_THEME_DIR . '/languages' ); | |
} | |
add_action( 'after_setup_theme', 'wpbf_child_theme_setup' ); | |
// Enqueue Child Theme Scripts and Styles | |
function wpbf_child_scripts() { | |
// Styles | |
wp_enqueue_style( 'wpbf-style-child', WPBF_CHILD_THEME_URI . '/style.css', false, WPBF_CHILD_VERSION ); | |
// Scripts (uncomment if needed!) | |
// wp_enqueue_script( 'wpbf-site-child', WPBF_CHILD_THEME_URI . '/js/site-child.js', false, WPBF_CHILD_VERSION, true ); | |
} | |
add_action( 'wp_enqueue_scripts', 'wpbf_child_scripts', 100 ); | |
// --------------- // | |
// DEBUGING CODE // | |
// --------------- // | |
// TO DEBUG ELEMENTOR "CONTENT.PHP MISSING" ERROR DISBALE CODE BELOW, WHEN EDITING IS DONE TURN CODE BACK | |
/* CODE ON/OFF, delete this --> */ | |
// --------------------------------- // | |
// WORDPRESS GENERAL MODIFICATIONS // | |
// --------------------------------- // | |
// HIDE WP ADMIN BAR | |
add_filter('show_admin_bar', '__return_false'); | |
// DISABLE THE AUTH CHECK FOR MONITORING WHETHER THE USER IS STILL LOGGED IN // | |
remove_action('admin_enqueue_scripts', 'wp_auth_check_load'); | |
// ----------------------------------------- // | |
// INFORMEASY CUSTOM LOGIN PAGE FUNCTIONS // | |
// ----------------------------------------- // | |
// MAIN REDIRECTION OF THE DEFAULT LOGIN PAGE // | |
// !! CONTENT CONTROL PLUGIN IS SET TO RESTRICT PAGE VIEW ONLY TO LOGGED IN USERS WITH ROLL: ADMIN, EDITOR, SUBSCRIBER, CUSTUMER !! // | |
function redirect_login_page() { | |
$login_page = home_url('/new-login/'); | |
$page_viewed = basename($_SERVER['REQUEST_URI']); | |
if($page_viewed == "wp-login.php" && $_SERVER['REQUEST_METHOD'] == 'GET') { | |
wp_redirect($login_page); | |
exit; | |
} | |
} | |
add_action('init','redirect_login_page'); | |
// REDIRECT USERS IF THEY ALREADY LOGGED IN ACCORDING TO THIER USER ROLE UPON VISITING PAGE - 6207 // | |
// !! THIS CAUSE ELEMENTOR "CONTENT.PHP MISSING" ERROR DISBALE CODE TO EDIT PAGE !! // | |
add_action( 'template_redirect', 'wpmy_redirect_logged_in_users_away_from_home' ); | |
function wpmy_redirect_logged_in_users_away_from_home() { | |
if( is_user_logged_in() ) { | |
$current_user = wp_get_current_user(); | |
$role_name = $current_user->roles[0]; | |
switch ($role_name) { | |
case "administrator": | |
if ( is_page( [6207] ) ) { | |
wp_redirect('http://127.0.0.1:8080/wordpress/wp-admin'); | |
exit; | |
} | |
break; | |
case "subscriber": | |
if ( is_page( [6207] ) ) { | |
wp_redirect('http://127.0.0.1:8080/wordpress/new-dashboard'); | |
exit; | |
} | |
break; | |
} | |
} | |
} | |
// WHERE TO GO AFTER SUCCESSFUL LOGIN // | |
add_filter('login_redirect', 'my_login_redirect', 10, 3 ); | |
function my_login_redirect( $url, $request, $user ) { | |
if( $user && is_object( $user ) && is_a( $user, 'WP_User' ) ) { | |
if( $user->has_cap( 'administrator') or $user->has_cap( 'author')) { | |
$url = admin_url(); | |
} | |
else { | |
$url = home_url('/new-dashboard/'); | |
} | |
} | |
return $url; | |
} | |
// WHERE TO GO IF A LOGIN FAILED // | |
function custom_login_failed() { | |
$login_page = home_url('/new-login/'); | |
wp_redirect($login_page . '?login=failed'); | |
exit; | |
} | |
add_action('wp_login_failed', 'custom_login_failed'); | |
// WHERE TO GO IF ANY OF THE FIELDS WERE EMPTY // | |
add_filter('authenticate', 'verify_user_pass', 1, 3); | |
function verify_user_pass($user, $username, $password) { | |
$login_page = home_url('/new-login/'); | |
if($username == "" || $password == "") { | |
wp_redirect($login_page . "?login=empty"); | |
exit; | |
} | |
} | |
// WHAT TO DO ON LOGOUT // | |
function logout_redirect() { | |
$login_page = home_url('/new-login/'); | |
wp_redirect($login_page . "?login=false"); | |
exit; | |
} | |
add_action('wp_logout','logout_redirect'); | |
// WHAT TO DO ON LOGOUT FROM DASHBOARD MENU TO DISABLE WP LOGOUT CONFIRMATION// | |
function logout_without_confirm($action, $result) { | |
if($action == "log-out" && !isset($_GET['_wpnonce'])) { | |
$redirect_to = isset($_REQUEST['redirect_to']) ? $_REQUEST['redirect_to'] : ''; | |
$location = str_replace('&', '&', wp_logout_url($redirect_to)); | |
header("Location: $location"); | |
die; | |
} | |
} | |
add_action('check_admin_referer', 'logout_without_confirm', 10, 2); | |
// ----------------------------------------- // | |
// WOOCOMMERCE FUNCTIONAL MODIFICATIONS // | |
// ----------------------------------------- // | |
// REDIRECT STRAIGHT TO CHECKOUT // | |
add_filter('add_to_cart_redirect', 'cw_redirect_add_to_cart'); | |
function cw_redirect_add_to_cart() { | |
global $woocommerce; | |
$cw_redirect_url_checkout = $woocommerce->cart->get_checkout_url(); | |
return $cw_redirect_url_checkout; | |
} | |
// ORDER AGAIN BUTTON ON MY ACCOUNT/YOUR ORDERS, REDIRECT STRAIGHT TO CHECKOUT // | |
add_filter('woocommerce_ordered_again', 'add_to_cart_checkout_redirect'); | |
function add_to_cart_checkout_redirect() { | |
wp_safe_redirect( 'http://127.0.0.1:8080/wordpress/?add-to-cart=4209' ); | |
} | |
add_action( 'woocommerce_add_to_cart', 'add_to_cart_checkout_redirect', 11 ); | |
// REDIRECT STRAIGHT TO CHECKOUT IF PRODUCT ALREADY ADDED // | |
function wc_add_to_cart_action() { | |
if ( empty( $_REQUEST['add-to-cart'] ) || ! is_numeric( $_REQUEST['add-to-cart'] ) ) { | |
return; | |
} | |
$product_id = absint( $_REQUEST['add-to-cart'] ); | |
$adding_to_cart = wc_get_product( $product_id ); | |
$product_cart_id = WC()->cart->generate_cart_id( $product_id ); | |
$in_cart = WC()->cart->find_product_in_cart( $product_cart_id ); | |
if ( $in_cart && $adding_to_cart->is_sold_individually() ) { | |
wp_safe_redirect( wc_get_checkout_url() ); | |
exit; | |
} | |
} | |
add_action( 'wp_loaded', 'wc_add_to_cart_action', 19 ); | |
// ADD REMOVE PRODUCT BUTTON ON CHECKOUT // | |
add_filter('woocommerce_cart_item_name', 'custom_filter_wc_cart_item_remove_link', 10, 3); | |
function custom_filter_wc_cart_item_remove_link($product_name, $cart_item, $cart_item_key) { | |
if (is_checkout()) { | |
$product_name .= apply_filters('woocommerce_cart_item_remove_link', | |
sprintf('<a href="%s" rel="nofollow" class="remove" style="float:left;">×</a>', | |
esc_url(WC_Cart::get_remove_url($cart_item_key)), | |
__('Remove this item', 'woocommerce'), | |
esc_attr($cart_item['product_id']), | |
esc_attr($cart_item['data']->get_sku())), $cart_item_key); | |
return $product_name; | |
} | |
} | |
// REMOVE "XX PRODUCT HAS BEEN ADDED TO YOUR CART" ON CHECKOUT PAGE // | |
add_filter( 'wc_add_to_cart_message_html', '__return_false' ); | |
// REMOVE "COMPANY NAME" AND "PHONE NUMBER" FIELDS IN BILLING & SHIPPING FORM // | |
add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields' ); | |
function custom_override_checkout_fields( $fields ) { | |
unset($fields['billing']['billing_company']); | |
unset($fields['billing']['billing_phone']); | |
return $fields; | |
} | |
// REORDER EMAIL IN CHECKOUT // | |
add_filter( 'woocommerce_billing_fields', 'bbloomer_move_checkout_email_field', 10, 1 ); | |
function bbloomer_move_checkout_email_field( $address_fields ) { | |
$address_fields['billing_email']['priority'] = 5; | |
return $address_fields; | |
} | |
// RREMOVE CHEKOUT NOTE // | |
add_filter( 'woocommerce_enable_order_notes_field', '__return_false' ); | |
// CHANGES THE REDIRECT URL FOR THE "RETURN TO SHOP BUTTON" IN THE CART // | |
add_filter( 'woocommerce_return_to_shop_redirect', 'wc_empty_cart_redirect_url' ); | |
function wc_empty_cart_redirect_url() { | |
return 'http://127.0.0.1:8080/wordpress/new-landing/'; | |
} | |
// CHANGES THE TEXT FOR THE "RETURN TO SHOP BUTTON" IN THE CART TO "RETURN TO HOME PAGE"// | |
add_filter( 'gettext', 'change_woocommerce_return_to_shop_text', 20, 3 ); | |
function change_woocommerce_return_to_shop_text( $translated_text, $text, $domain ) { | |
switch ( $translated_text ) { | |
case 'Return to shop' : | |
$translated_text = __( 'Return to Home Page', 'woocommerce' ); | |
break; | |
} | |
return $translated_text; | |
} | |
// REDIRECT USER AFTER PAYMENT DEPENDING ON PRODUCT ID // | |
function misha_redirect_depending_on_product_id() { | |
// do nothing if we are not on the appropriate page // | |
if( !is_wc_endpoint_url( 'order-received' ) || empty( $_GET['key'] ) ) { | |
return; | |
} | |
$order_id = wc_get_order_id_by_order_key( $_GET['key'] ); | |
$order = wc_get_order( $order_id ); | |
foreach( $order->get_items() as $item ) { | |
if( $item['product_id'] == 4209 ) { | |
wp_redirect( 'http://127.0.0.1:8080/wordpress/onboarding' ); | |
exit; | |
} | |
} | |
} | |
add_action( 'template_redirect', 'misha_redirect_depending_on_product_id' ); | |
// RENAME "COUPON CODE" TO "PROMO CODE" ON CART AND CART PAGE // | |
add_filter( 'gettext', 'woocommerce_rename_coupon_field_on_cart', 10, 3 ); | |
add_filter( 'gettext', 'woocommerce_rename_coupon_field_on_cart', 10, 3 ); | |
add_filter('woocommerce_coupon_error', 'rename_coupon_label', 10, 3); | |
add_filter('woocommerce_coupon_message', 'rename_coupon_label', 10, 3); | |
add_filter('woocommerce_cart_totals_coupon_label', 'rename_coupon_label',10, 1); | |
add_filter( 'woocommerce_checkout_coupon_message', 'woocommerce_rename_coupon_message_on_checkout' ); | |
function woocommerce_rename_coupon_field_on_cart( $translated_text, $text, $text_domain ) { | |
// bail if not modifying frontend woocommerce text | |
if ( is_admin() || 'woocommerce' !== $text_domain ) { | |
return $translated_text; | |
} | |
if ( 'Coupon:' === $text ) { | |
$translated_text = 'Promo Code:'; | |
} | |
if ('Coupon has been removed.' === $text){ | |
$translated_text = 'Promo Code has been removed.'; | |
} | |
if ( 'Apply coupon' === $text ) { | |
$translated_text = 'Apply Code'; | |
} | |
if ( 'Coupon code' === $text ) { | |
$translated_text = 'Promo Code'; | |
} | |
return $translated_text; | |
} | |
// rename the "Have a Coupon?" message on the checkout page | |
add_filter( 'woocommerce_checkout_coupon_message', 'woocommerce_rename_coupon_message_on_checkout' ); | |
function woocommerce_rename_coupon_message_on_checkout() { | |
return 'Have a Promo Code?' . ' <a href="#" class="showcoupon">' . __( 'Click here to enter your code', 'woocommerce' ) . '</a>'; | |
} | |
// rename the coupon error message on the checkout page | |
function rename_coupon_label($err, $err_code=null, $something=null) { | |
$err = str_ireplace("Coupon","Promo Code ",$err); | |
return $err; | |
} | |
// replace the coupon field instruction string text | |
add_filter( 'gettext', 'woocommerce_change_coupon_field_instruction_text' ); | |
function woocommerce_change_coupon_field_instruction_text($translated) { | |
$translated = str_ireplace('If you have a coupon code, please apply it below.', 'If you have a Promo Code, please enter it below.', $translated); | |
return $translated; | |
} | |
// ADD MY-ORDERS.PHP TO A SHORTCODE // | |
function shortcode_review_order() { | |
wc_get_template( 'myaccount/my-orders.php', array( 'checkout' => WC()->checkout() ) ); | |
} | |
add_action( 'init', 'add_shortcodes' ); | |
function add_shortcodes() { | |
add_shortcode( 'ie_my_order_table', 'shortcode_review_order' ); | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment