Skip to content

Desarrolladores

Esta sección contiene información util para los desarrolladores que deseen extender la funcionalidad de nuestro plugin.

Nuestro plugin está escrito en inglés y traducido al español. Por lo que con cualquier plugin de traducción como por ejemplo Loco Translate vas a poder modificar cualquier cadena de texto mostrada por el plugin.

ARCA para WooCommerce ofrece distintas acciones y filtros que podes incluir en tu plugin o tema, están listados a continuación:

Hook Tipo Argumentos Descripción
wc_afip_locate_template filter $template, $template_name, $template_path, $default_path Permite modificar la ruta a usar al buscar la plantilla de un mail
wc_afip_should_process_order filter $order, $customer_details Permite decidir si la orden debe ser facturada o no
wc_afip_automatic_processor_should_process_order filter $order, $status_from, $status_to Permite decidir si la orden debe ser facturada automáticamente o no
wc_afip_items_before_process filter $items, $customer, $order Permite modificar los productos a utilizar antes de crear una factura
wc_afip_customer_before_process filter $customer, $items, $order Permite modificar los datos del cliente antes de crear una factura
wc_afip_discount_before_process filter $discount, $total, $customer, $items, $order Permite modificar los descuentos de la orden antes de crear una factura
wc_afip_total_before_process filter $total, $discount, $customer, $items, $order Permite modificar el total de la orden antes de crear una factura
wc_afip_response_after_order_process filter $response, $order Permite modificar la respuesta obtenida de ARCA luego de crear una factura
wc_afip_response_after_order_note_create filter $response, $order Permite modificar la respuesta obtenida de ARCA luego de crear una nota de crédito
wc_afip_legacy_checkout_modified action $fields Ocurre luego de agregar un campo al checkout legacy de WooCommerce
wc_afip_blocks_checkout_modified action $fields Ocurre luego de agregar un campo al checkout block de WooCommerce
wc_afip_before_order_process action $order Ocurre antes de crear una factura
wc_afip_after_order_process action $order Ocurre luego de crear una factura
wc_afip_before_credit_note_creation action $order Ocurre antes de crear una factura
wc_afip_after_credit_note_creation action $order Ocurre luego de crear una factura
wc_afip_process_order action $order Esta accion genera una factura para una orden en específico

Los snippets son fragmentos de código que se pueden incluir en tu plugin o tema para agregar funcionalidad adicional a nuestros plugins. Deben ir en el archivo functions.php de tu tema activo y es necesario contar con conocimientos en programación PHP para modificarlos.

Facturar automáticamente solo las órdenes con cierto medio de pago

Sección titulada «Facturar automáticamente solo las órdenes con cierto medio de pago»
add_filter( 'wc_afip_automatic_processor_should_process_order', 'crplugins_automatic_processor_should_process_order', 10, 4 );
function crplugins_automatic_processor_should_process_order( $should_process, $order, $status_from, $status_to ) {
return $order->get_payment_method() === 'bacs';
}

Facturar solo las órdenes con cierto medio de pago

Sección titulada «Facturar solo las órdenes con cierto medio de pago»
add_filter( 'wc_afip_should_process_order', 'crplugins_should_process_order', 10, 3 );
function crplugins_should_process_order( $should_process, $order, $customer_details ) {
return $order->get_payment_method() === 'bacs';
}
add_filter( 'wc_afip_customer_before_process', 'crplugins_always_unidentified_consumer', 10, 3 );
function crplugins_always_unidentified_consumer( $customer, $items, $order ) {
$customer->set_first_name( '' );
$customer->set_last_name( '' );
$customer->set_condition( 'Consumidor Final' );
$customer->get_address()->set_full_address( '' );
$customer->get_document()->set_type( 96 );
$customer->get_document()->set_number( '' );
return $customer;
}