'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; } ?>
"> term_id, "wpadvert_is_restricted", true ) ): ?> name) ?> slug)) ?>">name) ?>
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(); }