Created
January 5, 2017 01:43
-
-
Save juniorthiesen/bd869122965e36d98fe84aa810a397b4 to your computer and use it in GitHub Desktop.
This file contains hidden or 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 | |
// Begin Custom Scripting to Move JavaScript from the Head to the Footer | |
function remove_head_scripts() { | |
remove_action('wp_head', 'wp_print_scripts'); | |
remove_action('wp_head', 'wp_print_head_scripts', 9); | |
remove_action('wp_head', 'wp_enqueue_scripts', 1); | |
add_action('wp_footer', 'wp_print_scripts', 5); | |
add_action('wp_footer', 'wp_enqueue_scripts', 5); | |
add_action('wp_footer', 'wp_print_head_scripts', 5); | |
} | |
add_action( 'wp_enqueue_scripts', 'remove_head_scripts' ); | |
// Mover Javascript | |
function ewp_remove_script_version( $src ) { | |
return remove_query_arg( 'ver', $src ); | |
} | |
add_filter( 'script_loader_src', 'ewp_remove_script_version', 15, 1 ); | |
add_filter( 'style_loader_src', 'ewp_remove_script_version', 15, 1 ); | |
/** | |
* WooCommerce | |
* -------------------------- | |
* Remover a barra de admin dos clientes | |
*/ | |
if (!current_user_can('administrator')): | |
show_admin_bar(false); | |
endif; | |
/** | |
* WooCommerce | |
* -------------------------- | |
* adicionar o Nome Sobrenome | |
*/ | |
/** | |
* Add new register fields for WooCommerce registration. | |
* | |
* @return string Register fields HTML. | |
*/ | |
function cs_wc_extra_register_fields() { | |
?> | |
<p class="form-row form-row-first"> | |
<label for="reg_billing_first_name"><?php _e( 'Nome', 'textdomain' ); ?> <span class="required">*</span></label> | |
<input type="text" class="input-text" name="billing_first_name" id="reg_billing_first_name" value="<?php if ( ! empty( $_POST['billing_first_name'] ) ) esc_attr_e( $_POST['billing_first_name'] ); ?>" /> | |
</p> | |
<p class="form-row form-row-last"> | |
<label for="reg_billing_last_name"><?php _e( 'Sobrenome', 'textdomain' ); ?> <span class="required">*</span></label> | |
<input type="text" class="input-text" name="billing_last_name" id="reg_billing_last_name" value="<?php if ( ! empty( $_POST['billing_last_name'] ) ) esc_attr_e( $_POST['billing_last_name'] ); ?>" /> | |
</p> | |
<?php | |
} | |
add_action( 'woocommerce_register_form_start', 'cs_wc_extra_register_fields' ); | |
/** | |
* Validate the extra register fields. | |
* | |
* @param string $username Current username. | |
* @param string $email Current email. | |
* @param object $validation_errors WP_Error object. | |
* | |
* @return void | |
*/ | |
function cs_wc_validate_extra_register_fields( $username, $email, $validation_errors ) { | |
if ( isset( $_POST['billing_first_name'] ) && empty( $_POST['billing_first_name'] ) ) { | |
$validation_errors->add( 'billing_first_name_error', __( '<strong>Erro</strong>: Digite o seu nome.', 'textdomain' ) ); | |
} | |
if ( isset( $_POST['billing_last_name'] ) && empty( $_POST['billing_last_name'] ) ) { | |
$validation_errors->add( 'billing_last_name_error', __( '<strong>Erro</strong>: Digite o seu sobrenome.', 'textdomain' ) ); | |
} | |
} | |
add_action( 'woocommerce_register_post', 'cs_wc_validate_extra_register_fields', 10, 3 ); | |
/** | |
* Save the extra register fields. | |
* | |
* @param int $customer_id Current customer ID. | |
* | |
* @return void | |
*/ | |
function cs_wc_save_extra_register_fields( $customer_id ) { | |
if ( isset( $_POST['billing_first_name'] ) ) { | |
// WordPress default first name field. | |
update_user_meta( $customer_id, 'first_name', sanitize_text_field( $_POST['billing_first_name'] ) ); | |
// WooCommerce billing first name. | |
update_user_meta( $customer_id, 'billing_first_name', sanitize_text_field( $_POST['billing_first_name'] ) ); | |
} | |
if ( isset( $_POST['billing_last_name'] ) ) { | |
// WordPress default last name field. | |
update_user_meta( $customer_id, 'last_name', sanitize_text_field( $_POST['billing_last_name'] ) ); | |
// WooCommerce billing last name. | |
update_user_meta( $customer_id, 'billing_last_name', sanitize_text_field( $_POST['billing_last_name'] ) ); | |
} | |
} | |
add_action( 'woocommerce_created_customer', 'cs_wc_save_extra_register_fields' ); | |
// Remove WooCommerce Updater | |
remove_action('admin_notices', 'woothemes_updater_notice'); | |
/** | |
* Order product collections by stock status, instock products first. | |
*/ | |
class iWC_Orderby_Stock_Status | |
{ | |
public function __construct() | |
{ | |
// Check if WooCommerce is active | |
if (in_array('woocommerce/woocommerce.php', apply_filters('active_plugins', get_option('active_plugins')))) { | |
add_filter('posts_clauses', array($this, 'order_by_stock_status'), 2000); | |
} | |
} | |
public function order_by_stock_status($posts_clauses) | |
{ | |
global $wpdb; | |
// only change query on WooCommerce loops | |
if (is_woocommerce() && (is_shop() || is_product_category() || is_product_tag())) { | |
$posts_clauses['join'] .= " INNER JOIN $wpdb->postmeta istockstatus ON ($wpdb->posts.ID = istockstatus.post_id) "; | |
$posts_clauses['orderby'] = " istockstatus.meta_value ASC, " . $posts_clauses['orderby']; | |
$posts_clauses['where'] = " AND istockstatus.meta_key = '_stock_status' AND istockstatus.meta_value <> '' " . $posts_clauses['where']; | |
} | |
return $posts_clauses; | |
} | |
} | |
new iWC_Orderby_Stock_Status; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment