Skip to content

Instantly share code, notes, and snippets.

add_action( 'propertyhive_property_map_marker_options', 'set_marker_size' );
function set_marker_size()
{
?>
marker_options.icon.scaledSize = new google.maps.Size(12, 12); // change 12, 12 accordingly
<?php
}
add_filter( 'propertyhive_locate_template', 'intercept_ph_template', 10, 3 );
function intercept_ph_template( $template, $template_name, $template_path )
{
if ( 'loop-start.php' === basename( $template ) ) {
$template = trailingslashit( plugin_dir_path( __FILE__ ) ) . 'ph/templates/search/loop-start.php';
}
if ( 'loop-end.php' === basename( $template ) ) {
$template = trailingslashit( plugin_dir_path( __FILE__ ) ) . 'ph/templates/search/loop-end.php';
}
return $template;
@propertyhive
propertyhive / gist:f2304c211251e40a609da5b9ef5db308
Created February 5, 2026 12:02
Force virtual tour button label
add_filter(
'propertyhive_single_property_virtual_tours_actions',
'force_virtual_tour_label'
);
function force_virtual_tour_label( $actions ) {
if ( empty( $actions ) || ! is_array( $actions ) ) {
return $actions;
}
add_filter( 'houzez_property_feed_include_deleted_in_filter', 'exclude_deleted_imports' );
function exclude_deleted_imports($include)
{
return false;
}
add_filter( 'houzez_property_feed_export_thinkspain_property_data', 'add_new_build_to_ts_xml', 10, 3 );
function add_new_build_to_ts_xml( $property_xml, $post_id, $export_id )
{
if ( has_term( 'New Build', 'property_label', $post_id ) && !isset( $property_xml->new_build ) )
{
$property_xml->addChild( 'new_build', '1' );
}
return $property_xml;
}
@propertyhive
propertyhive / gist:c7740eb71a77d799ba703a7404c60141
Created February 4, 2026 21:40
Filter Apimo feed by user ID(s)
add_filter( "houzez_property_feed_properties_due_import_apimo", 'filter_by_user', 10, 2 );
function filter_by_user($properties, $import_id)
{
$new_properties = array();
foreach ( $properties as $property )
{
if (
$property['user']['id'] == '122544' ||
$property['user']['id'] == '26907394'
add_filter( 'houzez_property_feed_expertagent_feature_count', 'custom_ea_num_features' );
function custom_ea_num_features($features)
{
return 5;
}
// Adds a Query ID 'soldpropertyquery' that can be used in Loop Grid widget
add_action( 'elementor/query/soldpropertyquery', 'elementor_query_sold_only' );
function elementor_query_sold_only( $query ) {
// Ensure we only query the 'properties' custom post type
$query->set( 'post_type', 'property' );
// Add tax query for Availability = Sold
$tax_query = array(
array(
add_filter( 'houzez_property_feed_propctrl_off_market_statuses', 'exclude_pending' );
function exclude_pending($exclude_statuses)
{
$exclude_statuses[] = 'pending';
return $exclude_statuses;
}
add_action( "houzez_property_feed_property_imported_kyero", 'import_custom_plans_node', 10, 4 );
function import_custom_plans_node($post_id, $property, $import_id, $instance_id)
{
$floorplans = array();
if (isset($property->plans) && !empty($property->plans))
{
foreach ($property->plans as $plans)
{
if (!empty($plans->plan))