Configurações > Produtos
* ---------------------------------------------------------------------- */
add_filter( 'woocommerce_product_settings', 'certisign_settings' );
function certisign_settings( $settings ) {
$novo = array(
array(
'title' => 'Certisign',
'type' => 'title',
'id' => 'certisign_options',
),
array(
'title' => 'Modo redirecionamento',
'desc' => 'Ativar. Com esta opção ligada, o botão do produto captura nome/e-mail/telefone e envia o cliente direto ao link da variação, sem passar pelo carrinho.',
'id' => 'certisign_modo_redirect',
'default' => 'yes',
'type' => 'checkbox',
),
array(
'type' => 'sectionend',
'id' => 'certisign_options',
),
);
return array_merge( $settings, $novo );
}
function certisign_redirect_ativo() {
return 'yes' === get_option( 'certisign_modo_redirect', 'yes' );
}
/* -------------------------------------------------------------------------
* 2. Campo "Link de compra" em cada variação
* ---------------------------------------------------------------------- */
add_action( 'woocommerce_variation_options_pricing', 'certisign_campo_variacao', 10, 3 );
function certisign_campo_variacao( $loop, $variation_data, $variation ) {
woocommerce_wp_text_input(
array(
'id' => '_certisign_link_' . $loop,
'name' => '_certisign_link[' . $loop . ']',
'value' => get_post_meta( $variation->ID, '_certisign_link', true ),
'label' => 'Link de compra (Certisign)',
'placeholder' => 'https://pagamento.certisign.com.br/...',
'desc_tip' => true,
'description' => 'URL para onde o cliente é enviado ao comprar esta variação.',
'wrapper_class' => 'form-row form-row-full',
)
);
}
add_action( 'woocommerce_save_product_variation', 'certisign_salvar_variacao', 10, 2 );
function certisign_salvar_variacao( $variation_id, $loop ) {
if ( ! isset( $_POST['_certisign_link'][ $loop ] ) ) {
return;
}
$link = esc_url_raw( wp_unslash( $_POST['_certisign_link'][ $loop ] ) );
update_post_meta( $variation_id, '_certisign_link', $link );
}
/* -------------------------------------------------------------------------
* 3. Expor o link no objeto da variação (front-end)
* ---------------------------------------------------------------------- */
add_filter( 'woocommerce_available_variation', 'certisign_expor_link', 10, 3 );
function certisign_expor_link( $data, $product, $variation ) {
$data['certisign_link'] = get_post_meta( $variation->get_id(), '_certisign_link', true );
return $data;
}
/* -------------------------------------------------------------------------
* 4. Campos de lead acima do botão
* ---------------------------------------------------------------------- */
add_action( 'woocommerce_before_add_to_cart_button', 'certisign_campos_lead' );
function certisign_campos_lead() {
global $product;
if ( ! certisign_redirect_ativo() || ! $product || ! $product->is_type( 'variable' ) ) {
return;
}
?>
is_type( 'variable' ) ) {
return 'Comprar';
}
return $texto;
}
/* -------------------------------------------------------------------------
* 6. Script do front-end
* ---------------------------------------------------------------------- */
add_action( 'wp_enqueue_scripts', 'certisign_scripts' );
function certisign_scripts() {
if ( ! certisign_redirect_ativo() || ! is_product() ) {
return;
}
wp_register_script( 'certisign-redirect', '', array( 'jquery' ), '1.0', true );
wp_enqueue_script( 'certisign-redirect' );
wp_localize_script(
'certisign-redirect',
'certisignVars',
array(
'ajaxurl' => admin_url( 'admin-ajax.php' ),
'nonce' => wp_create_nonce( 'certisign_lead' ),
)
);
wp_add_inline_script( 'certisign-redirect', certisign_js() );
}
function certisign_js() {
ob_start();
?>
jQuery(function ($) {
var form = $('form.cart');
if (!form.length || !$('.certisign-lead').length) {
return;
}
var link = '';
form.on('found_variation', function (e, variation) {
link = variation.certisign_link || '';
});
form.on('reset_data', function () {
link = '';
});
form.on('submit', function (e) {
e.preventDefault();
var botao = form.find('button[type="submit"]');
var nome = $.trim($('#certisign_nome').val());
var telefone = $.trim($('#certisign_telefone').val());
var email = $.trim($('#certisign_email').val());
if (!nome || !telefone || !email) {
alert('Preencha nome, telefone e e-mail para continuar.');
return;
}
if (!link) {
alert('Escolha o tipo de mídia e a validade para continuar.');
return;
}
botao.prop('disabled', true).addClass('loading');
$.post(certisignVars.ajaxurl, {
action: 'certisign_salvar_lead',
nonce: certisignVars.nonce,
nome: nome,
telefone: telefone,
email: email,
variation_id: form.find('input[name="variation_id"]').val(),
product_id: form.find('input[name="product_id"], button[name="add-to-cart"]').first().val()
}).always(function () {
window.location.href = link;
});
});
});
array(
'name' => 'Leads Certisign',
'singular_name' => 'Lead Certisign',
),
'public' => false,
'show_ui' => true,
'show_in_menu' => 'woocommerce',
'supports' => array( 'title' ),
'capabilities' => array(
'create_posts' => 'do_not_allow',
),
'map_meta_cap' => true,
)
);
}
add_action( 'wp_ajax_certisign_salvar_lead', 'certisign_salvar_lead' );
add_action( 'wp_ajax_nopriv_certisign_salvar_lead', 'certisign_salvar_lead' );
function certisign_salvar_lead() {
check_ajax_referer( 'certisign_lead', 'nonce' );
$nome = sanitize_text_field( wp_unslash( $_POST['nome'] ?? '' ) );
$telefone = sanitize_text_field( wp_unslash( $_POST['telefone'] ?? '' ) );
$email = sanitize_email( wp_unslash( $_POST['email'] ?? '' ) );
if ( ! $nome || ! $telefone || ! is_email( $email ) ) {
wp_send_json_error();
}
$variation_id = absint( $_POST['variation_id'] ?? 0 );
$product_id = absint( $_POST['product_id'] ?? 0 );
$produto = $variation_id ? wc_get_product( $variation_id ) : false;
$lead_id = wp_insert_post(
array(
'post_type' => 'certisign_lead',
'post_status' => 'publish',
'post_title' => $nome . ' — ' . ( $produto ? $produto->get_name() : 'Produto não identificado' ),
)
);
if ( is_wp_error( $lead_id ) ) {
wp_send_json_error();
}
update_post_meta( $lead_id, '_nome', $nome );
update_post_meta( $lead_id, '_telefone', $telefone );
update_post_meta( $lead_id, '_email', $email );
update_post_meta( $lead_id, '_produto_id', $product_id );
update_post_meta( $lead_id, '_variacao_id', $variation_id );
update_post_meta( $lead_id, '_sku', $produto ? $produto->get_sku() : '' );
update_post_meta( $lead_id, '_valor', $produto ? $produto->get_price() : '' );
wp_send_json_success( array( 'lead_id' => $lead_id ) );
}
/* -------------------------------------------------------------------------
* 8. Colunas da listagem de leads
* ---------------------------------------------------------------------- */
add_filter( 'manage_certisign_lead_posts_columns', 'certisign_colunas' );
function certisign_colunas( $colunas ) {
return array(
'cb' => $colunas['cb'],
'title' => 'Lead',
'email' => 'E-mail',
'telefone' => 'Telefone',
'sku' => 'SKU',
'valor' => 'Valor',
'date' => $colunas['date'],
);
}
add_action( 'manage_certisign_lead_posts_custom_column', 'certisign_coluna_conteudo', 10, 2 );
function certisign_coluna_conteudo( $coluna, $post_id ) {
switch ( $coluna ) {
case 'email':
echo esc_html( get_post_meta( $post_id, '_email', true ) );
break;
case 'telefone':
echo esc_html( get_post_meta( $post_id, '_telefone', true ) );
break;
case 'sku':
echo esc_html( get_post_meta( $post_id, '_sku', true ) );
break;
case 'valor':
$valor = get_post_meta( $post_id, '_valor', true );
echo $valor ? wp_kses_post( wc_price( $valor ) ) : '';
break;
}
}
Início / Certificados Digitais / NF-e / Certificado NF-e Pessoa Jurídica
Certificado NF-e Pessoa Jurídica R$ 258.40 – R$ 459.99Faixa de preço: R$258.40 através R$459.99
Maya / Pre-sale Questions
Need Help? Contact Us via WhatsApp
Descrição
Com este certificado digital é possível atribuir a um funcionário da sua empresa a responsabilidade sobre o uso do certificado digital trazendo maior segurança para o seu dia a dia.
Avaliações
Não há avaliações ainda.