Ik ben er uren mee bezig geweest, maar deze .php leek weet zich geen raad. Het probleem:
1.a.) De twee filters werken niet met elkaar samen.
1.b.) Los van elkaar werkt filter001 en filter002 wel.
1.c.) Het doel van de filters is dat er in Woocommerce (back-end) gefilterd kan worden op 1.) artikelen op voorraad en 2.) gearchiveerde producten.
Ik wil de twee Woocommerce filters daarom combineren tot één filter. Weet iemand raad?
1.a.) De twee filters werken niet met elkaar samen.
1.b.) Los van elkaar werkt filter001 en filter002 wel.
1.c.) Het doel van de filters is dat er in Woocommerce (back-end) gefilterd kan worden op 1.) artikelen op voorraad en 2.) gearchiveerde producten.
Ik wil de twee Woocommerce filters daarom combineren tot één filter. Weet iemand raad?
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
| /* #### Nieuw filter #### */ /* Filteren op gearchiveerde producten (back-end)*/ add_action( 'restrict_manage_posts', 'filter002_admin_posts_filter_restrict_manage_posts' ); function filter002_admin_posts_filter_restrict_manage_posts(){ $type = 'product'; if (isset($_GET['post_type'])) { $type = $_GET['post_type']; } if ('product' == $type){ $values = array( 'Zichtbaar' => 'visible', 'Gearchiveerd' => 'hidden', ); ?> <select name="Stock"> <option value=""><?php _e('Archief', 'filter002'); ?></option> <?php $current_v = isset($_GET['Stock'])? $_GET['Stock']:''; foreach ($values as $label => $value) { printf ( '<option value="%s"%s>%s</option>', $value, $value == $current_v? ' selected="selected"':'', $label ); } ?> </select> <?php } } add_filter( 'parse_query', 'filter002_posts_filter' ); function filter002_posts_filter( $query ){ global $pagenow; $type = 'product'; if (isset($_GET['post_type'])) { $type = $_GET['post_type']; } if ( 'product' == $type && is_admin() && $pagenow=='edit.php' && isset($_GET['Stock']) && $_GET['Stock'] != '') { $query->query_vars['meta_key'] = '_visibility'; $query->query_vars['meta_value'] = $_GET['Stock']; } } /* #### Nieuw filter #### */ /* Add In/Out of Stock Filter to Admin *aanvulling op WooCommerce Sort By Stock* */ add_action( 'restrict_manage_posts', 'filter001_admin_posts_filter_restrict_manage_posts' ); function filter001_admin_posts_filter_restrict_manage_posts(){ $type = 'product'; if (isset($_GET['post_type'])) { $type = $_GET['post_type']; } if ('product' == $type){ //change this to the list of values you want to show //in 'label' => 'value' format $values = array( 'Uitverkocht' => 'outofstock', 'Op voorraad' => 'instock', ); ?> <select name="Stock"> <option value=""><?php _e('Voorraad', 'filter001'); ?></option> <?php $current_v = isset($_GET['Stock'])? $_GET['Stock']:''; foreach ($values as $label => $value) { printf ( '<option value="%s"%s>%s</option>', $value, $value == $current_v? ' selected="selected"':'', $label ); } ?> </select> <?php } } add_filter( 'parse_query', 'filter001_posts_filter' ); function filter001_posts_filter( $query ){ global $pagenow; $type = 'product'; if (isset($_GET['post_type'])) { $type = $_GET['post_type']; } if ( 'product' == $type && is_admin() && $pagenow=='edit.php' && isset($_GET['Stock']) && $_GET['Stock'] != '') { $query->query_vars['meta_key'] = '_stock_status'; $query->query_vars['meta_value'] = $_GET['Stock']; } } |
An a day keeps the doctor away.