URL dinâmica para referenciar arquivos PHP personalizados

4

Iniciante desenvolvedor do Wordpress aqui ... Atualmente estou desenvolvendo um site Wordpress para um dispositivo meu. Minha ideia é poder conectar ao dispositivo que atua como um servidor web. Eu deveria poder acessar o site a partir do dispositivo local que hospeda o site (Raspberry Pi a partir daqui referenciado como servidor), bem como de qualquer máquina / dispositivo conectado na mesma rede que o servidor (celular / laptop etc. aqui no referido como o cliente).

Conectar-se diretamente ao servidor no site funciona bem com o enlace . Todos os links e ações funcionam conforme o esperado.

Conectar-se ao site de um cliente funciona parcialmente. Eu posso conectar e navegar links wordpress como páginas etc, mas o processo abaixo não funciona:

O processo

Meu plug-in cria códigos de acesso que posso adicionar a qualquer página. Todas as funções dos shortcodes chamam basicamente um arquivo php com o seguinte código:

http://localhost/mysite/wp-content/plugins/my-plugin/api/mydatasourcephpfile.php

e, em seguida, cria um formulário html na página usando os valores obtidos da solicitação acima. O formulário contém um botão de envio e, quando clicado, o formulário envia os valores para:

http://localhost/mysite/wp-content/plugins/my-plugin/api/mypostphpfile.php

O mypostphpfile então pega os valores de formulário postados nele, grava-os em um banco de dados e retorna à página original adicionando um parâmetro de url de "? success = true". Isso é feito usando o seguinte código no arquivo mypostphpfile.php logo após todos os dados terem sido escritos:

$success="true";
header('Location: http://localhost/mysite/myoriginalformpage/?success=', $success);

Eu sei exatamente qual é o problema. O problema é o localhost na minha URL que eu tenho, por assim dizer, "hardcoded", que eu posto para / retornar. Ao executar o post no servidor e ele envia para o arquivo php localhost que está disponível no host local (no contexto do servidor). Ao postar de um cliente, a postagem não funciona porque está postando em um arquivo php localhost que o navegador do cliente está procurando no computador cliente e não no servidor.

Parece ser um problema de URL. Eu não estou muito familiarizado com arquivos .htaccess etc e eu nem sei se será a solução para o meu problema. Eu preciso ser capaz de postar para o arquivo php onde é URL é relativo ao servidor, não importa de qual dispositivo eu estou navegando no site. Eu sou muito novo para Wordpress desenvolvimento e buscas na internet leva a não muito que faz sentido porque eu nem sei como descrever o problema em uma barra de pesquisa do google (como você pode ver na descrição da questão :). Eu gostaria de evitar os endereços IP codificados, pois estes podem mudar, assim como os nomes dos hosts, como eu li, nem sempre funcionam (em um pi de framboesa, pelo menos).

Então, em poucas palavras, existe alguma maneira que eu possa escolher qual URL wordpress está sendo executado para permitir que todos os clientes concluam o processo. A URL para os arquivos php deve ser relativa ao servidor.

Qualquer ajuda sobre isso ou apontar-me na direção certa será muito apreciada.

    
por Joachim Prinsloo 21.12.2017 / 16:36

1 resposta

3

Não estou certo de que entendi a pergunta, mas se você está apenas tentando obter o URL do site, pode usar a função get_site_url() WP. Então, assim:

$siteURL = get_site_url();
header("=Location: $siteURL" . "/myoriginalformpage/?success=", $success);

E você pode alterar os parâmetros de get_site_url() para especificar o caminho e exibir "https" ou "http".

Mas se você precisar apenas da URL do site atual, use get_site_url();

    
por Coltvant 21.12.2017 / 18:52