Resultados de búsqueda para 'woocommerce email'

Viendo 15 resultados - del 46 al 60 (de un total de 374)
  • Iniciador del debate Marisol Espinosa Carreño

    (@cajasparacomics)

    Hola Mariano.

    Gracias, pero no es la solución que busco. El pedido sigue teniendo el mismo estado, es el artículo el que cambia de estado.
    Así solo cambiaría 1 parámetro (el artículo) y no X pedidos de estado, que pueden ser muchos para un solo artículo.
    He estado haciendo pruebas y he dedo con un código que me permite lo que te comento. Lo dejo por aquí por si a alguien le ayuda.
    Muchas gracias por tu tiempo.

    Nota: En ‘post_status’ cambiar al estado que se tiene el pedido.

    // Envía email de notificación a los clientes que hayan comprado un producto cuando este se actualiza
    if ( in_array( 'woocommerce/woocommerce.php', get_option( 'active_plugins' ) ) ){
    
    	function post_published_notification( $ID ) {
    	
    		global $post;
    		$customers_info = array();
    		$notification_message = '';
    	
    		$orders = get_posts( array(
    			'post_type'   => 'shop_order',
    			'posts_per_page' => -1,
    			'post_status' => array( 'wc-pendiente-de-lleg' )
    			) );
    	
    		if( !empty( $orders ) && ( 'yes' == get_post_meta( $ID, 'updates_notification', true ) ) ){
    	
    			foreach ($orders as $key => $order ) {
    	
    				$order_object = new WC_Order( $order->ID );
    	
    				foreach ( $order_object->get_items() as $key => $item ) {
    	
    					if ( $item[ 'product_id' ] == $ID ) {
    	
    						$download_item_info = null !== $order_object->get_item_downloads( $item )? $order_object->get_item_downloads( $item ) : '';
    						$customers_info[] = array( 'name' => $order_object->billing_first_name, 
    							'email' => $order_object->billing_email,
    							'donwloads_info' => $download_item_info
    							);
    					}
    				}
    			}
    	
    			if ( !empty( $customers_info ) ) {
    	
    				add_filter( 'wp_mail_content_type', function(){ return 'text/html'; } );
    				foreach ( $customers_info as $key => $customer ) {
    	        			//Clean up headers
    					$headers = array();
    	
    					// Get notification message content
    					$notification_message = wpautop( get_post_meta( $ID, 'update_notification_message', true ) );
    	
    					$author = $post->post_author; /* Post author ID. */
    					$name = $customer[ 'name' ];
    					$email = $customer[ 'email' ];
    					$title = $post->post_title;
    					$permalinks = get_email_format_permalinks( $customer[ 'donwloads_info' ] );
    					$edit = get_edit_post_link( $ID, '' );
    					$to = sprintf( '%s <%s>', $name, $email );
    					$subject = sprintf( 'Hay una nueva versión disponible de %s', $title );
    	
    					$notification_message = str_replace( '{{name}}' , $name, $notification_message );
    	
    					if ( $permalinks ) {
    						
    						$plugin_downloads = create_downloads_list( isset( $permalinks[ 'plugin_downloads' ] )? $permalinks[ 'plugin_downloads' ] : array() );
    						$documentation_downloads = create_downloads_list( isset( $permalinks[ 'documentation_downloads' ] )? $permalinks[ 'documentation_downloads' ] : array() );
    						$notification_message = str_replace( '{{plugin_downloads}}' , $plugin_downloads, $notification_message );
    						$notification_message = str_replace( '{{documentation_downloads}}' , $documentation_downloads, $notification_message );
    					}
    	
    					$from_name = WC()->mailer->get_from_name();
    					$from_address = WC()->mailer->get_from_address();
    					$headers[] = sprintf( 'From: %s <%s>', $from_name, $from_address );
    	
    					$response = wp_mail( $to, $subject, $notification_message, $headers );
    				}
    			}
    		} 
    	}
    	add_action( 'save_post', 'post_published_notification', 99, 1 );
    	
    	function create_downloads_list( $permalinks = array() ){
    	
    		$downloads_list = '';
    		if ( !empty( $permalinks ) ) {
    			
    			$downloads_list = '<ul>';
    			foreach ( $permalinks as $key => $value ) {
    		
    				$downloads_list .= sprintf( '<li><a href="%s">Descargar %s</a></li>', $value[ 'download_url' ], $value[ 'name' ] );
    			}
    			$downloads_list .= '</ul>';
    		}
    	
    		return $downloads_list;
    	}
    	
    	function get_email_format_permalinks( $permalinks ){
    	
    		if ( empty( $permalinks ) ) return false;
    	
    		$email_format_permalinks = array();
    		foreach ( $permalinks as $key => $info_link ) {
    	
    			$path_info = pathinfo( $info_link[ 'file' ] );
    			if ( !empty( $path_info[ 'extension' ] ) && ( $path_info[ 'extension' ] == 'zip' ) ) {
    	
    				$email_format_permalinks[ 'plugin_downloads' ][] = array( 'name' => $info_link[ 'name' ], 'download_url' => $info_link[ 'download_url' ] );
    			}else{
    	
    				$email_format_permalinks[ 'documentation_downloads' ][] = array( 'name' => $info_link[ 'name' ], 'download_url' => $info_link[ 'download_url' ] );
    			}
    		}
    	
    		return $email_format_permalinks;
    	}
    	
    	// Add allow updates notification field to product meta box
    	add_action( 'woocommerce_product_options_general_product_data', 'woo_add_allow_updates_notification_field' );
    	function woo_add_allow_updates_notification_field(){
    	
    	  woocommerce_wp_checkbox( 
    	    array( 
    	      'id'            => 'updates_notification', 
    	      'wrapper_class' => 'show_if_simple show_if_variable', 
    	      'label'         => 'Notificar actualizaciones', 
    	      'description'   => 'Envía a todos los clientes que hayan comprado este producto, un email de notificación de nueva versión disponible cuando actualizas la ficha de producto.' 
    	      )
    	    );
    	}
    	
    	add_action( 'add_meta_boxes', 'woo_update_notification_metabox' );
    	function woo_update_notification_metabox()
    	{
    		add_meta_box( 'woo-update-notification-box', 'Mensaje de notificación de la actualización', 'render_woo_update_notification_metabox', 'product', 'normal', 'default' );
    	}
    	
    	function render_woo_update_notification_metabox( $post )
    	{
    	    	$settings = array(
    			'textarea_name' => 'update_notification_message',
    			'textarea_rows' => 10,
    			'quicktags'     => array( 'buttons' => 'em,strong,link' ),
    			'tinymce'       => array(
    				'theme_advanced_buttons1' => 'bold,italic,strikethrough,separator,bullist,numlist,separator,blockquote,separator,justifyleft,justifycenter,justifyright,separator,link,unlink,separator,undo,redo,separator',
    				'theme_advanced_buttons2' => '',
    			),
    			'editor_css'    => '<style>#wp-excerpt-editor-container .wp-editor-area{height:175px; width:100%;}</style>'
    		);
    	
    	    	$update_notification_content = get_post_meta( $post->ID, 'update_notification_message', true );
    		wp_editor( htmlspecialchars_decode( $update_notification_content ), 'update_notification_message', $settings );
    	
    		wp_nonce_field( 'woo-update-notification-box-nonce', 'update_notification_nonce' );
    	}
    	
    	add_action( 'save_post', 'woo_update_notification_metabox_save' );
    	function woo_update_notification_metabox_save( $post_id ){
    	
    		// Bail if we're doing an auto save  
    	    	if( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) return;
    	 	
    	    	// if our nonce isn't there, or we can't verify it, bail 
    	    	if( !isset( $_POST[ 'update_notification_nonce' ] ) || !wp_verify_nonce( $_POST[ 'update_notification_nonce' ], 'woo-update-notification-box-nonce' ) ) return;
    	 	
    	    	// if our current user can't edit this post, bail  
    	    	if( 'product' == $_POST['post_type'] ) {
    
    	    		if( !current_user_can('edit_page', $post_id) ) {
    
    	    			return $post_id;
    	      		} else {
    					
    				$update_notification_message = isset( $_POST[ 'update_notification_message' ] )? $_POST[ 'update_notification_message' ] : '';
    				$updates_notification = !empty( $_POST[ 'updates_notification' ] )? 'yes' : 'no';
    				update_post_meta( $post_id, 'update_notification_message', $update_notification_message ); 
    				update_post_meta( $post_id, 'updates_notification', $updates_notification ); 
    	      		}
    	    	}
    	}
    }
    • Muy buenas,

      Tengo un problema, en la página de tienda me aparecen los produtos duplicados pero solo los tenemos creados una vez en productos.
      Os pego el informe del sistema por si podéis ayudarme, muchisimas gracias

      
      ### WordPress Environment ###
      
      WordPress address (URL): https://7evenbrand.com
      Site address (URL): https://7evenbrand.com
      WC Version: 6.9.4
      REST API Version: ✔ 6.9.4
      WC Blocks Version: ✔ 8.3.3
      Action Scheduler Version: ✔ 3.4.0
      Log Directory Writable: ✔
      WP Version: 6.1.1
      WP Multisite: –
      WP Memory Limit: 256 MB
      WP Debug Mode: –
      WP Cron: ✔
      Language: es_ES
      External object cache: –
      
      ### Server Environment ###
      
      Server Info: Apache
      PHP Version: 7.4.33
      PHP Post Max Size: 128 MB
      PHP Time Limit: 30
      PHP Max Input Vars: 1000
      cURL Version: 7.68.0
      OpenSSL/1.1.1f
      
      SUHOSIN Installed: –
      MySQL Version: 5.5.5-10.3.34-MariaDB-0ubuntu0.20.04.1
      Max Upload Size: 128 MB
      Default Timezone is UTC: ✔
      fsockopen/cURL: ✔
      SoapClient: ✔
      DOMDocument: ✔
      GZip: ✔
      Multibyte String: ✔
      Remote Post: ✔
      Remote Get: ✔
      
      ### Database ###
      
      WC Database Version: 6.9.4
      WC Database Prefix: 3Q49LHP_
      Tamaño total de la base de datos: 43.05MB
      Tamaño de los datos de la base de datos: 35.86MB
      Tamaño del índice de la base de datos: 7.19MB
      3Q49LHP_woocommerce_sessions: Datos: 1.02MB + Índice: 0.02MB + Motor InnoDB
      3Q49LHP_woocommerce_api_keys: Datos: 0.02MB + Índice: 0.03MB + Motor InnoDB
      3Q49LHP_woocommerce_attribute_taxonomies: Datos: 0.02MB + Índice: 0.02MB + Motor InnoDB
      3Q49LHP_woocommerce_downloadable_product_permissions: Datos: 0.02MB + Índice: 0.06MB + Motor InnoDB
      3Q49LHP_woocommerce_order_items: Datos: 0.06MB + Índice: 0.02MB + Motor InnoDB
      3Q49LHP_woocommerce_order_itemmeta: Datos: 0.39MB + Índice: 0.27MB + Motor InnoDB
      3Q49LHP_woocommerce_tax_rates: Datos: 0.02MB + Índice: 0.06MB + Motor InnoDB
      3Q49LHP_woocommerce_tax_rate_locations: Datos: 0.02MB + Índice: 0.03MB + Motor InnoDB
      3Q49LHP_woocommerce_shipping_zones: Datos: 0.02MB + Índice: 0.00MB + Motor InnoDB
      3Q49LHP_woocommerce_shipping_zone_locations: Datos: 0.02MB + Índice: 0.03MB + Motor InnoDB
      3Q49LHP_woocommerce_shipping_zone_methods: Datos: 0.02MB + Índice: 0.00MB + Motor InnoDB
      3Q49LHP_woocommerce_payment_tokens: Datos: 0.02MB + Índice: 0.02MB + Motor InnoDB
      3Q49LHP_woocommerce_payment_tokenmeta: Datos: 0.02MB + Índice: 0.03MB + Motor InnoDB
      3Q49LHP_woocommerce_log: Datos: 0.02MB + Índice: 0.02MB + Motor InnoDB
      3Q49LHP_actionscheduler_actions: Datos: 1.27MB + Índice: 0.53MB + Motor InnoDB
      3Q49LHP_actionscheduler_claims: Datos: 0.02MB + Índice: 0.02MB + Motor InnoDB
      3Q49LHP_actionscheduler_groups: Datos: 0.02MB + Índice: 0.02MB + Motor InnoDB
      3Q49LHP_actionscheduler_logs: Datos: 0.34MB + Índice: 0.28MB + Motor InnoDB
      3Q49LHP_circular_countdown_countdowns: Datos: 0.00MB + Índice: 0.00MB + Motor MyISAM
      3Q49LHP_circular_countdown_playlist: Datos: 0.00MB + Índice: 0.00MB + Motor MyISAM
      3Q49LHP_circular_countdown_settings: Datos: 0.00MB + Índice: 0.00MB + Motor MyISAM
      3Q49LHP_commentmeta: Datos: 0.02MB + Índice: 0.03MB + Motor InnoDB
      3Q49LHP_comments: Datos: 0.14MB + Índice: 0.09MB + Motor InnoDB
      3Q49LHP_cx_leads: Datos: 0.02MB + Índice: 0.00MB + Motor InnoDB
      3Q49LHP_followup_coupons: Datos: 0.02MB + Índice: 0.03MB + Motor InnoDB
      3Q49LHP_followup_coupon_logs: Datos: 0.02MB + Índice: 0.05MB + Motor InnoDB
      3Q49LHP_followup_customers: Datos: 0.02MB + Índice: 0.06MB + Motor InnoDB
      3Q49LHP_followup_customer_carts: Datos: 0.27MB + Índice: 0.03MB + Motor InnoDB
      3Q49LHP_followup_customer_notes: Datos: 0.02MB + Índice: 0.03MB + Motor InnoDB
      3Q49LHP_followup_customer_orders: Datos: 0.02MB + Índice: 0.02MB + Motor InnoDB
      3Q49LHP_followup_email_excludes: Datos: 0.02MB + Índice: 0.05MB + Motor InnoDB
      3Q49LHP_followup_email_logs: Datos: 0.02MB + Índice: 0.05MB + Motor InnoDB
      3Q49LHP_followup_email_orders: Datos: 0.20MB + Índice: 0.09MB + Motor InnoDB
      3Q49LHP_followup_email_tracking: Datos: 0.02MB + Índice: 0.08MB + Motor InnoDB
      3Q49LHP_followup_followup_history: Datos: 0.27MB + Índice: 0.05MB + Motor InnoDB
      3Q49LHP_followup_order_categories: Datos: 0.02MB + Índice: 0.03MB + Motor InnoDB
      3Q49LHP_followup_order_items: Datos: 0.02MB + Índice: 0.05MB + Motor InnoDB
      3Q49LHP_followup_subscribers: Datos: 0.02MB + Índice: 0.03MB + Motor InnoDB
      3Q49LHP_followup_subscribers_to_lists: Datos: 0.02MB + Índice: 0.03MB + Motor InnoDB
      3Q49LHP_followup_subscriber_lists: Datos: 0.02MB + Índice: 0.03MB + Motor InnoDB
      3Q49LHP_gdpr_cc_options: Datos: 0.02MB + Índice: 0.00MB + Motor InnoDB
      3Q49LHP_links: Datos: 0.02MB + Índice: 0.02MB + Motor InnoDB
      3Q49LHP_options: Datos: 4.08MB + Índice: 0.16MB + Motor InnoDB
      3Q49LHP_postmeta: Datos: 2.42MB + Índice: 1.81MB + Motor InnoDB
      3Q49LHP_posts: Datos: 1.48MB + Índice: 0.22MB + Motor InnoDB
      3Q49LHP_sbi_feeds: Datos: 0.02MB + Índice: 0.02MB + Motor InnoDB
      3Q49LHP_sbi_feed_caches: Datos: 0.05MB + Índice: 0.02MB + Motor InnoDB
      3Q49LHP_sbi_instagram_feeds_posts: Datos: 0.02MB + Índice: 0.03MB + Motor InnoDB
      3Q49LHP_sbi_instagram_feed_locator: Datos: 0.02MB + Índice: 0.03MB + Motor InnoDB
      3Q49LHP_sbi_instagram_posts: Datos: 0.06MB + Índice: 0.00MB + Motor InnoDB
      3Q49LHP_sbi_sources: Datos: 0.02MB + Índice: 0.03MB + Motor InnoDB
      3Q49LHP_social_users: Datos: 0.02MB + Índice: 0.03MB + Motor InnoDB
      3Q49LHP_termmeta: Datos: 0.02MB + Índice: 0.03MB + Motor InnoDB
      3Q49LHP_terms: Datos: 0.02MB + Índice: 0.03MB + Motor InnoDB
      3Q49LHP_term_relationships: Datos: 0.02MB + Índice: 0.02MB + Motor InnoDB
      3Q49LHP_term_taxonomy: Datos: 0.02MB + Índice: 0.03MB + Motor InnoDB
      3Q49LHP_usermeta: Datos: 1.47MB + Índice: 0.69MB + Motor InnoDB
      3Q49LHP_users: Datos: 0.08MB + Índice: 0.05MB + Motor InnoDB
      3Q49LHP_wc_admin_notes: Datos: 0.06MB + Índice: 0.00MB + Motor InnoDB
      3Q49LHP_wc_admin_note_actions: Datos: 0.02MB + Índice: 0.02MB + Motor InnoDB
      3Q49LHP_wc_category_lookup: Datos: 0.02MB + Índice: 0.00MB + Motor InnoDB
      3Q49LHP_wc_customer_lookup: Datos: 0.02MB + Índice: 0.03MB + Motor InnoDB
      3Q49LHP_wc_download_log: Datos: 0.02MB + Índice: 0.03MB + Motor InnoDB
      3Q49LHP_wc_order_coupon_lookup: Datos: 0.02MB + Índice: 0.03MB + Motor InnoDB
      3Q49LHP_wc_order_product_lookup: Datos: 0.06MB + Índice: 0.06MB + Motor InnoDB
      3Q49LHP_wc_order_stats: Datos: 0.02MB + Índice: 0.05MB + Motor InnoDB
      3Q49LHP_wc_order_tax_lookup: Datos: 0.02MB + Índice: 0.03MB + Motor InnoDB
      3Q49LHP_wc_product_attributes_lookup: Datos: 0.02MB + Índice: 0.02MB + Motor InnoDB
      3Q49LHP_wc_product_download_directories: Datos: 0.02MB + Índice: 0.02MB + Motor InnoDB
      3Q49LHP_wc_product_meta_lookup: Datos: 0.02MB + Índice: 0.09MB + Motor InnoDB
      3Q49LHP_wc_rate_limits: Datos: 0.02MB + Índice: 0.02MB + Motor InnoDB
      3Q49LHP_wc_reserved_stock: Datos: 0.02MB + Índice: 0.00MB + Motor InnoDB
      3Q49LHP_wc_tax_rate_classes: Datos: 0.02MB + Índice: 0.02MB + Motor InnoDB
      3Q49LHP_wc_webhooks: Datos: 0.02MB + Índice: 0.02MB + Motor InnoDB
      3Q49LHP_wfblockediplog: Datos: 0.25MB + Índice: 0.00MB + Motor InnoDB
      3Q49LHP_wfblocks7: Datos: 0.02MB + Índice: 0.05MB + Motor InnoDB
      3Q49LHP_wfconfig: Datos: 1.31MB + Índice: 0.00MB + Motor InnoDB
      3Q49LHP_wfcrawlers: Datos: 0.02MB + Índice: 0.00MB + Motor InnoDB
      3Q49LHP_wffilechanges: Datos: 0.02MB + Índice: 0.00MB + Motor InnoDB
      3Q49LHP_wffilemods: Datos: 11.52MB + Índice: 0.00MB + Motor InnoDB
      3Q49LHP_wfhits: Datos: 1.02MB + Índice: 0.19MB + Motor InnoDB
      3Q49LHP_wfhoover: Datos: 0.02MB + Índice: 0.02MB + Motor InnoDB
      3Q49LHP_wfissues: Datos: 0.06MB + Índice: 0.06MB + Motor InnoDB
      3Q49LHP_wfknownfilelist: Datos: 5.52MB + Índice: 0.00MB + Motor InnoDB
      3Q49LHP_wflivetraffichuman: Datos: 0.02MB + Índice: 0.02MB + Motor InnoDB
      3Q49LHP_wflocs: Datos: 0.02MB + Índice: 0.00MB + Motor InnoDB
      3Q49LHP_wflogins: Datos: 0.33MB + Índice: 0.11MB + Motor InnoDB
      3Q49LHP_wfls_2fa_secrets: Datos: 0.02MB + Índice: 0.02MB + Motor InnoDB
      3Q49LHP_wfls_settings: Datos: 0.02MB + Índice: 0.00MB + Motor InnoDB
      3Q49LHP_wfnotifications: Datos: 0.02MB + Índice: 0.00MB + Motor InnoDB
      3Q49LHP_wfpendingissues: Datos: 0.02MB + Índice: 0.06MB + Motor InnoDB
      3Q49LHP_wfreversecache: Datos: 0.02MB + Índice: 0.00MB + Motor InnoDB
      3Q49LHP_wfsnipcache: Datos: 0.02MB + Índice: 0.05MB + Motor InnoDB
      3Q49LHP_wfstatus: Datos: 0.13MB + Índice: 0.11MB + Motor InnoDB
      3Q49LHP_wftrafficrates: Datos: 0.02MB + Índice: 0.00MB + Motor InnoDB
      3Q49LHP_wpmailsmtp_debug_events: Datos: 0.02MB + Índice: 0.00MB + Motor InnoDB
      3Q49LHP_wpmailsmtp_tasks_meta: Datos: 0.02MB + Índice: 0.00MB + Motor InnoDB
      3Q49LHP_yith_wapo_addons: Datos: 0.08MB + Índice: 0.00MB + Motor InnoDB
      3Q49LHP_yith_wapo_blocks: Datos: 0.02MB + Índice: 0.00MB + Motor InnoDB
      3Q49LHP_yith_wccl_meta: Datos: 0.02MB + Índice: 0.00MB + Motor InnoDB
      3Q49LHP_yith_wcwl: Datos: 0.02MB + Índice: 0.02MB + Motor InnoDB
      3Q49LHP_yith_wcwl_lists: Datos: 0.02MB + Índice: 0.03MB + Motor InnoDB
      3Q49LHP_yith_ywrac_email_log: Datos: 0.02MB + Índice: 0.00MB + Motor InnoDB
      3Q49LHP_yoast_indexable: Datos: 0.33MB + Índice: 0.34MB + Motor InnoDB
      3Q49LHP_yoast_indexable_hierarchy: Datos: 0.02MB + Índice: 0.05MB + Motor InnoDB
      3Q49LHP_yoast_migrations: Datos: 0.02MB + Índice: 0.02MB + Motor InnoDB
      3Q49LHP_yoast_primary_term: Datos: 0.02MB + Índice: 0.03MB + Motor InnoDB
      3Q49LHP_yoast_seo_links: Datos: 0.05MB + Índice: 0.03MB + Motor InnoDB
      3Q49LHP_ywdpd_exclusion_list_table: Datos: 0.02MB + Índice: 0.03MB + Motor InnoDB
      
      ### Post Type Counts ###
      
      attachment: 118
      blocks: 9
      cp_popups: 2
      custom_css: 1
      customize_changeset: 10
      follow_up_email: 3
      nav_menu_item: 4
      page: 26
      post: 4
      product: 9
      product_variation: 6
      revision: 207
      shop_coupon: 351
      shop_order: 104
      shop_order_refund: 2
      ux_template: 7
      wpcf7_contact_form: 7
      ywdpd_discount: 5
      ywrac_cart: 2
      ywrac_email: 2
      
      ### Security ###
      
      Secure connection (HTTPS): ✔
      Hide errors from visitors: ✔
      
      ### Active Plugins (41) ###
      
      ActiveCampaign: por ActiveCampaign – 8.1.10
      Akismet Anti-Spam: por Automattic – 5.0.1
      WordPress CountDown Pro - WebSites/Products Launch: por Lambert Group – 2.5.1
      Editor clásico: por Colaboradores de WordPress – 1.6.2
      Contact Form 7: por Takayuki Miyoshi – 5.6.4
      Convert Pro: por Brainstorm Force – 1.7.4
      Coupon X Discount Pop Up: por Premio – 1.2.2
      Yoast Duplicate Post: por Enrico Battocchi & Team Yoast – 4.5
      GTM4WP: por Thomas Geiger – 1.16.1
      WP ERP - Zendesk: por weDevs – 1.1.0
      Facebook for WooCommerce: por Facebook – 2.6.25
      GDPR Cookie Compliance: por Moove Agency – 4.8.12
      Site Kit by Google: por Google – 1.84.0
      Smash Balloon Instagram Feed: por Smash Balloon – 6.1
      Jetpack: por Automattic – 11.4
      Limit Login Attempts Reloaded: por Limit Login Attempts Reloaded – 2.25.6
      Loco Translate: por Tim Whitlock – 2.6.2
      LoftLoader: por Loft.Ocean – 2.3.8
      Nextend Social Login: por Nextendweb – 3.1.6
      Cupón por registro en WooCommerce: por Enrique J. Ros – 2.1.0
      WC Duplicate Order: por Jamie Gill – 1.7
      Checkout Field Editor for WooCommerce: por ThemeHigh – 1.7.2
      Advanced Order Export For WooCommerce: por AlgolPlus – 3.3.3
      Variation Swatches for WooCommerce: por Emran Ahmed – 2.0.12
      ASM Envíos para WooCommerce: por ASM – 1.9.14
      ASM Valora para WooCommerce: por ASM – 1.9.14
      WooCommerce Email Customizer: por cxThemes – 3.33
      Follow-Up Emails: por WooCommerce – 4.9.28
      WooCommerce Free Gift Coupons: por Kathy Darling – 3.3.3
      WooCommerce Stripe Gateway: por WooCommerce – 6.8.0
      WP Menu Cart: por WP Overnight – 2.12.1
      WooCommerce: por Automattic – 6.9.4 (la actualización a la versión 7.1.0 está disponible)
      Wordfence Security: por Wordfence – 7.7.1
      Yoast SEO: por Equipo Yoast – 19.7.2
      WP Mail SMTP: por WPForms – 3.6.1
      WP Super Cache: por Automattic – 1.9
      Active Campaign & Contact Form 7: por WPoperation – 1.1.8
      YITH Custom ThankYou Page for Woocommerce Premium: por YITH – 1.3.6
      YITH WooCommerce Product Add-ons & Extra Options Premium: por YITH – 3.0.2
      YITH WooCommerce Dynamic Pricing and Discounts Premium: por YITH – 3.5.0
      YITH WooCommerce Recover Abandoned Cart Premium: por YITH – 2.10.0
      
      ### Inactive Plugins (4) ###
      
      Disable Right Click For WP: por Aftab Muni – 1.1.6
      Subscriber Discounts for WooCommerce: por AMP-MODE – 1.5.2
      YITH WooCommerce Color and Label Variations Premium: por YITH – 1.15.0
      YITH WooCommerce Wishlist: por YITH – 3.14.0
      
      ### Dropin Plugins (1) ###
      
      advanced-cache.php: advanced-cache.php
      
      ### Settings ###
      
      API Enabled: –
      Force SSL: –
      Currency: EUR (€)
      Currency Position: right
      Thousand Separator: ,
      Decimal Separator: .
      Number of Decimals: 2
      Taxonomies: Product Types: external (external)
      grouped (grouped)
      simple (simple)
      variable (variable)
      
      Taxonomies: Product Visibility: exclude-from-catalog (exclude-from-catalog)
      exclude-from-search (exclude-from-search)
      featured (featured)
      outofstock (outofstock)
      rated-1 (rated-1)
      rated-2 (rated-2)
      rated-3 (rated-3)
      rated-4 (rated-4)
      rated-5 (rated-5)
      
      Connected to WooCommerce.com: –
      Enforce Approved Product Download Directories: ✔
      
      ### WC Pages ###
      
      Base de la tienda: #6 - /tienda/
      Carrito: #7 - /carrito/
      Finalizar compra: #8 - /finalizar-compra/
      Mi cuenta: #9 - /mi-cuenta/
      Términos y condiciones: #248 - /terminos-de-servicio/
      
      ### Theme ###
      
      Name: Flatsome
      Version: 3.16.0
      Author URL: https://uxthemes.com
      Child Theme: ❌ – Si estás modificando WooCommerce en un tema padre que no has creado personalmente
      te recomendamos utilizar un tema hijo. Ver: Cómo crear un tema hijo
      
      WooCommerce Support: ✔
      
      ### Templates ###
      
      Overrides: flatsome/woocommerce/archive-product.php
      flatsome/woocommerce/cart/cart-empty.php
      flatsome/woocommerce/cart/cart-shipping.php
      flatsome/woocommerce/cart/cart.php
      flatsome/woocommerce/checkout/form-checkout.php
      flatsome/woocommerce/checkout/form-coupon.php
      flatsome/woocommerce/checkout/terms.php
      flatsome/woocommerce/checkout/thankyou.php
      flatsome/woocommerce/content-product-cat.php
      flatsome/woocommerce/content-product.php
      flatsome/woocommerce/content-single-product.php
      flatsome/woocommerce/content-widget-product.php
      La  version 3.7.0 de /var/www/vhosts/7evenbrand.com/httpdocs/wp-content/plugins/woocommerce-email-control/templates/emails/woocommerce/admin-cancelled-order.php está obsoleta. La versión del núcleo es la 4.1.0
      /var/www/vhosts/7evenbrand.com/httpdocs/wp-content/plugins/woocommerce-email-control/templates/emails/woocommerce/admin-failed-order.php
      /var/www/vhosts/7evenbrand.com/httpdocs/wp-content/plugins/woocommerce-email-control/templates/emails/woocommerce/admin-new-order.php
      /var/www/vhosts/7evenbrand.com/httpdocs/wp-content/plugins/woocommerce-email-control/templates/emails/woocommerce/customer-completed-order.php
      /var/www/vhosts/7evenbrand.com/httpdocs/wp-content/plugins/woocommerce-email-control/templates/emails/woocommerce/customer-invoice.php
      La  version 3.7.0 de /var/www/vhosts/7evenbrand.com/httpdocs/wp-content/plugins/woocommerce-email-control/templates/emails/woocommerce/customer-new-account.php está obsoleta. La versión del núcleo es la 6.0.0
      /var/www/vhosts/7evenbrand.com/httpdocs/wp-content/plugins/woocommerce-email-control/templates/emails/woocommerce/customer-note.php
      /var/www/vhosts/7evenbrand.com/httpdocs/wp-content/plugins/woocommerce-email-control/templates/emails/woocommerce/customer-on-hold-order.php
      /var/www/vhosts/7evenbrand.com/httpdocs/wp-content/plugins/woocommerce-email-control/templates/emails/woocommerce/customer-processing-order.php
      /var/www/vhosts/7evenbrand.com/httpdocs/wp-content/plugins/woocommerce-email-control/templates/emails/woocommerce/customer-refunded-order.php
      La  version 3.7.0 de /var/www/vhosts/7evenbrand.com/httpdocs/wp-content/plugins/woocommerce-email-control/templates/emails/woocommerce/customer-reset-password.php está obsoleta. La versión del núcleo es la 4.0.0
      La  version 3.5.4 de /var/www/vhosts/7evenbrand.com/httpdocs/wp-content/plugins/woocommerce-email-control/templates/emails/woocommerce/email-addresses.php está obsoleta. La versión del núcleo es la 5.6.0
      /var/www/vhosts/7evenbrand.com/httpdocs/wp-content/plugins/woocommerce-email-control/templates/emails/woocommerce/email-customer-details.php
      /var/www/vhosts/7evenbrand.com/httpdocs/wp-content/plugins/woocommerce-email-control/templates/emails/woocommerce/email-downloads.php
      /var/www/vhosts/7evenbrand.com/httpdocs/wp-content/plugins/woocommerce-email-control/templates/emails/woocommerce/email-footer.php
      La  version 2.4.0 de /var/www/vhosts/7evenbrand.com/httpdocs/wp-content/plugins/woocommerce-email-control/templates/emails/woocommerce/email-header.php está obsoleta. La versión del núcleo es la 4.0.0
      /var/www/vhosts/7evenbrand.com/httpdocs/wp-content/plugins/woocommerce-email-control/templates/emails/woocommerce/email-order-details.php
      /var/www/vhosts/7evenbrand.com/httpdocs/wp-content/plugins/woocommerce-email-control/templates/emails/woocommerce/email-order-items.php
      La  version 3.3.0 de /var/www/vhosts/7evenbrand.com/httpdocs/wp-content/plugins/woocommerce-email-control/templates/emails/woocommerce/email-styles.php está obsoleta. La versión del núcleo es la 4.0.0
      flatsome/woocommerce/global/breadcrumb.php
      flatsome/woocommerce/global/quantity-input.php
      flatsome/woocommerce/global/wrapper-end.php
      flatsome/woocommerce/global/wrapper-start.php
      flatsome/woocommerce/loop/loop-end.php
      flatsome/woocommerce/loop/loop-start.php
      flatsome/woocommerce/loop/pagination.php
      flatsome/woocommerce/loop/rating.php
      flatsome/woocommerce/loop/result-count.php
      flatsome/woocommerce/loop/sale-flash.php
      flatsome/woocommerce/myaccount/form-login.php
      flatsome/woocommerce/myaccount/navigation.php
      flatsome/woocommerce/notices/error.php
      flatsome/woocommerce/notices/notice.php
      flatsome/woocommerce/notices/success.php
      flatsome/woocommerce/product-searchform.php
      flatsome/woocommerce/single-product/photoswipe.php
      flatsome/woocommerce/single-product/price.php
      flatsome/woocommerce/single-product/product-image.php
      flatsome/woocommerce/single-product/product-thumbnails.php
      flatsome/woocommerce/single-product/rating.php
      flatsome/woocommerce/single-product/related.php
      flatsome/woocommerce/single-product/review.php
      flatsome/woocommerce/single-product/sale-flash.php
      flatsome/woocommerce/single-product/share.php
      flatsome/woocommerce/single-product/short-description.php
      flatsome/woocommerce/single-product/tabs/tabs.php
      flatsome/woocommerce/single-product/title.php
      flatsome/woocommerce/single-product/up-sells.php
      flatsome/woocommerce/single-product-reviews.php
      flatsome/woocommerce/single-product.php
      flatsome/woocommerce/content-product_cat.php
      
      Outdated Templates: ❌
      					
      					
      						Aprende cómo actualizar
      
      ### Admin ###
      
      Enabled Features: activity-panels
      analytics
      coupons
      customer-effort-score-tracks
      experimental-products-task
      experimental-import-products-task
      experimental-fashion-sample-products
      experimental-product-tour
      shipping-smart-defaults
      shipping-setting-tour
      homescreen
      marketing
      mobile-app-banner
      navigation
      onboarding
      onboarding-tasks
      remote-inbox-notifications
      remote-free-extensions
      payment-gateway-suggestions
      shipping-label-banner
      subscriptions
      store-alerts
      transient-notices
      wc-pay-promotion
      wc-pay-welcome-page
      
      Disabled Features: minified-js
      new-product-management-experience
      settings
      
      Daily Cron: ✔ Next scheduled: 2022-11-19 05:38:58 +01:00
      Options: ✔
      Notes: 60
      Onboarding: skipped
      
      ### Action Scheduler ###
      
      Completo: 1.441
      Oldest: 2022-10-19 20:14:27 +0200
      Newest: 2022-11-18 21:07:26 +0100
      
      Pendiente: 5
      Oldest: 2022-11-19 03:54:18 +0100
      Newest: 2022-11-21 15:29:08 +0100
      
      ### Status report information ###
      
      Generated at: 2022-11-18 21:28:13 +01:00
      

      La página con la que necesito ayuda: [accede para ver el enlace]

    • Buenas!
      Estoy realizando un nuevo proyecto y al hacer pruebas de que el WooCommerce funciona correctamente me encuentro con el siguiente problema:
      Al empezar el proyecto no tengo configurada ninguna pasarela de pago por lo que las pruebas las hago con la opción de pago por cheque y transferencia bancaria.

      Bien, cuando realizo todo el proceso de compra y termino la compra, en el gestor me encuentro con que se han creado dos pedidos simultáneamente con los mismos datos, cambiando únicamente el número de pedido y su estado. Por cada compra que realizo me genera internamente dos pedidos uno con estado «Pendiente de pago» y otro «En espera».

      El email de confirmación del pedido llega del pedido que corresponde al estado «En espera».

      No se me ocurre cómo solventar el problema.
      He mirado la configuración de WooCommerce pero no veo nada fuera de lugar.

      No puedo poner enlace porque es un hosting con dominio inventado y sólo lo visualizo desde el ordenador mediante el cambio en el fichero hosts.

      La página con la que necesito ayuda: [accede para ver el enlace]

    Moderador jose64

    (@jose64)

    Hola.

    Bienvenido al foro de soporte. Los correos desde donde se envían los pedidos nuevos es un correo de administración, siempre va a enviar los pedidos al administrador, no es una lista de suscripción. De hecho, el correo que se envía no tiene opciones de cancelar por esa misma razón, no es una suscripción sino una notificación y no hay ninguna obligación legal que obligue a permitir cancelar la notificaciones, todo lo contrario.

    Seguramente el problema sea una lista propia de tu gestor de correo electrónico, ¿revisaste la carpeta de spam o correo no deseado? Es posible que encuentres ahí los correos que no recibes. Yo acabo de hacer un pedido en tu tienda y me ha llegado la notificación de WooCommerce con todos los datos a excepción del Nº de pedido (puedes eliminar el pedido 20407), tienes que revisar la plantilla del correo porque tiene ese detalle y un logo que no está.

    De todas formas en el repositorio tienes plugins para hacer el diagnóstico de los envíos, por ejemplo:

    Check & Log Email

    WP Mail Log

    Con estos plugins puedes asegurarte de que tu WordPress te envía los correos.

    Comenta si tienes alguna duda y, por favor, recuerda marcar el debate como resuelto cuando así sea, de esta forma nos ayudas a mantener el foro al día.

    Hola de nuevo @wotan6891,

    para borrar ese contenido podrías insertar el siguiente código:

    function hide_woo_parts(){
    	$screen = get_current_screen();
    	
    	if($screen->base == 'woocommerce_page_wc-settings' && $_GET['tab'] == 'products'){
    		?>
    <style>
    	.subsubsub li:not(:first-child):not(:nth-child(2)) {
    		display: none;
    	}
    <style>
    		<?php
    	}elseif($screen->base == 'woocommerce_page_wc-settings' && $_GET['tab'] == 'email'){
    		?>
    <style>
    	#email_template_options-description ~ h2, #email_template_options-description ~ h2 ~ .form-table {
    		display: none !important;
    	}
    <style>
    		<?php
    	}
    	
    }
    add_action("admin_head", "hide_woo_parts");

    Espero haberte ayudado, saludos

    Cuando los debates estén resueltos, por favor, márcalos como resueltos
    🙂

    Moderador jose64

    (@jose64)

    Hola @diegosanchez93

    Muchas gracias por compartir la solución, has captado a la perfección el espíritu del foro: compartir conocimiento. A continuación pongo el código por si la fuente original falla, así como los enlaces a los plugins que usaste:

    Snippet que cambia el rol de usuario del cliente a Cliente Premium cuando compra un determinado producto en WooCommerce:

    // Cambia el rol de usuario del cliente a "Cliente premium" cuando compra uno o varios productos determinados
    add_action( 'init', 'add_premium_customer_role' );
    function add_premium_customer_role(){
    
        	$customer_role = get_role( 'customer' );
        	add_role( 'premium_customer', __( 'Cliente Premium', 'woocommerce' ), $customer_role->capabilities );
    }
    
    add_action( 'woocommerce_checkout_order_processed', 'change_user_role_by_product_purchased', 10, 2 );
    function change_user_role_by_product_purchased( $order_id, $posted ){
    	$order = new WC_Order( $order_id );
    	$new_role = 'premium_customer';
    	$products_list = array( '590' ); // Aquí debes definir la lista de productos para los que se aplicará el cambio de rol
    
    	// Obtiene el email del pedido
    	if( '3.0.0' <= WC()->version ){
    
    		$billing_email = $order->get_billing_email();
    	}else{
    
    		// Mantiene compatibilidad con WooCommerce <= 2.6.x
    		$order_meta = get_post_meta( $order_id );
    		$billing_email = $order_meta[ '_billing_email' ][0];
    	}
    
    	// Comprueba si el usuario ya está registrado con ese email
    	if( email_exists( $billing_email ) ) {
    
    		foreach ( $order->get_items() as $product ) {
    
    			if ( in_array( $product[ 'product_id' ], $products_list ) ) {
    
          				$user = get_user_by( 'email', $billing_email );
          				$user->set_role( $new_role );
    			}
    		}
       	}	
    }

    Para personalizarlo con tu producto solo tienes que cambiar el número 590 de la línea 13 por el ID (o IDs de los productos separados por coma si son varios) para los que quieras aplicar esta funcionalidad.

    Plugins:

    Code Snippets

    Product Visibility by User Role for WooCommerce

    Conditional Discounts for WooCommerce – A simple yet complete woocommerce dynamic pricing plugin

    Marco el debate como resuelto.

    • Hola,

      Hasta hace muy poco, en los emails de «Nuevo Pedido» que recibe el admin de la tienda y el cliente, aparecía la fecha de la reserva de la habitación (es una web de un hotel).

      Ahora, en el email, ya no aparece la fecha de la reserva sin haber realizado ningún cambio, excepto la actualización de Woocommerce a la versión actual (6.9.4).

      Saben dónde puede estar el fallo?

      Gracias

    • Hola buen día!!
      Tengo problemas técnicos con mi tienda web, específicamente en el momento de realizar el Checkout. Me aparece un mensaje que dice «Ha hábido un error critico en esta web»

      WordPress me ha enviado un email con los siguiente datos:

      WordPress ha detectado un error con uno de tus plugins, WooCommerce. 
      
      Detalles del error
      ==================
      Se ha producido un error del tipo E_ERROR en la línea 141 del archivo /home1/quetzaly/public_html/wp-content/plugins/woocommerce/includes/wc-formatting-functions.php. Mensaje de error: Uncaught TypeError: Unsupported operand types: string * float in /home1/quetzaly/public_html/wp-content/plugins/woocommerce/includes/wc-formatting-functions.php:141
      Stack trace:
      #0 /home1/quetzaly/public_html/wp-content/plugins/woo-usps-simple-shipping/src/Calc/Product.php(27): wc_get_dimension('', 'in')
      #1/home1/quetzaly/public_html/wp-content/plugins/woo-usps-simple-shipping/src/Calc/Package.php(38): Dgm\UspsSimple\Calc\Product::fromWcProduct(Object(WC_Product_Simple))
      #2 /home1/quetzaly/public_html/wp-content/plugins/woo-usps-simple-shipping/src/ShippingMethod.php(193): Dgm\UspsSimple\Calc\Package::fromWcPackage(Array, Object(Dgm\UspsSimple\Calc \Area))
      #3 /home1/quetzaly/public_html/wp-content/plugins/woo-usps-simple-shipping/src/ShippingMethod.php(116): Dgm\UspsSimple\ShippingMethod->calc(Array, Object(Dgm \UspsSimple\Debug))
      #4 /home1/quetzaly/public_html/wp-content/plugins/woocommerce/includes/abstracts/abstract-wc-shipping-method.php(233): Dgm\UspsSimple\ShippingMethod->calculate_shipping(Array )
      #5 /home1/quetzaly/public_html/wp-content/plugins/woocommerce/includes/class-wc-shipping.php(348): WC_Shipping_Method->get_rates_for_package(Array)
      #6 /home1/quetzaly/public_html/wp-content/ plugins/woocommerce/includes/class-wc-shipping.php(260): WC_Shipping->calculate_shipping_for_package(Array, 0)
      #7 /home1/quetzaly/public_html/wp-content/plugins/woocommerce/includes/class-wc-cart .php(1420): WC_Shipping->calculate_shipping(Array)
      #8 /home1/quetzaly/public_html/wp-content/plugins/woocommerce/packages/woocommerce-blocks/src/StoreApi/Routes/V1/AbstractCartRoute.php(165) : WC_Cart->calculate_shipping()
      #9 /home1/quetzaly/public_html/wp-content/plugins/woocommerce/packages/woocommerce-blocks/src/StoreApi/Routes/V1/AbstractCartRoute.php(69): Automattic\WooCommerce\StoreApi\Routes\V1\AbstractCartRoute- >calculate_totals()
      #10 /home1/quetzaly/public_html/wp-includes/rest-api/class-wp-rest-server.php(1143): Automattic\WooCommerce\StoreApi\Routes\V1\AbstractCartRoute->get_response(Object (WP_REST_Request))
      #11 /home1/quetzaly/public_html/wp-includes/rest-api/class-wp-rest-server.php(990): WP_REST_Server->respond_to_request(Object(WP_REST_Request), '/wc/store/ v1/ca...', Array, NULL)
      #12 /home1/quetzaly/public_html/wp-includes/rest-api.php(519): WP_REST_Server->dispatch(Object(WP_REST_Request))
      #13
      /home1/quetzaly/public_html/wp-includes/rest-api.php(2868): rest_do_request(Object(WP_REST_Request))
      #14 /home1/quetzaly/public_html/wp-content/plugins/woocommerce/packages/woocommerce-blocks/ src/Assets/AssetDataRegistry.php(317): rest_preload_api_request(Array, '/wc/store/v1/ca...')
      #15 /home1/quetzaly/public_html/wp-content/plugins/woocommerce/packages/woocommerce- blocks/src/BlockTypes/AllProducts.php(40): Automattic\WooCommerce\Blocks\Assets\AssetDataRegistry->hydrate_api_request('/wc/store/v1/ca...')
      #16 /home1/quetzaly/public_html/wp -content/plugins/woocommerce/packages/woocommerce-blocks/src/BlockTypes/AllProducts.php(33): Automattic\WooCommerce\Blocks\BlockTypes\AllProducts->hydrate_from_api()
      #17 /home1/quetzaly/public_html/wp-content/plugins/woocommerce/packages/woocommerce-blocks/src/BlockTypes/AbstractBlock.php(98): Automattic\WooCommerce\Blocks\BlockTypes\AllProducts->enqueue_data()
      #18 /home1/quetzaly/public_html/wp-includes/class-wp-hook.php(307): Automattic\WooCommerce\Blocks\BlockTypes\AbstractBlock->enqueue_editor_assets('')
      #19 /home1/quetzaly/public_html/wp-includes /class-wp-hook.php(331): WP_Hook->apply_filters(NULL, Array)
      #20 /home1/quetzaly/public_html/wp-includes/plugin.php(476): WP_Hook->do_action(Array)
      #21 /home1/quetzaly/public_html/wp-admin/edit-form-blocks.php(270): do_action('enqueue_block_e...')
      #22 /home1/quetzaly/public_html/wp-admin/post.php(187) : require('/casa1/quetzaly...')
      #23 {principal}
        lanzada

      Que procede para solucionar este problema?
      De antemano les agradezco su respuesta!!

      • Este debate fue modificado hace 1 año, 8 meses por jose64. Razón: etiquetar código

      La página con la que necesito ayuda: [accede para ver el enlace]

    Iniciador del debate tvalades

    (@tvalades)

    Hola @kallookoo
    Lo gestiono con el propio WooCommerce, no uso plugin para eso.
    Si, tenemos un entorno de pruebas en un subdominio pero nos hemos asegurado de que ls pedidos no pertenecieran a esa. La ruta que marca es el dominio raíz y los emails llegan al cliente. Si fuera en pruebas me llegaría a mi.

    Es raro 🙁

    • Antes de nada, agradecer la posible ayuda prestada. Sobre todo para identificar los problemas y poder darles solución. He intentado investigar por mi cuenta pero me ha sido imposible, así que acudo aquí como último recurso.

      El problema principal de mi sitio web (www.bonsailevante.com) viene desde WordPress. No manda correos electrónicos a los clientes ni a mi desde Woocommerce, he intentado mandar correos desde Check eMail y no llegan, subsecuentemente el WP mail SMTP me ha dado errores y en pantallas de datos dónde se conecta a Worpress, como en los plugin, me aparecen ventanas de error.

      Es como si no pudiese salir información desde mi sitio web.

      Por otro lado hay tareas programadas que no se ejecutan y al no conectar a WordPress no sé si mis plugins están actualizados o no.

      Todos estos errores aparecieron sin motivo alguno una noche hace varios días y hasta el día de hoy. Imagino que muchos se solucionarán una vez que pueda salir información desde mi sitio web y pueda reconfigurar por ejemplo el WP Mail SMTP.

      Procedo a copiar los errores críticos y mejoras que me recomienda la salud del sitio y considero importantes. Pido disculpas si son varios pero de verdad no sé qué hacer. De nuevo agradezco de antemano toda la ayuda posible:

      ERRORES CRÍTICOS:

      La API REST ha encontrado un error (Rendimiento)

      La API REST es una forma en que WordPress y otras aplicaciones se comunican con el servidor. Un ejemplo es la pantalla del editor de bloques, que se basa en esto para mostrar y guardar tus publicaciones y páginas.

      Ha fallado la solicitud a la API REST debido a un error.
      Error: cURL error 6: Could not resolve host: http://www.bonsailevante.com; Unknown error (http_request_failed)

      No se ha podido conectar con WordPress.org (Seguridad)

      La comunicación con los servidores de WordPress se usa para comprobar nuevas versiones y, también, para instalar y actualizar el núcleo de WordPress, los temas o los plugins.

      Error Tu sitio no ha podido conectar con WordPress.org en api.wordpress.org, y ha devuelto el error: cURL error 6: Could not resolve host: api.wordpress.org; Unknown error

      Tu sitio no ha podido realizar una solicitud de loopback. (Rendimiento)

      Las solicitudes de loopback se utilizan para ejecutar eventos programados y también los utilizan los editores integrados para temas y plugins para verificar la estabilidad del código.

      La solicitud de loopback a tu sitio ha fallado. Eso quiere decir que las características que dependan de ello no van a funcionar correctamente.
      Error: cURL error 6: Could not resolve host: http://www.bonsailevante.com; Unknown error (http_request_failed)

      Could not reach wpmailsmtp.com (WP Mail SMTP)

      Communicating with the wpmailsmtp.com servers is used to check for new plugin versions, and to verify license keys.

      Error Your site is unable to reach wpmailsmtp.com, and returned the error: cURL error 6: Could not resolve host: wpmailsmtp.com; Unknown error

      MEJORAS RECOMENDADAS:

      Servidor SQL anticuado (Rendimiento)

      El servidor SQL es una parte de software obligatoria que la base de datos de WordPress usa para almacenar el contenido y ajustes de tu sitio.

      Para un rendimiento óptimo y por razones de seguridad, deberías plantearte ejecutar la versión 10.0 o superior de MariaDB. Contacta con tu empresa de alojamiento web para corregirlo.

      Un evento programado ha fallado (Rendimiento)

      El evento programado, action_scheduler_run_queue, no se ha podido ejecutar. Tu sitio todavía funciona, pero esto puede indicar que las entradas programadas o las actualizaciones automáticas no funcionen como deberían.

      Ha ocurrido un error al comprobar si tu sitio puede ser encontrado por los motores de búsqueda (SEO)

      Ryte ofrece una comprobación gratuita de indexabilidad para los usuarios de Yoast SEO. La petición a Ryte para que compruebe si tu sitio pueden encontrarlo los motores de búsqueda falló debido a un error.

      Detalles del error: cURL error 6: Could not resolve host: indexability.yoast.onpage.org; Unknown error (http_request_failed)
      Si este es un sitio en vivo, se recomienda que averigües por qué ha fallado la comprobación.

      Las actualizaciones en segundo plano pueden no estar funcionando correctamente (Seguridad)

      Las actualizaciones en segundo plano garantizan que WordPress se puede actualizar automáticamente si se publica una actualización de seguridad para la versión que estás utilizando actualmente.

      Aprobado No se han detectado sistemas de control de versiones.
      Aprobado Tu instalación de WordPress no necesita credenciales de FTP para realizar las actualizaciones.
      Advertencia No se ha podido recuperar una lista de las sumas de comprobación para WordPress 6.0. Esto podría significar que las conexiones a WordPress.org están fallando.

      Email domain issues detected (WP Mail SMTP)

      Current from email domain: gmail.com
      Domain Check Results

      cURL error 28: Resolving timed out after 5513 milliseconds

      En caso de necesitar cualquier información por favor no duden en pedirla.

      Agradecido por la posible ayuda.

      Un saludo,

      Guillermo. Bonsai Levante.

    Moderador José Arcos

    (@josearcos)

    Hola, @cruzfer. Antes que nada, disculpa la demora en contestarte, este foro está gestionado por voluntarios y no siempre tenemos la capacidad de responder rápidamente.

    En una búsqueda rápida por Google encontré esto: https://www.hungred.com/how-to/woocommerce-email-verification-wordpress-code/

    Espero que te sirva, un saludo.

    • Estoy creando una tienda con WooCommerce y quisiera que los usuarios verificaran el correo electrónico con el que se registran, para evitar problemas.
      He visto algún plugin, pero mi pregunta es si alguien puede ayudarme con el código necesario para crear esta funcionalidad.
      Cuando un nuevo usuario se registra, debe verificar el correo electrónico con el que se quiere registrarse.

      ¿ Seria muy difícil de implementar para alguien que aún no maneja bien PHP
      Gracias

    • Estoy creando una tienda con WooCommerce y quisiera que los usuarios verificaran el correo electrónico con el que se registran, para evitar problemas.
      He visto algún plugin, pero mi pregunta es si alguien puede ayudarme con el código necesario para crear esta funcionalidad.
      Cuando un nuevo usuario se registra, debe verificar el correo electrónico con el que se quiere registrarse.

      ¿ Seria muy difícil de implementar para alguien que aún no maneja bien PHP
      Gracias

    • Hola a todos espero esten muy bien bueno
      les cuento, por problemas de compatibilidad de plugin de envios no pude instalar ningun plugin para modificar la página del checkout de la tienda y me aventure a colocar codigo en el archivo function del theme para agregar los campos solicitados, el tema es que no se nada de codigo y buscando encontre algunos articulos de como agregar el nif y otros campos otros y copiando probando logre que se vieran los campos que necesitaba en en front end el problema es que la pagina del pedido no los logro visualizar solo en campos personalizados copio el codigo pido disculpas a los puristas de código.
      Me gustaría aprender pero no se donde o que curso pueda servirme.
      esto son los campos
      https://www.neuromav.cl/wp-content/uploads/2022/03/captura1.jpg
      Este es el codigo que agregue

      /**
       * Añade el campo Rut a la página de checkout de WooCommerce marzo-2022
       */
      add_action( 'woocommerce_after_order_notes', 'agrega_mi_campo_personalizado' );
       
      function agrega_mi_campo_personalizado( $checkout ) {
       
          echo '<div id="additional_checkout_field"><h2>' . __('Información adicional') . '</h2>';
       
          woocommerce_form_field( 'rut', array(
              'type'          => 'text',
              'class'         => array('my-field-class form-row-wide'),
              'label'         => __('RUT'),
              'placeholder'   => __('Ej: 99999999D'),
              ), $checkout->get_value( 'rut' ));
       
          echo '</div>';
      }
      /**
      /**
       * Actualiza la información del pedido con el nuevo campo
       */
      add_action( 'woocommerce_checkout_update_order_meta', 'actualizar_info_pedido_con_nuevo_campo_un' );
       
      function actualizar_info_pedido_con_nuevo_campo_un( $order_id ) {
          if ( ! empty( $_POST['rut'] ) ) {
              update_post_meta( $order_id, 'RUT', sanitize_text_field( $_POST['rut'] ) );
          }
      }
      
      /**
       * Muestra el valor del nuevo campo NIF en la página de edición del pedido
       */
      add_action( 'woocommerce_admin_order_data_after_billing_address', 'mostrar_campo_personalizado_en_admin_pedido', 10, 1 );
       
      function mostrar_campo_personalizado_en_admin_pedido($order){
          echo '<p><strong>'.__('RUT').':</strong> ' . get_post_meta( $order->id, 'RUT', true ) . '</p>';
      }
      /**
       * Incluye el campo NIF en el email de notificación del cliente
       */
       
      add_filter('woocommerce_email_order_meta_keys', 'muestra_campo_personalizado_email');
       
      function muestra_campo_personalizado_email( $keys ) {
          $keys[] = 'RUT';
          return $keys;
      }
      
      /**
       * Añade el campo profesion a la página de checkout de WooCommerce 03-2022
       */
      
      add_action('woocommerce_after_checkout_billing_form','agrega_mi_campo_personalizado_prof');
       
      function agrega_mi_campo_personalizado_prof( $checkout_on ) {
      
          woocommerce_form_field( 'profesion', array(
              'type'          => 'text',
              'class'         => array('my-field-class form-row-wide'),
              'label'         => __('Profesión'),
              'placeholder'   => __('Fonoaudiologo..'),
              ), $checkout_on->get_value( 'profesion' ));
      
      }
      /**
      * Funciones para agregar campos personalizados agrego campos selest-03-2022
      *Select
      */
      
      add_action('woocommerce_after_checkout_billing_form','claserama_add_select_prefered_contact_anexper');
      function claserama_add_select_prefered_contact_anexper($checkout_to){
          woocommerce_form_field('experiencia',array(
              'type' => 'select', //textarea, text,select, radio, checkbox, password
              'class' => array('form-row-wide'), // un array puede ser la clase 'form-row-wide', 'form-row-first', 'form-row-last'
              'label' => 'Años de Experiencia',
              'options' => array( //opciones para un select o un input radio
                  '' => 'Selecciona uno',
                  'egresado' => 'Recién egresado',
                  'un_anio' => 'Un años',
                  'dos_anio' => 'Dos años',
      	        'tres_anio' => 'Tres años',
      			'mas_anio' => 'Más años'
              )
              ), $checkout_to->get_value('experiencia')
          );
      }
      
      add_action('woocommerce_after_checkout_billing_form','claserama_add_select_prefered_conoc');
      
      function claserama_add_select_prefered_conoc($checkout){
          woocommerce_form_field('conocimiento',array(
              'type' => 'select', 
              'class' => array('form-row-wide'), 
              'label' => 'Nivel de Conocimiento',
              'options' => array( 
                  '' => 'Selecciona uno',
      			'Muy_basico' => 'Muy Básico',
                  'Basico' => 'Básico',
                  'Intermedio' => 'Intermedio',
                  'Avanzado' => 'Avanzado'
              )
              ), $checkout->get_value('conocimiento')
          );
      }
      	    
      /**
       * FIN DE Añade el campo profesion a la página de checkout de WooCommerce 03-2022
       */
      
      /**
       * Actualiza la información del pedido con el nuevo campo
       */
      add_action( 'woocommerce_checkout_update_order_meta', 'actualizar_info_pedido_con_nuevo_campo' );
       
      function actualizar_info_pedido_con_nuevo_campo( $order_id_on ) {
          if ( ! empty( $_POST['profesion'] ) ) {
              update_post_meta( $order_id_on, 'Profesión', sanitize_text_field( $_POST['profesion'] ) );
          }
      }
      
      add_action( 'woocommerce_checkout_update_order_meta', 'actualizar_info_pedido_con_nuevo_campo_to' );
       
      function actualizar_info_pedido_con_nuevo_campo_to( $order_id_to ) {
          if ( ! empty( $_POST['experiencia'] ) ) {
              update_post_meta( $order_id_to, 'Años de experiencia', sanitize_text_field( $_POST['experiencia'] ) );
          }
      }
      
      add_action( 'woocommerce_checkout_update_order_meta', 'actualizar_info_pedido_con_nuevo_campo_tre' );
       
      function actualizar_info_pedido_con_nuevo_campo_tre( $order_id_tre ) {
          if ( ! empty( $_POST['conocimiento'] ) ) {
              update_post_meta( $order_id_tre, 'Nivel de conocimiento', sanitize_text_field( $_POST['conocimiento'] ) );
          }
      }
      
      /**
       * FIN DE Actualiza la información del pedido con el nuevo campo
       */
      
      /**
      * Mostrar los valores de los campos personalizados adicionales en la vista de la orden en el administrador
      */
      add_action( 'woocommerce_admin_order_data_after_billing_address', 'mostrar_campo_personalizado_en_admin_pedido_one', 10, 1 );
      
      function mostrar_campo_personalizado_en_admin_pedido_one($order_on){
          echo '<p><strong>'.__('Profesión').':</strong> ' . get_post_meta( $order_on->id, 'profesion', true ) . '</p>';
      }
      add_action('woocommerce_admin_order_data_after_billing_address','mostrar_campo_personalizado_en_admin_pedido_to', 10, 1 );
      
      function mostrar_campo_personalizado_en_admin_pedido_to($order_to){
          echo '<p><strong>'.__('Años de Experiencia').':</strong> ' . get_post_meta( $order_to->id, 'experiencia',true) . '</p>';
      }
      add_action('woocommerce_admin_order_data_after_billing_address','mostrar_campo_personalizado_en_admin_pedido_tre', 10, 1 );
      
      function mostrar_campo_personalizado_en_admin_pedido_tre($order_tre){
          echo '<p><strong>'.__('Nivel de Conocimiento').':</strong> ' . get_post_meta( $order_tre->id, 'conocimiento',true ) . '</p>';
      }
      
      /**
      * FIN DE Mostrar los valores de los campos personalizados adicionales en la vista de la orden en el administrador
      */

      Pero no me esta agregando la información en esta zona
      https://www.neuromav.cl/wp-content/uploads/2022/03/Captura2.jpg

      Que pasa con el codigo. porque no funciona. para aprender.

      desde ya muchas gracias
      saludos

      La página con la que necesito ayuda: [accede para ver el enlace]

    Moderador Fernando Tellado

    (@fernandot)

    Ahí entonces, para más cambios, tienes que editar las plantillas de correo de WooCommerce. Puedes usar la documentación oficial (https://woocommerce.com/posts/how-to-customize-emails-in-woocommerce/) o un plugin aparte.

Viendo 15 resultados - del 46 al 60 (de un total de 374)