Возможно, это не вся ваша проблема, но одна определенная проблема состоит в том, что у вас есть два задания вместо тестов:
if ($status = "Success")
и
}elseif ($status = "Hash not found"){
оба присваивают эти значения $ status вместо проверки равенства. Вы хотите $status == "Success"
и $status == "Hash not found"
В этом случае ваш первый тест всегда будет успешным (потому что возвращаемое значение присваивания - это назначенное значение, поэтому $ status = "Success" вернет "Success", что будет иметь значение true в тесте "if", поэтому $ plain всегда будет $ xml-> data-> result, даже если статус не был действительно успешным.