# Como corrigir o cálculo de comissões do Revenue Sharing no Tutor LMS

A comissão errada no Revenue Sharing do Tutor LMS acontece quando o Sharing Percentage está mal configurado, a opção Deduct Fees desconta a taxa antes da divisão ou o ganho foi gravado com um percentual antigo, fazendo o valor pago ao instrutor divergir do esperado.

## O que é comissão errada no Revenue Sharing do Tutor LMS?

O Revenue Sharing do Tutor LMS é o recurso que divide a receita de cada venda de curso entre o administrador da plataforma e o instrutor que criou o curso. Ele é ativado em Tutor LMS, Configurações, Monetization, pela opção Enable Revenue Sharing, e o corte é definido no campo Sharing Percentage, que distribui o valor em porcentagem entre admin e instrutor. Quando esse cálculo sai errado, o instrutor recebe um valor menor ou maior do que o combinado e o relatório de ganhos passa a não bater com as vendas reais.

O ponto que mais gera confusão é o momento em que a comissão é gravada. O Tutor LMS calcula e registra o earning do instrutor no instante da venda, usando o Sharing Percentage vigente naquele momento. Alterar a porcentagem depois não recalcula vendas antigas, então registros gerados antes da mudança permanecem com o valor antigo. Some a isso a opção Deduct Fees, que retira uma taxa fixa ou percentual do valor total antes da divisão, e o resultado é uma comissão que parece errada quando na verdade segue uma configuração que o administrador não revisou.

## Como identificar

- No painel do instrutor, em Dashboard e Earnings, o valor recebido por venda não corresponde ao Sharing Percentage configurado em Monetization.
- O relatório do addon de relatórios (Reports) mostra o ganho do admin e do instrutor somando menos que o preço pago pelo aluno, sem explicação visível.
- Após alterar o Sharing Percentage, vendas novas usam o percentual novo, mas as antigas continuam com o valor anterior no histórico de Earnings.
- O instrutor reclama que a comissão veio menor do que o combinado, e o valor descontado bate exatamente com uma taxa configurada em Deduct Fees.
- Em instalações com a moeda configurada com casas decimais, o total dividido fica com diferença de centavos por causa de arredondamento na divisão percentual.

**Antes de começar:** Antes de alterar o Sharing Percentage, mexer em Deduct Fees ou rodar qualquer consulta na tabela de earnings, faça backup completo do site (arquivos e banco de dados) e teste em um ambiente de staging, porque ajustes em comissões afetam valores financeiros já registrados e são difíceis de reverter manualmente.

## Como prevenir

- Defina o Sharing Percentage e a política de Deduct Fees logo na configuração inicial, antes de liberar o primeiro curso pago, para que todos os earnings nasçam com a divisão correta.
- Documente em que data cada alteração do Sharing Percentage foi feita, já que o Tutor LMS não recalcula vendas antigas e o histórico fica com percentuais diferentes.
- Combine por escrito com cada instrutor se a porcentagem incide sobre o valor cheio ou sobre o valor já com taxa descontada, para alinhar a expectativa com o que o Deduct Fees realmente faz.
- Evite trocar o autor de um curso já vendido; se precisar, registre que os earnings antigos continuam vinculados ao instrutor original.
- Confira o relatório de ganhos periodicamente, somando a parte do admin e do instrutor para garantir que batem com o preço pago pelo aluno menos as taxas.

Erros relacionados

