getLists()) { $additional_args['field_name'] = 'list_id'; add_settings_field('acumbamail_list_id', 'Lista: ', 'acumbamail_list_id_field', 'acumbamail', 'acumbamail_main', $additional_args ); } if (isset($options['list_id']) and $options['list_id'] != -1 and $api->getForms($options['list_id'])) { add_settings_field('acumbamail_form_id', 'Formulario: ', 'acumbamail_form_id_field', 'acumbamail', 'acumbamail_main' ); } } function acumbamail_register_woocommerce_settings_section($api) { add_settings_section('acumbamail_woocommerce', __('Configure aquí la lista de Acumbamail a la que se suscribirán automáticamente sus compradores'), 'acumbamail_options_text', 'acumbamail_woocommerce'); acumbamail_show_auth_token_textbox('acumbamail_woocommerce', 'acumbamail_woocommerce'); if ($api->getLists()) { $additional_args['field_name'] = 'woocommerce_list_id'; add_settings_field('acumbamail_woocommerce_list_id', 'Lista: ', 'acumbamail_list_id_field', 'acumbamail_woocommerce', 'acumbamail_woocommerce', $additional_args ); add_settings_field('acumbamail_woocommerce_subscription_sentence', 'Frase checkbox: ', 'acumbamail_subscription_sentence_field', 'acumbamail_woocommerce', 'acumbamail_woocommerce' ); } } function acumbamail_show_auth_token_textbox($page, $section) { add_settings_field('acumbamail_auth_token', 'Auth Token: ', 'acumbamail_auth_token_field', $page, $section ); } function acumbamail_admin_init() { $options = get_option('acumbamail_options'); $api = new AcumbamailAPI('', $options['auth_token']); register_setting('acumbamail_options', 'acumbamail_options', 'acumbamail_options_validate'); acumbamail_register_settings_section($api); acumbamail_register_woocommerce_settings_section($api); } function compose_options_for_select_html_field($options, $selected_value) { foreach ($options as $key => $value) { $selected = ''; if ($selected_value == $key) { $selected = 'selected'; } echo ""; } } function acumbamail_get_form_details() { $options = get_option('acumbamail_options'); $api = new AcumbamailAPI('', $options['auth_token']); $form_details = $api->getFormDetails($options['form_id']); return $form_details; } function acumbamail_options_validate($input) { if (isset($_POST['reset'])) { $output = var_export($_POST, true); return array(); } $options = get_option('acumbamail_options'); foreach ($input as $key => $value) { $options[$key] = $value; } return $options; } function acumbamail_auth_token_field() { $options = get_option('acumbamail_options'); echo ""; } function acumbamail_subscription_sentence_field() { $options = get_option('acumbamail_options'); echo ""; } function acumbamail_list_id_field($additional_args) { $options = get_option('acumbamail_options'); $api = new AcumbamailAPI('', $options['auth_token']); $lists = $api->getLists(); if (!count($lists)) { echo "
No se han podido recuperar sus listas. Asegurese de que ha creado listas y de que su hosting permite tráfico entrante desde Acumbamail.
"; } else { echo "'; } } function acumbamail_form_id_field() { $options = get_option('acumbamail_options'); $api = new AcumbamailAPI('', $options['auth_token']); $forms = $api->getForms($options['list_id']); echo ""; } function acumbamail_options_text() { } function acumbamail_woocommerce_add_subscription_check_field($fields) { $options = get_option('acumbamail_options'); $subscription_sentence = __('¿Desea subscribirse a nuestra lista de correo?', 'woocommerce'); if ($options['subscription_sentence']) { $subscription_sentence = $options['subscription_sentence']; } if ($options['woocommerce_list_id']) { $fields['billing']['acumba_subscribe'] = array( 'type' => 'checkbox', 'label' => $subscription_sentence, 'class' => array('form-row-wide'), 'clear' => true ); } return $fields; } function acumbamail_woocommerce_add_subscription_field_to_order($order_id) { if ($_POST['acumba_subscribe']) { update_post_meta($order_id, 'acumba_subscribe', $_POST['acumba_subscribe']); } } function acumbamail_woocommerce_subscribe_client($order_id) { // Retrieving email from order object $order = new WC_Order($order_id); $acumba_subscribe = get_post_meta($order_id, 'acumba_subscribe', true); if ($acumba_subscribe) { $subscriber_fields = array(); $subscriber_fields['email'] = $order->billing_email; $options = get_option('acumbamail_options'); $api = new AcumbamailAPI('', $options['auth_token']); $api->addSubscriber($options['woocommerce_list_id'], $subscriber_fields); } }