'wpadverts-form',
'post_status' => array('wpad-form-add'),
'posts_per_page' => -1
));
$term_id = get_term_meta( $term->term_id, "category_form_scheme", true );
?>
|
|
'wpadverts-form',
'post_status' => array('wpad-form-search'),
'posts_per_page' => -1
));
$term_id = get_term_meta( $term->term_id, "category_form_scheme_search", true );
?>
|
|
0 ) {
update_term_meta( $term_id, "category_form_scheme", $cfs );
} else {
delete_term_meta( $term_id, "category_form_scheme" );
}
$cfss = intval( adverts_request( "category_form_scheme_search" ) );
if ( $cfss > 0 ) {
update_term_meta( $term_id, "category_form_scheme_search", $cfss );
} else {
delete_term_meta( $term_id, "category_form_scheme_search" );
}
}
/**
* New [adverts_add] shortcode
*
* Shows the preselection interface or runs shortcode_adverts_add() if the
* category is already preselected
*
* @see shortcode_adverts_add()
*
* @param array $atts Shortcode attributes
* @return string HTML for the shortcode
*/
function preselect_ad_category_shortcode( $atts ) {
if( ! is_array( $atts ) ) {
$atts = array();
}
$term_slug = trim( adverts_request( "preselected_category" ) );
$is_preselected = false;
$flash = array(
"error" => array( ),
"info" => array( )
);
if( ! empty( $term_slug ) ) {
$term = get_term_by( "slug", adverts_request( "preselected_category" ), "advert_category" );
if( ! is_wp_error( $term ) && is_object( $term ) ) {
$is_preselected = true;
}
}
if( ! $is_preselected ) {
return preselect_ad_category_display( $atts );
}
if( get_term_meta( $term->term_id, "wpadvert_is_restricted", true ) ) {
$message = __( 'This category is disabled. Go Back.', "preselect-ad-category" );
$flash["error"][] = array(
"message" => sprintf( $message, remove_query_arg( "preselected_category" ) ),
"icon" => "adverts-icon-no"
);
ob_start();
adverts_flash( $flash );
return ob_get_clean();
}
add_filter( "adverts_form_load", "preselect_ad_category_form_load" );
add_filter( "adverts_form_bind", "preselect_ad_category_form_bind", 10, 2 );
$scheme_id = intval( get_term_meta( $term->term_id, "category_form_scheme", true ) );
if( $scheme_id ) {
$form_scheme = get_post( $scheme_id );
if( $form_scheme ) {
$atts["form_scheme"] = $form_scheme->post_name;
$atts["form_scheme_id"] = $form_scheme->ID;
}
}
return shortcode_adverts_add( $atts );
}
/**
* Renders the category selection interface
*
* This function is based on Adverts_Widget_Categories
*
* @see Adverts_Widget_Categories::widget_multi_level()
*
* @param array $atts Shortcode attributes
* @return string HTML for the shortcode
*/
function preselect_ad_category_display( $atts ) {
$terms = get_terms( 'advert_category', array(
'hide_empty' => 0,
'parent' => 0,
) );
ob_start();
include_once ADVERTS_PATH . 'includes/shortcodes.php';
wp_enqueue_style( "adverts-frontend" );
wp_enqueue_style( "adverts-icons" );
$adverts_flash = array(
"error" => array( ),
"info" => array(
array(
"message" => __( "Select category before creating an Advert", "preselect-ad-category" ),
"icon" => "adverts-icon-tag"
)
)
);
adverts_flash($adverts_flash);
?>
"preselected_dtd_category",
"value" => "",
"dtd_use_taxonomy" => "advert_category"
);
wp_enqueue_script( "adverts-frontend" );
wp_enqueue_style( "adverts-frontend" );
wp_enqueue_style( "adverts-icons" );
?>
term_id, "advert_category_icon", $default_icon );
if ( $icon == "" ) {
$icon = $default_icon;
}
?>
0,
'parent' => (int)$term_item->term_id,
) );
if ( ! empty( $child_terms ) && ! is_wp_error( $child_terms ) ):
?>
$field ) {
if( $field["name"] == "advert_category" ) {
$form["field"][$key]["attr"]["readonly"] = "readonly";
$form["field"][$key]["value"] = $term->term_id;
$form["field"][$key]["max_choices"] = 1;
}
}
return $form;
}
/**
* Sets value for the advert_category field
*
* This function makes sure that the preselected category was not changed.
*
* @param Adverts_Form $form Form Object
* @return void
*/
function preselect_ad_category_form_bind( $form ) {
$term = get_term_by( "slug", adverts_request( "preselected_category" ), "advert_category" );
if( is_wp_error( $term ) || $term === null ) {
return null;
}
$form->set_value( "advert_category", $term->term_id );
}
/**
* Applies form_scheme_id param to [adverts_list] shortcode
*
* This function applies form_scheme_id param to the [adverts_list] shortcode
* when displaying it on the advert-category pages
*
* @since 1.1.0
* @param array $out Shortcode atts
* @return array
*/
function preselect_ad_category_atts( $out ) {
if( is_tax( 'advert_category' ) ) {
$term_id = get_queried_object_id();
$form_id = get_term_meta( $term_id, "category_form_scheme_search", true );
if( intval( $form_id ) > 0 ) {
$form_scheme = get_post( $form_id );
$out["form_scheme_id"] = $form_id;
$out["form_scheme"] = $form_scheme->post_name;
}
}
return $out;
}
function preselect_ad_category_dtd_redirect( $template ) {
if( ! wp_verify_nonce( adverts_request( '_wpnonce' ), 'preselected-dtd-category' ) ) {
return $template;
}
$dtd_category = absint( adverts_request( 'preselected_dtd_category' ) );
if( ! is_numeric( $dtd_category ) ) {
return $template;
}
$term = get_term( $dtd_category );
if( is_wp_error( $term ) ) {
wp_die( __( "Incorrect category ID provided", 'preselect-ad-category' ) );
}
wp_redirect( add_query_arg( array( "preselected_category" => $term->slug ), get_permalink( get_the_ID() ) ) );
exit;
the_author();
}