Pregunta sobre Checkout Manager for WooCommerce de Wordpress:

Los campos personalizados ya no están en los correos electrónicos

Un usuario preguntó 👇

* WooCommerce Checkout Manager Versión 4.5.7 * WooCommerce 3.7.1 * WordPress 5.2.4

No noté errores.

Antes de hoy, todos los campos personalizados de WooCommerce Checkout Manager se incluían en mis correos electrónicos de notificación para nuevos pedidos, pero ahora los campos personalizados no están incluidos en los correos electrónicos. Una cosa en la que puedo pensar es que WordPress podría actualizarse automáticamente hoy.

¿Alguna idea?

(@logicalnot)

Hace 1 año, 4 meses

Tengo la misma pregunta. Continuo.

(@corytrevor)

Hace 1 año, 4 meses

Yo también.

(@ peterfz30)

Hace 1 año, 4 meses

Mismo problema, siguiendo

(@ stonethrow11)

Hace 1 año, 4 meses

En la misma pregunta también

(@ shazliyana97)

Hace 1 año, 4 meses

Yo también

(@wigster)

Hace 1 año, 4 meses

+1

(@wigster)

Hace 1 año, 4 meses

Parece que se han realizado algunas actualizaciones relativamente importantes al mirar el código del plugin. Observo que hay dos líneas en particular que se han omitido:
/new/class-wooccm.php
Línea 40:
//include_once( WOOCCM_PLUGIN_DIR . 'new/controller/class-wooccm-order-email-controller.php' );

y
/new/view/backend/pages/parts/header.php
Línea 14:
//$sections['email'] = esc_html__('Email', 'woocommerce-checkout-manager');

Traté de descomprimirlos, pero eso no ha ayudado ni me ha brindado otras opciones todavía.

Esta respuesta fue modificada hace 1 año, 4 meses.

(@ catkins10)

Hace 1 año, 4 meses

Tengo el mismo problema. Tengo un campo de área de texto adicional llamado myfield1 y no sé cómo restaurarlo en el correo electrónico de la línea de comandos (admin-new-order.php).

gracias

(@quadlayers)

Hace 1 año, 4 meses

Hola

la función de correo electrónico ya no es compatible

el plugin estaba lleno de errores y deberíamos tomar algunos deseos indeseables para mantenerlo

Como sabe que se ha reconstruido todo el panel y ahora el equipo está evaluando los próximos pasos bajo estas características, ya que deberían reescribirse desde cero, es probable que se incluyan en una versión premium.

sin embargo, siempre puede volver a las versiones anteriores del autor en la sección avanzada

simplemente vaya a VERSIONES ANTERIORES y seleccione 4.3.2, que es la última versión sin cambios

Checkout Manager for WooCommerce

gracias por entender

Esta respuesta fue modificada hace 1 año, 4 meses.

(@ stonethrow11)

Hace 1 año, 4 meses

Si va a hacer un cambio tan grande, los usuarios deben estar informados de alguna manera,

Sus plugins no están instalados y hay uno mejor instalado Para otros que han estado usando este plugin, hay mejores que este ahora que se han eliminado en gran medida.

(@simonno)

Hace 1 año, 4 meses

