/** * Get rule slug. * * @param Papi_Core_Conditional_Rule $rule * @param Papi_Core_Property $property * * @return string */ private function get_rule_slug($rule, $property) { $arrReg = '/\\[\\d+\\](\\[\\w+\\])$/'; $slug = $property->get_slug(); $page_type = papi_get_page_type_by_post_id(); if ($page_type instanceof Papi_Page_Type === false) { return $rule->slug; } if (preg_match($arrReg, $slug, $out)) { $slug = str_replace($out[1], '[' . papi_remove_papi($rule->slug) . ']', $slug); $property = $page_type->get_property($slug); if (papi_is_property($property)) { return $slug; } } return $rule->slug; }
/** * Get rule slug. * * @param Papi_Core_Conditional_Rule $rule * @param Papi_Core_Property $property * * @return string */ protected function get_rule_slug($rule, $property) { $arr_reg = '/\\[\\d+\\](\\[\\w+\\])$/'; $slug = $property->get_slug(); $page_type = papi_get_entry_type_by_meta_id(); if ($page_type instanceof Papi_Page_Type === false) { return $rule->slug; } if (preg_match($arr_reg, $slug, $out)) { $slug = str_replace($out[1], '[' . unpapify($rule->slug) . ']', $slug); $property = $page_type->get_property($slug); if (papi_is_property($property)) { return $slug; } } return $rule->slug; }
/** * Prepare load value. * * @param Papi_Core_Property $property * @param mixed $value * * @return mixed */ protected function prepare_load_value(Papi_Core_Property $property, $value) { if ($property->overwrite) { // Clear post cache to solve issue with cached post objects // when selecting post field. clean_post_cache($this->id); $slug = $property->get_slug(true); $context = is_admin() ? 'edit' : 'display'; $value = get_post_field($slug, $this->id, $context); } return $value; }