Echale un atributo WooCommerce

Estoy usando WooCommerce en uno de los sitio. ¿Es necesario añadir un campo más a la hora de salida pedirle wheteher comprador a emitir factura a su nombre o el nombre de su negocio? ¿Cualquier aconseja cómo hacer eso? ¿O algo como esto ya existe en el comercio Woo? ¿O lo que podría ser la forma más sencilla de hacer eso?.


Solución 1

Como sucede, sólo escribió en su blog sobre este ayer, para saber cómo add a subscribe to mailing list checkbox. Los puntos claves son: Mira el WooCommerce tutorial woocommerce_checkout_fields es un gancho de filtro que permite añadir o modificar lo que campos aparecen en la woocommerce_checkout_update_order_meta forma de pago es un gancho de acción que le permite guardar tus nuevos campos woocommerce_email_order_meta_keys es un gancho de filtro que permite agregar tus nuevos campos para la confirmación de correos electrónicos el nombre que elegiste para guardar el post que meta será su etiqueta en el correo electrónico aquí es el código que usé:
class WooSubscribeCheckbox {

    // add hooks into WooCommerce
    public static function run() {
        add_filter('woocommerce_checkout_fields',
            array(__CLASS__, 'filterWooCheckoutFields'));

        add_action('woocommerce_checkout_update_order_meta',
            array(__CLASS__, 'actionWooCheckoutUpdateOrderMeta'));

        add_filter('woocommerce_email_order_meta_keys',
            array(__CLASS__, 'filterWooEmailOrderMetaKeys'));
    }

    /**
    * add custom fields to WooCommerce checkout
    * @param array fields
    * @return array
    */
    public static function filterWooCheckoutFields($fields) {
        global $woocommerce;

        // add field at end of billing fields section
        $fields['billing']['our_mailing_subscribe'] = array(
            'type' => 'checkbox',
            'label' => 'Subscribe to mailing list?',
            'placeholder' => 'Subscribe to mailing list',
            'required' => false,
            'class' => array(),
            'label_class' => array(),
        );

        return $fields;
    }

    /**
    * save custom order fields
    * @param int $order_id
    */
    public static function actionWooCheckoutUpdateOrderMeta($order_id) {
        if (isset($_POST['our_mailing_subscribe'])) {
            update_post_meta($order_id, 'Subscribe to mailing list',
                stripslashes($_POST['our_mailing_subscribe']));
        }
    }

    /**
    * add our custom fields to WooCommerce order emails
    * @param array $keys
    * @return array
    */
    public static function filterWooEmailOrderMetaKeys($keys) {
        $keys[] = 'Subscribe to mailing list';

        return $keys;
    }

}

WooSubscribeCheckbox::run();
class WooSubscribeCheckbox {

    // add hooks into WooCommerce
    public static function run() {
        add_filter('woocommerce_checkout_fields',
            array(__CLASS__, 'filterWooCheckoutFields'));

        add_action('woocommerce_checkout_update_order_meta',
            array(__CLASS__, 'actionWooCheckoutUpdateOrderMeta'));

        add_filter('woocommerce_email_order_meta_keys',
            array(__CLASS__, 'filterWooEmailOrderMetaKeys'));
    }

    /**
    * add custom fields to WooCommerce checkout
    * @param array fields
    * @return array
    */
    public static function filterWooCheckoutFields($fields) {
        global $woocommerce;

        // add field at end of billing fields section
        $fields['billing']['our_mailing_subscribe'] = array(
            'type' => 'checkbox',
            'label' => 'Subscribe to mailing list?',
            'placeholder' => 'Subscribe to mailing list',
            'required' => false,
            'class' => array(),
            'label_class' => array(),
        );

        return $fields;
    }

    /**
    * save custom order fields
    * @param int $order_id
    */
    public static function actionWooCheckoutUpdateOrderMeta($order_id) {
        if (isset($_POST['our_mailing_subscribe'])) {
            update_post_meta($order_id, 'Subscribe to mailing list',
                stripslashes($_POST['our_mailing_subscribe']));
        }
    }

    /**
    * add our custom fields to WooCommerce order emails
    * @param array $keys
    * @return array
    */
    public static function filterWooEmailOrderMetaKeys($keys) {
        $keys[] = 'Subscribe to mailing list';

        return $keys;
    }

}

WooSubscribeCheckbox::run();
.

Solución 2

Si no quieres código usted mismo. Hay un bonito plugin disponible aquí: http://terrytsang.com/shop/shop/woocommerce-custom-checkout-options/ http://terrytsang.com/shop/shop/woocommerce-custom-checkout-options/ .

Solución 3

El plugin está repleto de ganchos y proporciona una extensive documentation.

Desde este enlace: Tutorial – Customising checkout fields using hooks and filters.

¿Cómo se cargan los campos de extracción en WooCommerce? Los campos de la caja (de facturación y envío) provienen de la clase de los países (
class-wc-countries.php
) y el
get_address_fields
función es así locale configuración se aplicará a los campos dejando WooCommerce activar/desactivar campos basados en la ubicación de los usuarios. Antes de regresar a los campos, WC ejecutará los campos a través de un filtro. Esto les permite ser editados por terceros plugins y temas (y su propio código personalizado).

mi énfasis.




Problemas relacionados

Comprobar si se ha establecido un atributo woocommerce

Agregar mediante programación un producto Variable en WooCommerce

Woocommerce pantalla en blanco variable producto atributo imagen miniatura

Agregar un ACF campos a un atributo WooCommerce

woocommerce agregar campos personalizados como campos de facturación

Woocommerce, hacer pedidos de productos de forma predeterminada en las páginas de código

Anular WooCommerce página específica js en mi tema

wp_get_attachment_link() Añadir el atributo rel si el enlace apunta a imagen directa

shortcode no funciona

¿Woocommerce: es posible reemplazar a descargar un archivo con simplemente leer el archivo en la pantalla?

Personalizar el agregar medios pop-up para incluir la opción de atributo rel

woocommerce opción Fuente rss

Source: Stack Exchange Inc; License: cc by-sa 3.0 Contacto / Contact