Estoy muy agradecido de que se haya hecho cargo de la propiedad. Pero este es un gran problema para mí = (

(@wigster)

Hace 1 año, 4 meses

Esta es una gran pregunta: a la luz de esto, querré desembolsar este plugin y reemplazarlo.

(@quadlayers)

Hace 1 año, 4 meses

hemos reescrito el código antiguo para ti

puede incluir esto en functions.php en sus temas o cargarlo como un plugin



/**
 * Plugin Name: WooCommerce Checkout Manager Email Fix
 * Description: Manages WooCommerce Checkout, the advanced way.
 * Version:     1.0.0
 * Author:      QuadLayers
 * Author URI:  https://www.quadlayers.com
 */
add_action('woocommerce_email_after_order_table', 'wooccm_order_receipt_checkout_details', 10, 3);

function wooccm_order_receipt_checkout_details($order, $sent_to_admin, $plain_text = '') {

  if (class_exists('WOOCCM')) {

    $billing_defaults = WOOCCM()->billing->get_defaults();
    $shipping_defaults = WOOCCM()->shipping->get_defaults();
    $additional_defaults = WOOCCM()->additional->get_defaults();

    $billing = WOOCCM()->billing->get_fields();
    $shipping = WOOCCM()->shipping->get_fields();
    $additional = WOOCCM()->additional->get_fields();

    if (!empty($billing)) {

      foreach ($billing as $btn) {

        if (!in_array($btn['name'], $billing_defaults)) {

          if (( get_post_meta($order->get_id(), sprintf('_%s', $btn['key']), true) !== '' ) &&
                  !empty($btn['label']) &&
                  $btn['type'] !== 'heading' &&
                  $btn['type'] !== 'multiselect' &&
                  $btn['type'] !== 'file' &&
                  $btn['type'] !== 'multicheckbox'
          ) {
            echo $btn['label'] . ': ' . nl2br(get_post_meta($order->get_id(), sprintf('_%s', $btn['key']), true));
            echo "n";
          } elseif (
                  !empty($btn['label']) &&
                  $btn['type'] == 'heading' &&
                  $btn['type'] !== 'multiselect' &&
                  $btn['type'] !== 'file' &&
                  $btn['type'] !== 'multicheckbox'
          ) {
            echo $btn['label'];
            echo "n";
          } elseif (
                  ( get_post_meta($order->get_id(), sprintf('_%s', $btn['key']), true) !== '' ) &&
                  !empty($btn['label']) &&
                  $btn['type'] !== 'heading' &&
                  $btn['type'] !== 'file' &&
                  (
                  $btn['type'] == 'multiselect' || $btn['type'] == 'multicheckbox'
                  )
          ) {
            $value = get_post_meta($order->get_id(), sprintf('_%s', $btn['key']), true);
            $strings = maybe_unserialize($value);
            echo $btn['label'] . ': ';
            if (!empty($strings)) {
              if (is_array($strings)) {
                $iww = 0;
                $len = count($strings);
                foreach ($strings as $key) {
                  if ($iww == $len - 1) {
                    echo $key;
                  } else {
                    echo $key . ', ';
                  }
                  $iww++;
                }
              } else {
                echo $strings;
              }
            } else {
              echo '-';
            }
            echo "n";
          }
        }
      }
    }

    if (!empty($shipping)) {

      foreach ($shipping as $btn) {

        if (!in_array($btn['name'], $shipping_defaults)) {

          if (( get_post_meta($order->get_id(), sprintf('_%s', $btn['key']), true) !== '' ) &&
                  !empty($btn['label']) &&
                  $btn['type'] !== 'heading' &&
                  $btn['type'] !== 'multiselect' &&
                  $btn['type'] !== 'file' &&
                  $btn['type'] !== 'multicheckbox'
          ) {
            echo $btn['label'] . ': ' . nl2br(get_post_meta($order->get_id(), sprintf('_%s', $btn['key']), true));
            echo "n";
          } elseif (
                  !empty($btn['label']) &&
                  $btn['type'] == 'heading' &&
                  $btn['type'] !== 'multiselect' &&
                  $btn['type'] !== 'file' &&
                  $btn['type'] !== 'multicheckbox'
          ) {
            echo $btn['label'];
            echo "n";
          } elseif (
                  ( get_post_meta($order->get_id(), sprintf('_%s', $btn['key']), true) !== '' ) &&
                  !empty($btn['label']) &&
                  $btn['type'] !== 'heading' &&
                  $btn['type'] !== 'file' &&
                  (
                  $btn['type'] == 'multiselect' || $btn['type'] == 'multicheckbox'
                  )
          ) {
            $value = get_post_meta($order->get_id(), sprintf('_%s', $btn['key']), true);
            $strings = maybe_unserialize($value);
            echo $btn['label'] . ': ';
            if (!empty($strings)) {
              if (is_array($strings)) {
                $iww = 0;
                $len = count($strings);
                foreach ($strings as $key) {
                  if ($iww == $len - 1) {
                    echo $key;
                  } else {
                    echo $key . ', ';
                  }
                  $iww++;
                }
              } else {
                echo $strings;
              }
            } else {
              echo '-';
            }
            echo "n";
          }
        }
      }
    }
    
    if (!empty($additional)) {

      foreach ($additional as $btn) {

        if (!in_array($btn['name'], $additional_defaults)) {

          if (( get_post_meta($order->get_id(), sprintf('_%s', $btn['key']), true) !== '' ) &&
                  !empty($btn['label']) &&
                  $btn['type'] !== 'heading' &&
                  $btn['type'] !== 'multiselect' &&
                  $btn['type'] !== 'file' &&
                  $btn['type'] !== 'multicheckbox'
          ) {
            echo $btn['label'] . ': ' . nl2br(get_post_meta($order->get_id(), sprintf('_%s', $btn['key']), true));
            echo "n";
          } elseif (
                  !empty($btn['label']) &&
                  $btn['type'] == 'heading' &&
                  $btn['type'] !== 'multiselect' &&
                  $btn['type'] !== 'file' &&
                  $btn['type'] !== 'multicheckbox'
          ) {
            echo $btn['label'];
            echo "n";
          } elseif (
                  ( get_post_meta($order->get_id(), sprintf('_%s', $btn['key']), true) !== '' ) &&
                  !empty($btn['label']) &&
                  $btn['type'] !== 'heading' &&
                  $btn['type'] !== 'file' &&
                  (
                  $btn['type'] == 'multiselect' || $btn['type'] == 'multicheckbox'
                  )
          ) {
            $value = get_post_meta($order->get_id(), sprintf('_%s', $btn['key']), true);
            $strings = maybe_unserialize($value);
            echo $btn['label'] . ': ';
            if (!empty($strings)) {
              if (is_array($strings)) {
                $iww = 0;
                $len = count($strings);
                foreach ($strings as $key) {
                  if ($iww == $len - 1) {
                    echo $key;
                  } else {
                    echo $key . ', ';
                  }
                  $iww++;
                }
              } else {
                echo $strings;
              }
            } else {
              echo '-';
            }
            echo "n";
          }
        }
      }
    }
  }
}

(@corytrevor)

Hace 1 año, 4 meses

Eso es genial, el código funciona muy bien. ¡Gracias!

¿Hay alguna forma de editar el código para que el diseño sea el mismo que antes con una ruptura completa entre los campos adicionales en el correo electrónico?

(@quadlayers)

Hace 1 año, 4 meses

echo quizás reemplazando » n» con echo «
«

¿Solucionó tu problema??

0 / 0

Deja una respuesta 0

Tu dirección de correo electrónico no será publicada.