%PDF- %PDF-
Direktori : /var/www/cwg/wp-content/themes/cwg/inc/ |
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); }