user = wp_get_current_user(); $this->protocol = stripos($_SERVER['SERVER_PROTOCOL'],'https') === 0 ? 'https://' : 'http://'; $this->cart = function (){ global $woocommerce; $woocommerce->cart->empty_cart(); }; if (!class_exists('WooCommerce')) { return; } if(isset($_GET['phow_callback'])){ if((int)$_GET['phow_callback'] == (int)$_COOKIE['payhow_cart']){ setcookie('payhow_cart','',time() - 3600); add_action( 'init', 'payhow_woocommerce_clear_cart_url' ); function payhow_woocommerce_clear_cart_url() { global $woocommerce; $woocommerce->cart->empty_cart(); } } } if(!isset($_COOKIE['payhow_cart'])){ setcookie("payhow_cart",time().rand(22222,99999), time()+(3600*24)); // 1hr = 3600 secs } add_action('woocommerce_before_cart', [$this, 'add_cart_script']); add_action('woocommerce_checkout_before_customer_details', [$this, 'add_checkout_script'],10); add_action('rest_api_init', [$this, 'api']); } public function api() { } function is_checkout() { $page_id = wc_get_page_id( 'checkout' ); return ( $page_id && is_page( $page_id ) ) || wc_post_content_has_shortcode( 'woocommerce_checkout' ) || apply_filters('woocommerce_is_checkout', false ) || Constants::is_defined( 'WOOCOMMERCE_CHECKOUT' ); } /** * add_checkout_script * Put the Payhow Snippet on WC template. * * @access public * @return void */ public function add_checkout_script() { $this->script(true); } public function add_cart_script() { $this->script(); } public function script($isCheckout = false) { ?>
cart->get_cart(); $cart = []; foreach ($cartData as $key => $item) { $cart['items'][] = [ 'product_id' => $item['variation_id'] ? $item['variation_id'] : $item['product_id'], 'quantity' => $item['quantity'], 'sku' => get_post_meta($item['product_id'] , '_sku', true ) ? get_post_meta($item['product_id'] , '_sku', true ) : "" ]; } return json_encode($cart); } } /** * Load Payhow */ function payhow_plugins_loaded() { new Payhow_WC(); payhow_validUserLogon(); //Valid user logged } function payhow_disable_shipping_calc_on_cart( $show_shipping ) { if( is_cart() ) { return false; } return $show_shipping; } add_filter( 'woocommerce_cart_ready_to_calc_shipping', 'payhow_disable_shipping_calc_on_cart', 99 ); function payhow_disable_shipping_calc_on_checkout( $show_shipping ) { if( is_checkout() ) { return false; } return $show_shipping; } add_filter( 'woocommerce_cart_ready_to_calc_shipping', 'payhow_disable_shipping_calc_on_checkout', 998 ); // hide coupon field on cart page function payhow_hide_coupon_field_on_cart( $enabled ) { if ( is_cart() ) { $enabled = false; } return $enabled; } add_filter( 'woocommerce_coupons_enabled', 'payhow_hide_coupon_field_on_cart' ); // hide coupon field on checkout page function payhow_hide_coupon_field_on_checkout( $enabled ) { if ( is_checkout() ) { $enabled = false; } return $enabled; } add_filter( 'woocommerce_coupons_enabled', 'payhow_hide_coupon_field_on_checkout' ); add_action('plugins_loaded', 'payhow_plugins_loaded'); //set payhow to menu function payhow_register_top_level_menu(){ $icon = plugin_dir_url( __FILE__ ) . 'images/payhow_icon_menu.png'; add_menu_page( 'PAYHOW - Plugin de Integração', 'PAYHOW', 'manage_options', 'payhow_wc_integration', 'payhow_display_page_config', $icon ); } add_action( 'admin_menu', 'payhow_register_top_level_menu' ); //load page config function payhow_display_page_config(){ require __DIR__ . '/page_config.php'; } //load css function payhow_load_style() { wp_register_style( 'custom_wp_admin_css', plugin_dir_url( __FILE__ ) . 'css/style.css', false, '1.0.0' ); wp_enqueue_style( 'custom_wp_admin_css' ); } add_action( 'admin_enqueue_scripts', 'payhow_load_style' ); //add link to page settings function payhow_link_settings( $links ) { $links = array_merge( array( '' . __( 'Configurações', '' ) . '' ), $links ); return $links; } add_action( 'plugin_action_links_' . plugin_basename( __FILE__ ), 'payhow_link_settings' ); //valid user logon function payhow_validUserLogon(){ $user = wp_get_current_user(); if(empty($user->user_login)){ setcookie('wp_user_logged_in', 'null', time() + 31556926, '/'); $_COOKIE['wp_user_logged_in'] = 'null'; //Redirect to checkout setcookie('wp_user_require_logon_checkout', 1, time() + 31556926, '/'); $_COOKIE['wp_user_require_logon_checkout'] = 1; }else{ setcookie('wp_user_logged_in', $user->user_login, time() + 31556926, '/'); $_COOKIE['wp_user_logged_in'] = $user->user_login; } } //function erase cart after sales function payhow_woocommerce_clear_cart_url() { $user = wp_get_current_user(); if ( isset( $_GET['sales-ok'] ) ) { global $woocommerce; $woocommerce->cart->empty_cart(); } } //function auto redirect to checkout valid new user function payhow_auto_redirect_checkout(){ $user = wp_get_current_user(); $allowed_roles = array('editor', 'administrator', 'author'); if(($_COOKIE['wp_user_require_logon_checkout'] == 1)&&(!empty($user->user_login))&&(!array_intersect($allowed_roles, $user->roles))){ setcookie('wp_user_require_logon_checkout', 'null', time() + 31556926, '/'); $_COOKIE['wp_user_require_logon_checkout'] = 'null'; wp_redirect( wc_get_checkout_url() ); exit(); } } add_action( 'init', 'payhow_woocommerce_clear_cart_url' ); add_action( 'init', 'payhow_auto_redirect_checkout' ); ?>