%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /var/www/cwg/wp-content/themes/cwg/inc/
Upload File :
Create Path :
Current File : //var/www/cwg/wp-content/themes/cwg/inc/hooks.php

<?php

/**
 *   Hooks here
 */


function manage_disable_admin_bar()
{
    if (current_user_can('administrator') || current_user_can('contributor')) {
        show_admin_bar(true);
    } else {
        show_admin_bar(false);
    }
}
add_action('after_setup_theme', 'manage_disable_admin_bar');


function user_login_footer()
{
    // delete_user_meta(get_current_user_id(), 'last_login', date('d F Y'));
    if (isUserB2B() && get_user_meta(get_current_user_id(), 'last_login', true) === '') {
        first_login_message();
    }
    update_user_meta(get_current_user_id(), 'last_login', date('d F Y'));
}
add_action('wp_footer', 'user_login_footer', 100);

add_filter( 'woocommerce_enqueue_styles', '__return_empty_array' );


function ajax_send_mail($email = null, $subject = null, $message = null, $attachments = null) {
    $email = $email ? $email : $_POST['data']['email'];
    $subject = $subject ? $subject : $_POST['data']['subject'];
    $message = $message ? $message : $_POST['data']['message'];

    do_action('enquire_mail');

    wp_mail($email, $subject, $message, '', $attachments);
}

add_action('wp_ajax_send_mail', 'ajax_send_mail');
add_action('wp_ajax_nopriv_send_mail', 'ajax_send_mail');

function wpcc_front_end_login_fail( $username ) {
    $referrer = $_SERVER['HTTP_REFERER'];
    if ( !empty( $referrer ) && !strstr( $referrer,'wp-login' ) && !strstr( $referrer,'wp-admin' ) ) {
      $referrer = esc_url( remove_query_arg( 'login', $referrer ) );
      wp_redirect( $referrer . '?login=failed' );
      exit;
    }
  }
add_action( 'wp_login_failed', 'wpcc_front_end_login_fail' );

function custom_authenticate_wpcc( $user, $username, $password ) {
    if ( is_wp_error( $user ) && isset( $_SERVER[ 'HTTP_REFERER' ] ) && !strpos( $_SERVER[ 'HTTP_REFERER' ], 'wp-admin' ) && !strpos( $_SERVER[ 'HTTP_REFERER' ], 'wp-login.php' ) ) {
      $referrer = $_SERVER[ 'HTTP_REFERER' ];
      foreach ( $user->errors as $key => $error ) {
          if ( in_array( $key, array( 'empty_password', 'empty_username') ) ) {
            unset( $user->errors[ $key ] );
            $user->errors[ 'custom_'.$key ] = $error;
          }
        }
    }

  return $user;
}
add_filter( 'authenticate', 'custom_authenticate_wpcc', 31, 3);


function redirect_login_page() {
    if( is_page( 'login' ) && is_user_logged_in() ) {
        if ( isset( $_REQUEST['redirect_to'] ) ) {
            $default =  redirect_login_account();
            $redirect_to = wp_validate_redirect( $_REQUEST['redirect_to'] . '?is_redirected=true', $default );
        } else {
            $redirect_to = home_url();
        }
        wp_safe_redirect( $redirect_to );
        exit;
    }
}
add_action( 'template_redirect', 'redirect_login_page' );


add_action( 'register_new_user', 'my_redirect_home' );
function my_redirect_home( $registration_redirect ) {
    return home_url();
    exit;
}

add_filter( 'lostpassword_redirect', 'my_redirect_home' );

add_action( 'wp_enqueue_scripts', 'woodmart_child_enqueue_scripts', 20000 );
// MY ACCOUNT

function my_account_menu_order() {
    $menuOrder = array(
        'orders'             => __( 'MY ORDERS', 'woocommerce' ),
        'edit-address'       => __( 'ADDRESSES', 'woocommerce' ),
        'edit-account'    	=> __( 'ACCOUNT DETAILS', 'woocommerce' ),
        'payment-methods'    	=> __( 'MY PAYMENT METHODS', 'woocommerce' ),
        'communication-preferences'    	=> 'COMMUNICATION PREFERENCES',
    );
    return $menuOrder;
}

add_filter ( 'woocommerce_account_menu_items', 'my_account_menu_order' );

//Register new endpoints
add_action( 'init', 'my_account_new_endpoints' );

function my_account_new_endpoints() {
    add_rewrite_endpoint( 'communication-preferences', EP_ROOT | EP_PAGES );
}

function my_custom_query_vars( $vars ) {
    $vars[] = 'communication-preferences';
    return $vars;
}
add_filter( 'query_vars', 'my_custom_query_vars', 0 );


//Get new endpoint content

function my_account_endpoint_content() {
    wc_get_template('myaccount/communication-preferences.php');

    if (isset($_POST['update_communication_preferences'])) {
        $to = get_field('dispatch_team_email', 'options');
        $current_user = wp_get_current_user();

        $message = 'Communication preferences' . "\n\n";


        $message .= 'Username: ' . $current_user->user_login . "\n";
        $message .= 'User Email: ' . $current_user->user_email . "\n";
        $message .= 'User First Name: ' . $current_user->user_firstname . "\n";
        $message .= 'User Last Name: ' . $current_user->user_lastname . "\n";
        $message .= "\n";
        $message .= "\n";

        $message .= 'I would like to receive Carpenters Workshop Gallery newsletter:';
        if(get_field('newsletter_carpenters', 'user_'.get_current_user_id())) {
            $message .= ' Yes' . "\n";
        }
        else {
            $message .= ' No' . "\n";
        }

        $message .= 'I would like to receive the Design Edit newsletter:';
        if(get_field('newsletter_design', 'user_'.get_current_user_id())) {
            $message .= ' Yes' . "\n";
        }
        else {
            $message .= ' No' . "\n";
        }

        $message .= 'I wish to be contacted by Carpenters Workshop Gallery by email to receive personalised information on artworks and artists:';
        if(get_field('contact_email', 'user_'.get_current_user_id())) {
            $message .= ' Yes' . "\n";
        }
        else {
            $message .= ' No' . "\n";
        }

        wp_mail($to, '[Carpenters Workshop Gallery] Communication preferences Change Notice', $message);
    }

}
add_action( 'woocommerce_account_communication-preferences_endpoint', 'my_account_endpoint_content' );

function edit_account_custom($user_id) {
    $to = get_field('dispatch_team_email', 'options');
    $current_user = get_user_by('id', $user_id);
    $message = 'Account details' . "\n\n";

    $message .= 'Username: ' . $current_user->user_login . "\n";
    $message .= 'User Email: ' . $current_user->user_email . "\n";
    $message .= 'User First Name: ' . $current_user->user_firstname . "\n";
    $message .= 'User Last Name: ' . $current_user->user_lastname . "\n";
    $message .= 'User Display Name: ' . $current_user->display_name . "\n";
    wp_mail($to, '[Carpenters Workshop Gallery] Account details Change Notice', $message);
}
add_action( 'woocommerce_save_account_details', 'edit_account_custom' , 10, 1);

function woodmart_child_enqueue_scripts() {
	wp_enqueue_script( 'prettyPhoto-init' );
	wp_enqueue_script( 'prettyPhoto' );
}

add_filter('woocommerce_background_image_regeneration', '__return_false');
add_filter('woocommerce_resize_images', '__return_false');

/**
 * User
 */

function add_relationship_per_wishlist(WP_User $user) {
    $current_user_ID = $user->ID;
    if (!current_user_can('edit_user', $current_user_ID)) {
        return;
    }

    if (defined('YITH_WCWL')) {
        if (!get_field('field_611672f1328cc', 'user_' . $current_user_ID)) {
            add_row('field_611672f1328cc', array(
                'field_61167325328cd' => '',
                'field_6116733b328ce' => '',
            ), 'user_' . $current_user_ID);
        }

        $values = [];
        $wishlists = YITH_WCWL()->get_wishlists(array(
            'user_id' => $current_user_ID
        ));

        if ( ! empty( $wishlists ) && function_exists( 'update_field' ) ) {
            foreach ( $wishlists as $wishlist ) {
                $values[] = array(
                    'field_61167325328cd' => $wishlist->get_formatted_name(),
                    'field_6116733b328ce' => $wishlist->get_id(),
                );
            }
            update_field('field_611672f1328cc', $values, 'user_' . $current_user_ID);
        }
    }
}
add_action('show_user_profile', 'add_relationship_per_wishlist', 5, 1);
add_action('edit_user_profile', 'add_relationship_per_wishlist', 5, 1);

