Skip to content

Instantly share code, notes, and snippets.

Avatar
🏠
Working from home

Jhon Marreros Guzman jmarreros

🏠
Working from home
View GitHub Profile
@jmarreros
jmarreros / proceso-por-lotes-recarga.php
Last active Jun 15, 2021
Plugin de ejemplo de proceso por lotes javascript con recarga en WordPress
View proceso-por-lotes-recarga.php
<?php
/*
Plugin Name: Proceso por lotes recarga
Plugin URI: https://decodecms.com
Description: Plugin para demostración de proceso por lotes con recarga javascript
Version: 1.0
Author: Jhon Marreros Guzmán
Author URI: https://decodecms.com
License: MIT
*/
View contacto-cpt.php
<?php // No copiar esta línea
// Register Custom Post Type
function contactos_post_type() {
$labels = array(
'name' => _x( 'Contactos', 'Post Type General Name', 'contactos_domain' ),
'singular_name' => _x( 'Contacto', 'Post Type Singular Name', 'contactos_domain' ),
'menu_name' => __( 'Contactos', 'contactos_domain' ),
'name_admin_bar' => __( 'Contactos', 'contactos_domain' ),
@jmarreros
jmarreros / form-login-WordPress.php
Last active Apr 12, 2021
Formulario simple de login a través de código en WordPress, usando el shortcode [dcms_form_login]
View form-login-WordPress.php
<?php // No copiar esta línea
function dcms_form_login_config() {
$redirect_login = get_home_url();
$redirect_logout = get_home_url();
if ( ! is_user_logged_in() ):
$args = array(
'echo' => false,
'redirect' => $redirect_login,
View Search-in-table-HTML.js
/*
Se requiere pasar un objeto vars_table, que contenga el selector de la tabla HTML y el placeholder, por ejemplo:
let vars_table = {
"select": "table.table-data",
"placeholder": "Buscar empleados"
}
*/
(function( $ ) {
View leer-base-datos-externa.php
<? // no copiar esta línea
add_filter( 'the_content', 'dcms_list_data' );
function dcms_list_data( $content ) {
$database_name = 'employees'; // nombre de la base de datos
$database_user = 'root';
$database_pass = 'root';
$database_server = 'localhost';
View one-page-wordpress-script.js
(function( $ ) {
const marginTop = 170; // puedes cambiar el margen
const currentClasses = 'current-menu-item current_page_item';
if ( ! window.location.hash ){
$('li').removeClass(currentClasses);
$('li:first-child').addClass(currentClasses);
}
$('li a[href*="#"]').click(function(event) {
@jmarreros
jmarreros / dcms_list_authors.php
Created Jan 5, 2021
Modificacion de la funcion wp_list_authors de WordPress para que muestre autores con imagen
View dcms_list_authors.php
<?php
function dcms_list_authors( $args = '' ) {
global $wpdb;
$defaults = array(
'orderby' => 'name',
'order' => 'ASC',
'number' => '',
'optioncount' => false,
'exclude_admin' => true,
@jmarreros
jmarreros / cambiar-precio-producto.php
Created Dec 4, 2020
Muestra una selección que varía el precio y se guarda ese adicional tanto en el carrito como el ítem de la orden al hacer el pedido
View cambiar-precio-producto.php
<?php // No copiar esta línea
// Para el detalle de producto, creación de controlo y cambio de precio
add_action('woocommerce_before_add_to_cart_button', 'dcms_build_select_field');
function dcms_build_select_field(){
global $product;
$options = [
@jmarreros
jmarreros / ejemplo-cache-objetos-WordPress.php
Created Nov 3, 2020
Ejemplo de recuperación de datos de entradas relacionadas desde la cache de objetos en WordPress
View ejemplo-cache-objetos-WordPress.php
<?php // no copiar esta línea
add_filter('the_content', 'dcms_related_content');
function dcms_related_content( $content ){
if ( ! is_single() ) return $content;
$post_id = get_the_ID();
View custom-loop-woocommerce.php
<?php
if( ! function_exists('wc_get_products') ) return;
// definimos las variables de paginación y filtro
$paged = (get_query_var('paged')) ? absint(get_query_var('paged')) : 1;
$ordering = WC()->query->get_catalog_ordering_args();
$ordering['orderby'] = array_shift(explode(' ', $ordering['orderby']));
$ordering['orderby'] = stristr($ordering['orderby'], 'price') ? 'meta_value_num' : $ordering['orderby'];
$products_per_page = apply_filters('loop_shop_per_page', wc_get_default_products_per_row() * wc_get_default_product_rows_per_page());