- [Como corrigir instrutores sem permissão para criar cursos no Tutor LMS](https://full.services/wp-fixer/corrigir-permissao-instrutor-criar-curso-tutor-lms/)
- [Como corrigir a integração com Zoom nas aulas ao vivo do Tutor LMS](https://full.services/wp-fixer/corrigir-zoom-live-class-tutor-lms/)
- [Como corrigir o progresso do aluno que não atualiza no Tutor LMS](https://full.services/wp-fixer/corrigir-progresso-aluno-tutor-lms/)

## Causa

- O campo Sharing Percentage em Tutor LMS, Configurações, Monetization está definido com um corte diferente do combinado com o instrutor (por exemplo, 70 por cento para o admin em vez de para o instrutor), invertendo ou reduzindo a parte de quem ensina.
- A opção Deduct Fees está ativa com um Fee Amount em valor fixo ou percentual que é retirado do total da venda antes da divisão, então o instrutor recebe a porcentagem sobre um valor já reduzido, e não sobre o preço cheio do curso.
- O Sharing Percentage foi alterado depois que vendas já tinham ocorrido: o Tutor LMS grava o earning no momento da compra com o percentual vigente e não recalcula registros passados, deixando o histórico com valores de configurações diferentes.
- O Enable Revenue Sharing foi ativado depois de já existirem cursos vendidos, então as vendas anteriores não geraram divisão de comissão e aparecem zeradas ou só para o admin no relatório de ganhos.
- Um curso foi atribuído a um instrutor diferente do autor original (troca de author do post do curso) após a venda, fazendo o earning ficar vinculado ao instrutor antigo enquanto o relatório atual mostra o novo.

## Como resolver

1. Confirme o Sharing Percentage em Monetization: Abra as configurações de monetização e verifique para quem está indo cada fatia. O Sharing Percentage define em porcentagem como a receita é dividida entre admin e instrutor, então confirme que o valor reservado ao instrutor é o combinado.

```
Painel WP -> Tutor LMS -> Configurações -> aba Monetization
Confirme que Enable Revenue Sharing está ativo
Ajuste o Sharing Percentage para o corte correto (ex.: instrutor 70, admin 30) e salve
```

2. Revise a opção Deduct Fees: Se uma taxa está sendo descontada antes da divisão, o instrutor recebe sobre um valor menor. Verifique o Deduct Fees e seu Fee Amount, pois essa taxa sai do total da venda antes do Sharing Percentage ser aplicado.

```
Painel WP -> Tutor LMS -> Configurações -> Monetization -> seção de taxas
Verifique se Deduct Fees está ativo e o valor em Fee Amount & Type (fixo ou percentual)
Desative Deduct Fees ou ajuste o Fee Amount conforme a política acordada e salve
```

3. Entenda que valores antigos não recalculam: O ganho é gravado no momento da venda com o percentual da época. Mudar o Sharing Percentage agora só vale para vendas futuras, então compare a data de cada earning com a data em que a configuração mudou antes de tratar como erro de cálculo.

```
Painel WP -> Tutor LMS -> Reports -> filtre por período
Compare a data de cada earning com a data da última alteração do Sharing Percentage
Trate só os registros posteriores à correção como referência do valor esperado
```

4. Confira o earning gravado no banco de dados: Para auditar um valor específico, consulte a tabela de earnings do Tutor LMS e compare o percentual gravado com a venda. Faça backup antes de qualquer leitura ou ajuste direto no banco.

```
Acesse o phpMyAdmin ou rode um cliente MySQL com acesso ao banco do site
Liste os ganhos: SELECT * FROM wp_tutor_earnings ORDER BY created_at DESC LIMIT 20;
Compare instructor_amount, admin_amount e instructor_rate de cada linha com a venda correspondente
```

5. Recalcule um earning específico via código quando necessário: Se um único registro ficou com percentual antigo e precisa ser corrigido, ajuste-o em ambiente de teste com um snippet que recalcula a divisão a partir do valor total da venda e do percentual atual, em vez de editar centavos à mão.

```
Faça backup do banco de dados antes de executar
Rode o snippet da seção de código em um site de staging primeiro
Confirme no relatório de Earnings que o valor recalculado bate com o esperado
```


## Código

```php
<?php
/**
 * Recalcula a divisao de um earning especifico do Tutor LMS a partir do
 * valor total da venda e do Sharing Percentage atual do instrutor.
 * Rode em STAGING e com backup. $earning_id = id da linha em wp_tutor_earnings.
 */
function full_tutor_recalcula_earning( $earning_id, $instructor_rate ) {
    global $wpdb;
    $table = $wpdb->prefix . 'tutor_earnings';

    $row = $wpdb->get_row(
        $wpdb->prepare( "SELECT course_price_total, deduct_fees_amount FROM {$table} WHERE earning_id = %d", $earning_id )
    );
    if ( ! $row ) {
        return false;
    }

    // Base = preco total menos a taxa ja descontada (Deduct Fees), igual ao fluxo do plugin.
    $base = (float) $row->course_price_total - (float) $row->deduct_fees_amount;

    $instructor_amount = round( $base * ( $instructor_rate / 100 ), 2 );
    $admin_amount      = round( $base - $instructor_amount, 2 );

    return $wpdb->update(
        $table,
        array(
            'instructor_amount' => $instructor_amount,
            'admin_amount'      => $admin_amount,
            'instructor_rate'   => $instructor_rate,
            'admin_rate'        => 100 - $instructor_rate,
        ),
        array( 'earning_id' => $earning_id ),
        array( '%f', '%f', '%d', '%d' ),
        array( '%d' )
    );
}
```

## Perguntas frequentes

### Por que a comissão do instrutor no Tutor LMS veio diferente do Sharing Percentage

Quase sempre é a opção Deduct Fees ativa, que retira uma taxa do total da venda antes da divisão, então a porcentagem do instrutor incide sobre um valor já reduzido. Verifique o Deduct Fees e o Fee Amount em Monetization e ajuste conforme o combinado.

### Mudei o Sharing Percentage e as vendas antigas continuam erradas, por quê

O Tutor LMS grava o ganho no momento da venda usando o percentual vigente naquela hora e não recalcula registros passados. Alterar o Sharing Percentage só vale para vendas futuras, então o histórico mantém os valores das configurações anteriores.

### Onde fica a configuração de comissão do Revenue Sharing no Tutor LMS

Em Tutor LMS, Configurações, na aba Monetization. Ative Enable Revenue Sharing e defina o corte no campo Sharing Percentage, que distribui a receita em porcentagem entre o admin e o instrutor.

### O que o Deduct Fees faz no cálculo da comissão

O Deduct Fees retira uma taxa, fixa ou percentual definida em Fee Amount, do valor total da venda antes de aplicar o Sharing Percentage. O restante é que é dividido entre admin e instrutor, por isso a comissão pode parecer menor do que o esperado.

### Por que algumas vendas não geraram comissão para o instrutor

Provavelmente o Enable Revenue Sharing foi ativado depois que essas vendas ocorreram, ou o curso não tinha um instrutor diferente do admin no momento da compra. Vendas anteriores à ativação não geram divisão e aparecem só para o admin.

### Como auditar o valor exato que foi pago ao instrutor

Consulte a tabela de earnings do Tutor LMS no banco de dados e compare os campos de valor do instrutor, valor do admin e percentual gravado com o preço da venda. Faça backup antes e prefira ler em staging para não arriscar os dados de produção.

### A diferença de centavos na comissão é um bug

Em geral não. Quando o preço do curso não é divisível de forma exata pela porcentagem, o arredondamento da divisão pode deixar uma diferença de centavos entre a parte do admin e a do instrutor. Isso é esperado e não indica falha de cálculo.

**Fonte:** [Tutor LMS — Monetization Settings (documentação oficial Themeum)](https://docs.themeum.com/tutor-lms/settings/monetization/)