// Recos Sales
function remove_item_from_recos($prod_id = null, $wishlist_id = null, $user_id = null) {
    if(isset($_GET['productId'])) {
        $prod_id = intval($_GET['productId']);
    }

    if(isset($_GET['wishlistId'])) {
        $wishlist_id = intval($_GET['wishlistId']);
    }

    if(isset($_GET['userId'])) {
        $user_id = intval($_GET['userId']);
    }

    $recos_sales = get_field('field_611672f1328cc', 'user_' . $user_id);
    if ($recos_sales) {
        $row_index = 0;
        foreach ($recos_sales as $reco) {
            $row_index ++;
            // Bail early if not for the current wishlist
            if ( $wishlist_id !== (int) $reco[ 'whishlist_id' ] ) {
                continue;
            }

            $product_index = 0;
            $products = $reco['product_reco_sales'];
            if(!empty($products)) {
                foreach($products as $product_reco) {
                    $product_index ++;
                    $product = wc_get_product($product_reco['product_reco'][0]->ID);
                    $product_id = $product->get_id();

                    if($prod_id === $product_id) {
                        $response = delete_sub_row(array('field_611672f1328cc', $row_index, 'field_611e2aae63d73'), $product_index, 'user_' . $user_id);
                    }
                }
            }
        }

        return $response;
    }
}
add_action('yith_wcwl_added_to_wishlist', 'remove_item_from_recos', 10, 3);
add_action('wp_ajax_remove_item_from_recos', 'remove_item_from_recos', 10, 3);
add_action('wp_ajax_nopriv_remove_item_from_recos', 'remove_item_from_recos', 10, 3);

// reset password
add_action( "after_password_reset", "cwg_after_password_reset", 10, 2 );
function cwg_after_password_reset( $user, $new_pass ) {
    $path_register = get_page_by_path('login');
    $url = get_permalink($path_register);
    wp_safe_redirect( $url );
	exit;
}

// Change Address
function action_woocommerce_account_content() {

}
add_action( 'woocommerce_account_content', 'action_woocommerce_account_content', 10, 0 );

// Send notification email when customer changes address.
add_action( 'woocommerce_customer_save_address','notify_address_change', 10, 2);
function notify_address_change( $user_id ) {
    global $woocommerce, $current_user;

    $to = get_field('dispatch_team_email', 'options');

	// format email
	$message = 'Username: ' . $current_user->user_login . "\n";
	$message .= 'User Email: ' . $current_user->user_email . "\n";
	$message .= 'User First Name: ' . $current_user->user_firstname . "\n";
	$message .= 'User Last Name: ' . $current_user->user_lastname . "\n";
	$message .= "\n";
	$message .= "\n";
	$message .= "Billing Address:\n";
	
	// get the data from the profile after it's set by the customer save
	$message .= $woocommerce->customer->get_billing_address_1() . "\n";
	$address_2 = $woocommerce->customer->get_billing_address_2();
	if ($address_2 != '') {
		$message.= $address_2 . "\n";
	}
	$message .= $woocommerce->customer->get_billing_city() . " ";
	$message .= $woocommerce->customer->get_billing_state() . "\n";
    $message .= $woocommerce->customer->get_billing_phone() . "\n";
	$message .= $woocommerce->customer->get_billing_postcode() . "\n";
	$message .= $woocommerce->customer->get_billing_country() . "\n\n";
	$message .= "Shipping Address:\n";
	$message .= $woocommerce->customer->get_shipping_address() . "\n";
	$shipping_address_2 = $woocommerce->customer->get_shipping_address_2();
	if ($shipping_address_2 != '') {
		$message .= $shipping_address_2 . "\n";
	}
	$message .= $woocommerce->customer->get_shipping_city() . " ";
	$message .= $woocommerce->customer->get_shipping_state() . " ";
	$message .= $woocommerce->customer->get_shipping_postcode() . "\n";
	$message .= $woocommerce->customer->get_shipping_country();

	wp_mail($to, '[Carpenters Workshop Gallery] Customer Address Change Notice', $message);
}

Zerion Mini Shell 1.0