I’m trying to setup IF statements within a function to determine if an outside function is being used. I guess one way my question could go .. how could I set up hook in the outside functions (app1, app2) to build the IF statement off of? Wrap them in a class? If so, how could I construct the statement?
The logic doesn’t really seem to make sense, at least from my level of PHP knowledge. The purpose of this, I’ve got 2 functions (app1 and app2), each creating a different set of options for two separate admin panels. The constructors and markup of the options in each panel is the same, which would be in the “wrapper” function. But currently, having to use two separate “wrapper” functions to handle this. One function for Panel1 and another for Panel2.
So I’ve been tasked with combining the two wrapper functions as it is kind of redundant to have two seperate functions that basically do the same thing. Here’s a summarized bit of the code. As you can see, the only difference in each is the “$panel_type = …” bit
function app1() {
$app1_options = array();
$app1_options[] = array(
'type' => 'text',
'name' => 'Text Field',
'id' => 'text_field_one'
);
return $app1_options;
}
function app2() {
$app2_options = array();
$app2_options[] = array(
'type' => 'text',
'name' => 'Text Field',
'id' => 'text_field'
);
return $app2_options;
}
function wrapper_panel1() {
$panel_type = app1();
foreach( $panel_type as $value ) {
switch ( $value[ 'type' ] ) {
case 'text':
// input stuff
break;
}
}
}
function wrapper_panel2() {
$panel_type = app2();
foreach( $panel_type as $value ) {
switch ( $value[ 'type' ] ) {
case 'text':
// input stuff
break;
}
}
}
So really looking for some kind of way to merge those two functions together, something like:
function wrapper() {
if ( app1() ) {
$panel_type = app1();
}
if ( app2() ) {
$panel_type = app2();
}
foreach( $panel_type as $value ) {
switch ( $value[ 'type' ] ) {
case 'text':
// input stuff
break;
}
}
}
Could something be done with setting up a class/object on this? Or any type of change that could achieve this.
Really appreciate any help that can be provided on this. Thanks!
Just pass the app id to the wrapper function:
…or better, pass the options into the wrapper function when you call it:
EDIT
Given the constraints imposed by WordPress, I think the easiest and least horrible thing to do is to call
wrapper_panel()from within theapp1()andapp2()functions:…and register the
app1andapp2functions with WordPress, instead of thewrapper_panelfunction.