Seperate plugin and theme files
I am in desperate need of help, regarding the following issue:
I need to establish an API Connection to Salesforce, so that a user can search and retrieve certain data out of Salesforce.
I thought, that a plugin would be the best choice, so that the functionality is not dependent on a certain theme.
Here comes my issue:
I want the search form to be added via short-code, so that it can be reused. So far so good.
Then I gave the form an action attribute to call another php file, which retrieves the entered data to search for, and list the search results.
Now when I call that second file, I get the error Call to undefined function get_header().
But I need the header of the selected theme to be displayed on that page, so that the whole website has the same look and feel.
It seems, as if I am going horribly wrong with my approach.
My file structure looks as follows:
wp-content
--themes
-- myTheme
--plugins
--myPlugin
--views
--page-results.php
And this is how I add the shortcode for the form to be displayed:
/**
* RETURN THE SEARCH FORM
* @return string
*/
function add_search_form() {
$html="
<div class="col-sm-6 col-md-offset-3 d-flex justify-content-center text-center form-column">
<form class="wdv_search_form w-75 mt-3" method="get" action="wp-content/plugins/myPlugin/views/page-results.php">
<div class="mb-2">
<input type="text" class="form-control text-center" id="searchByLocation"
placeholder="City">
</div>
<div class="mb-2">
<input type="text" class="form-control text-center" id="searchByName"
placeholder="Name">
</div>
<div class="mb-2">
<select name="countryChoice" class="text-center">
<option value="EN">England</option>
</select>
</div>
<button type="submit" class="btn btn-transparent text-light mt-3">GO</button>
</form>
</div>";
echo $html;
}
add_shortcode( 'wdv_search_form', 'add_search_form' );
Is my approach right and what would be best-practice for my use-case?
Leave an answer