Reputation:
I'm trying to write a PHP IF/ELSE script that calls a function within each IF statement. Although the below works, I don't like having to duplicate code!
Any and all advice would be appreciated. Thank you.
PHP, Attempt 1 - update_usermeta
functioned, but having to duplicate within each IF statement.
// Group Outputs
if ($group1 > $group2 && $group1 > $group3 && $group1 > $group4 && $group1) {
$result = '1';
update_usermeta(absint($user_ID),'foo',wp_kses_post('NO'));
update_usermeta(absint($user_ID),'bar',wp_kses_post($result));
} elseif ($group2 > $group1 && $group2 > $group3 && $group2 > $group4 && $group2) {
$result = '2';
update_usermeta(absint($user_ID),'foo',wp_kses_post('NO'));
update_usermeta(absint($user_ID),'bar',wp_kses_post($result));
} elseif ($group3 > $group1 && $group3 > $group2 && $group3 > $group4 && $group3) {
$result = '3';
update_usermeta(absint($user_ID),'foo',wp_kses_post('NO'));
update_usermeta(absint($user_ID),'bar',wp_kses_post($result));
} elseif ($group4 > $group1 && $group4 > $group2 && $group4 > $group3 && $group4) {
$result = '4';
update_usermeta(absint($user_ID),'foo',wp_kses_post('NO'));
update_usermeta(absint($user_ID),'bar',wp_kses_post($result));
} elseif ($group5 > $group1 && $group5 > $group2 && $group5 > $group3 && $group5) {
$result = '5';
update_usermeta(absint($user_ID),'foo',wp_kses_post('NO'));
update_usermeta(absint($user_ID),'bar',wp_kses_post($result));
} elseif ($group6 > $group1 && $group6 > $group2 && $group6 > $group3 && $group6) {
$result = '6';
update_usermeta(absint($user_ID),'foo',wp_kses_post('NO'));
update_usermeta(absint($user_ID),'bar',wp_kses_post($result));
} elseif ($group7 > $group1 && $group7 > $group2 && $group7 > $group3 && $group7) {
$result = '7';
update_usermeta(absint($user_ID),'foo',wp_kses_post('NO'));
update_usermeta(absint($user_ID),'bar',wp_kses_post($result));
} elseif ($group8 > $group1 && $group8 > $group2 && $group8 > $group3 && $group8) {
$result = '8';
update_usermeta(absint($user_ID),'foo',wp_kses_post('NO'));
update_usermeta(absint($user_ID),'bar',wp_kses_post($result));
} else {
echo 'Error';
}
PHP, Attempt 2 - update_usermeta
did not function. @KJaeg
// Update Profile
function update($result){
echo $result;
update_usermeta(absint($user_ID),'foo',wp_kses_post('NO'));
update_usermeta(absint($user_ID),'bar',wp_kses_post($result));
}
// Group Outputs
if ($group1 > $group2 && $group1 > $group3 && $group1 > $group4 && $group1) {
update('1');
} elseif ($group2 > $group1 && $group2 > $group3 && $group2 > $group4 && $group2) {
update('2');
} elseif ($group3 > $group1 && $group3 > $group2 && $group3 > $group4 && $group3) {
update('3');
} elseif ($group4 > $group1 && $group4 > $group2 && $group4 > $group3 && $group4) {
update('4');
} elseif ($group5 > $group1 && $group5 > $group2 && $group5 > $group3 && $group5) {
update('5');
} elseif ($group6 > $group1 && $group6 > $group2 && $group6 > $group3 && $group6) {
update('6');
} elseif ($group7 > $group1 && $group7 > $group2 && $group7 > $group3 && $group7) {
update('7');
} elseif ($group8 > $group1 && $group8 > $group2 && $group8 > $group3 && $group8) {
update('8');
} else {
echo 'Error';
}
PHP, Working - update_usermeta
functioned. @JayeshChitroda
// Group Outputs
$result = '';
if ($group1 > $group2 && $group1 > $group3 && $group1 > $group4 && $group1) {
$result = '1';
} elseif ($group2 > $group1 && $group2 > $group3 && $group2 > $group4 && $group2) {
$result = '2';
} elseif ($group3 > $group1 && $group3 > $group2 && $group3 > $group4 && $group3) {
$result = '3';
} elseif ($group4 > $group1 && $group4 > $group2 && $group4 > $group3 && $group4) {
$result = '4';
} elseif ($group5 > $group1 && $group5 > $group2 && $group5 > $group3 && $group5) {
$result = '5';
} elseif ($group6 > $group1 && $group6 > $group2 && $group6 > $group3 && $group6) {
$result = '6';
} elseif ($group7 > $group1 && $group7 > $group2 && $group7 > $group3 && $group7) {
$result = '7';
} elseif ($group8 > $group1 && $group8 > $group2 && $group8 > $group3 && $group8) {
$result = '8';
} else {
echo 'Error';
}
// Update Profile
if (!empty($result)){
update_usermeta(absint($user_ID),'foo',wp_kses_post('NO'));
update_usermeta(absint($user_ID),'bar',wp_kses_post($result));
}
Upvotes: 3
Views: 90
Reputation: 686
Together with @Jayesh Chitroda's solution you can move the two last line from him into a function (like you wished):
function update($val){
if (!empty($val)){
echo $val;
update_usermeta(absint($user_ID),'purchased',wp_kses_post('NO'));
update_usermeta(absint($user_ID),'value',wp_kses_post($val));
}
}
You can then call it this way:
if ($group1 > $group2) {
update('Value 1');
} elseif ($group2 > $group1) {
update('Value 2');
} elseif ($group3 > $group1) {
update('Value 3');
}
Upvotes: 0
Reputation: 5049
Try:
$value = "";
if ($group1 > $group2) {
$value = 'Value 1';
} elseif ($group2 > $group1) {
$value = 'Value 2';
} elseif ($group3 > $group1) {
$value = 'Value 3';
}
update_usermeta(absint($user_ID),'purchased',wp_kses_post('NO'));
update_usermeta(absint($user_ID),'value',wp_kses_post($value));
Upvotes: 2